> ## 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.

# Cancel connection

Initiate cancellation of an active connection's standing order. The response depends on whether the standing order is shared with other connections.

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

<ParamField path="standingOrderId" type="string" required>
  The standing order ID (from `GET /bringin-link/{id}` response)
</ParamField>

<ResponseExample>
  ```json Soft cancel (200) theme={null}
  {
    "immediate": true
  }
  ```

  ```json Hard cancel (200) theme={null}
  {
    "challengeId": "cancel_challenge_123",
    "dateExpires": "2026-03-24T09:05:00.000Z"
  }
  ```
</ResponseExample>

### Two response types

**Soft cancel** (`immediate: true`) — Returned when the standing order is shared with other active connections (only possible for Lightning connections). Only your app's connection is deactivated. The standing order remains active. **No OTP needed — you're done.**

**Hard cancel** (`challengeId` returned) — Returned when this is the last active connection for the standing order. An SMS OTP has been sent to the user. Proceed to [Confirm cancellation](/api-reference/connections/cancel-confirm).

<Warning>Do **not** call the confirm endpoint when you receive `immediate: true`. It's only needed when the response contains a `challengeId`.</Warning>
