Skip to main content
POST /api/v1/payouts/getPayoutStatus

Headers

HeaderRequired
x-api-keyyes
x-timestampyes
x-signatureyes
authorizationyes — Bearer <JWT>
content-typeyes

Request body

{ "data": "<encrypted blob of the payload below>" }
Decrypted payload:
FieldTypeRequiredNotes
transaction_idstringyesThe transaction_id you received from sendPayoutRequest. Live IDs are UUIDs; sandbox IDs start with sb_.

Example request

All examples assume you’ve already encrypted the body and signed the request — see the Quickstart for the full helper in Node and Python.
const status = await call(
  '/api/v1/payouts/getPayoutStatus',
  { transaction_id: '029b2038-6166-4bea-80a9-f1a2425a85eb' },
  jwt,
)

Responses

200 — Success

{
  "ok": true,
  "data": {
    "transaction_id": "029b2038-6166-4bea-80a9-f1a2425a85eb",
    "status": "completed",
    "status_message": null
  }
}
status is one of:
ValueMeaning
pending_approvalAwaiting manual approval
pendingApproved and queued for processing
processingSubmitted to the payment network, awaiting settlement
completedPayment was successfully delivered
failedPayment could not be delivered
rejectedTransaction was rejected before processing
reversedA previously delivered transaction was returned
canceledTransaction was canceled before processing
status_message is non-null only on failed, rejected, reversed, canceled.

400 — validation_error

transaction_id missing or malformed (must be a UUID or start with sb_).

401 — unauthorized / jwt_expired

Bad/missing JWT.

404 — not_found

Transaction doesn’t exist or belongs to a different account.
{
  "ok": false,
  "request_id": "01J9F5Z4X7Y3K2B1Q0M8N7V6T5",
  "error": { "code": "not_found", "message": "Transaction not found" }
}

429 — rate_limited

Throttle your polling.

Recommendation

Polling works, but register a Callback URL to stop polling entirely. We POST to you as soon as the transaction reaches a final state.