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 ofCREATED
,PENDING_USER_ONBOARDING
,USER_ACCOUNT_ISSUE
,PENDING_USER_WITHDRAWAL
orREQUIRES_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>"
}
Updated about 1 month ago