Skip to main content

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 done or rejected.

  • During reconciliation

    When you already know the transfer_id.

Before you start​

  • API key

    With the Internal transfers or Partner transfers scope that covers the type of the transfer. A transfer whose type is not covered by the scopes of your key is reported as TRANSFER_NOT_FOUND.

  • Transfer ID

    The transfer_id returned 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.

  1. 1
    Request GET /v1/transfers/{transfer_id}.
  2. 2
    If 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 stays processing beyond the waiting time chosen for your application, contact Customer Support with the transfer_id.
  3. 3
    Stop when the status is done or rejected. These statuses never change once reached.
  4. 4
    For 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.

OperationPurpose
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" }
StatusMeaningFinal
processingThe transfer is in progress. Check again later.No
doneThe money has been transferred.Yes
rejectedThe 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
Rejected transfers are final

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​

HTTPcodeerror_messageWhat to do
4047010TRANSFER_NOT_FOUNDThe 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.
4223001REQUEST_INVALID_PARAMETERSThe transfer_id did not pass validation. Send it as the numeric string you received.
4031002AUTH_PERMISSION_DENIEDYour key has no Payments scope or no access from your source IP.
4293015REQUEST_RATE_LIMITWait 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​

No transfer_id after an unknown outcome

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_FOUND does 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.

Recovery and idempotency · Transfer between your own accounts · Transfer to another client