Check a Transfer Status
What this page solves
Reading the current status of a transfer you sent or received, to track it until it is final.
When to use it
After 201 Created
Until the transfer is
doneorrejected.During reconciliation
When you already know the
transfer_id.
Before you start
API key
With the
Internal transfersorPartner transfersscope that covers the type of the transfer. A transfer whose type is not covered by the scopes of your key is reported asTRANSFER_NOT_FOUND.Transfer ID
The
transfer_idreturned when the transfer was created. The transfer is readable by the API keys of its sender and its recipient whose scopes cover the transfer type.
Recommended flow
- 1Request
GET /v1/transfers/{transfer_id}. - 2If the status is
processing, we recommend checking again after 2 seconds. Transfers usually complete within a few seconds, but processing time can vary with load. Keep all status requests within the rate limit listed below and choose how long your integration will keep checking. Stopping these checks does not cancel the transfer. If the transfer staysprocessingbeyond the waiting time chosen for your application, contact Customer Support with thetransfer_id. - 3Stop when the status is
doneorrejected. These statuses never change once reached. - 4For the details of a transfer that is not
done, see Transaction History in the Payments & wallet section of your Personal Area.
Main endpoints
Keep status requests within the limits in API Configuration and Limits. Requests for different transfer IDs count toward the same rate limit for your API key.
| Operation | Purpose |
|---|---|
GET /v1/transfers/{transfer_id} | Read the transfer status |
Example request
The example is structural: replace the placeholders in angle brackets with your values.
GET /v1/transfers/2000000074 HTTP/1.1
EXN-API-KEY: <your API key>
EXN-IDEMPOTENCY-KEY:
EXN-TIMESTAMP: <current Unix time in milliseconds>
EXN-SIGN-VERSION: 1
EXN-DATA: <base64url-encoded signed payload>
EXN-SIGN: <base64url-encoded signature>
The signed EXN-IDEMPOTENCY-KEY header is sent with an empty value for this GET request.
What to expect in return
HTTP 200 with the transfer status only:
{ "transfer_id": "2000000074", "status": "processing" }
| Status | Meaning | Final |
|---|---|---|
processing | The transfer is in progress. Check again later. | No |
done | The money has been transferred. | Yes |
rejected | The transfer was not completed. The funds are not debited from the source account, or they are returned to it. The API does not return the reason; see Transaction History in your Personal Area. | Yes |
A rejected transfer is final. To try again after fixing the cause, create a new transfer with a new idempotency key. Resending the same request with its original key does not create a new transfer: if it passes the current checks, it returns 201 with the original transfer_id, and the transfer stays rejected.
Common errors
| HTTP | code | error_message | What to do |
|---|---|---|---|
| 404 | 7010 | TRANSFER_NOT_FOUND | The transfer does not exist, you are neither its sender nor its recipient, or its type is not covered by the scopes of your key. Check the identifier and the key. |
| 422 | 3001 | REQUEST_INVALID_PARAMETERS | The transfer_id did not pass validation. Send it as the numeric string you received. |
| 403 | 1002 | AUTH_PERMISSION_DENIED | Your key has no Payments scope or no access from your source IP. |
| 429 | 3015 | REQUEST_RATE_LIMIT | Wait before checking the status again. Reduce the request rate; if the error repeats, wait longer between requests. |
All codes are listed in Troubleshooting Your API Requests.
Recovery and reconciliation
This request needs the transfer_id from a 201 response. TRANSFER_OUTCOME_UNKNOWN and lost responses do not return a transfer_id; recover them by resending the same request with the same idempotency key, as described in Recovery and idempotency.
TRANSFER_NOT_FOUNDdoes not prove that no money was moved: the transfer may exist but not be visible to your API key.- You can review your transfers in Transaction History in the Payments & wallet section of your Personal Area.
Related pages
Recovery and idempotency · Transfer between your own accounts · Transfer to another client