Customer Offramp — Query Status & Cancel

This guide shows how to look up the current status of an offramp and how to cancel one before funds movement is finalized. It follows the same API response pattern as the rest of Breeze. 

Recommended approach: Rely on webhooks for real-time state (event type: OFFRAMP_STATUS_UPDATE) and use the read endpoints below when you need an immediate, on-demand check (e.g., rendering an admin screen). 

Prerequisites

  • You’ve already created an offramp via POST /v1/offramp and received an id (e.g., ofrprq_abc123xyz) and the hosted URL.

1. Get Offramp by ID

Use this if you already have the Breeze offramp id (e.g., from creation response or webhook payload).

curl -X GET 'https://api.breeze.cash/v1/offramp/ofrprq_abc123xyz' \
  -u "YOUR_API_KEY:" \
  --header 'Accept: application/json'

Successful response

{
  "status": "SUCCEEDED",
  "data": {
    "id": "ofrprq_abc123xyz",
    "status": "PENDING_USER_WITHDRAWAL",
    "clientReferenceId": "offramp-<your-unique-id>",
    ...
  }
}

2. Cancel an Offramp

Use this to explicitly cancel an offramp before funds movement is locked in. After a successful cancel, subsequent webhook(s) will also reflect CANCELED.

  • Breeze will reject the cancel request if the funds movement has initialised, you can only cancel it when the status is one of CREATED, PENDING_USER_ONBOARDING, USER_ACCOUNT_ISSUE, PENDING_USER_WITHDRAWAL or REQUIRES_RELEASE.
curl -X POST 'https://api.breeze.cash/v1/offramp/ofrprq_abc123xyz/cancel' \
  -u "YOUR_API_KEY:" \
  --header 'Content-Type: application/json'

Successful response

{
  "status": "SUCCEEDED",
  "data": {
    "id": "ofrprq_abc123xyz",
    "status": "CANCELED"
    ...
  }
}

Error responses

{  
  "status": "FAILED",  
  "errorCode": "OFFRAMP_CANNOT_CANCEL",
  "errorMessage": "<more-detailed-error-message>"
}