> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bringin.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Confirm connection

Confirm a pending connection with the SMS OTP code. On success, the connection transitions from `PENDING` to `ACTIVE` and auto-conversions begin.

Get the `challengeId` from `GET /bringin-link/{id}` when `standingOrder.status` is `PENDING_CONFIRMATION`.

Requires a **per-user api-key**.

<ParamField body="challengeId" type="string" required>
  The challenge ID from the standing order (returned when status is `PENDING_CONFIRMATION`)
</ParamField>

<ParamField body="verificationCode" type="string" required>
  6-digit SMS OTP code sent to the user's registered phone
</ParamField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "a5b03095-f4ad-4a10-8970-4c63de5a49a9",
    "status": "ACTIVE",
    "direction": "CRYPTO_TO_FIAT",
    "sourceCurrency": "BTC",
    "destinationCurrency": "EUR",
    "percentFeeBps": "150",
    "createdAt": "2026-03-24T08:33:18.366Z",
    "updatedAt": "2026-03-24T08:34:08.070Z"
  }
  ```
</ResponseExample>

<Note>If the OTP is incorrect, the API returns an error. Show "Invalid code, please try again" and let the user retry. Use `POST /bringin-link/resend-otp` if the user needs a new code.</Note>

<Warning>The OTP expires 30 minutes after the connection was created. If expired, the connection becomes `EXPIRED` and you must create a new one.</Warning>
