Payment Statuses
Integrators can retrieve the current status of a payment at any time with the trackingId returned when the payment is created. Use this endpoint to verify completion, reconcile transactions, and keep internal records accurate.
Payment status checks complement webhooks, Reporting, and Settlement. Webhooks notify you when something changes, the status endpoint lets you query on demand, and Reporting and Settlement give you historical and settlement views across many payments.
Overview
Use the payment status endpoint when you want to:
Retrieve real time payment status with a simple GET request
Confirm final outcomes such as
completed,expired, orinvalidTroubleshoot or support a single payment without pulling a full history
For ongoing monitoring and reconciliation, prefer webhooks plus Reporting and Settlement instead of frequent polling.
Requesting payment status
Payment status is retrieved by trackingId.
Endpoint
GET /payments/tracking/{trackingId}
Path parameters
trackingId
string
Yes
Tracking identifier returned by the Create Payment response
Required headers
Authorization
Bearer <access_token>
Accept
application/json
Example request
Example response
The full response in your environment may include additional fields such as conversion details, settlement amounts, and metadata. Treat statusCode as the primary state indicator and use other fields as needed.
Status values
Statuses are returned in the statusCode field and use the PaymentStatus enum.
Statuses marked as reserved are not currently returned by the API but are documented for future compatibility.
created
Payment record created, waiting for customer funds.
processing
Funds detected and conversion or settlement processing in progress.
completed
Customer sent the requested amount. Crypto, if any, has been converted and credited.
underpaid
Customer sent less than requested. Funds remain unconverted and must be reclaimed by the customer.
overpaid
Customer sent more than requested. Requested amount converted, excess must be reclaimed.
expired
No funds received before the payment window expired. Any funds sent later must be reclaimed.
invalid
Irregular event such as multiple transactions, unsupported asset, compliance block, or extreme market movement. Funds must be reclaimed.
cancelled
Customer or merchant cancelled the payment. Any funds remain unconverted and may be reclaimed.
fullyRefunded (reserved)
Will indicate that the entire payment has been refunded.
partiallyRefunded (reserved)
Will indicate that a portion of the payment has been refunded.
For how these states behave in full flows, see the Payment Scenarios pages, which walk through underpaid, overpaid, and reclaim flows in more detail.
Reclaiming unconverted crypto
When a payment ends in one of the following states:
underpaid
overpaid
expired
invalid
cancelled
the hosted payment page prompts the customer to enter an email address if it was not provided in the original request.
Bead emails instructions for reclaiming any unconverted funds associated with that payment. Your integration does not need to implement the reclaim process directly, but you may want to:
Display clear messaging in your UI when these statuses occur
Add internal flags or notes so support and finance teams can recognize reclaim scenarios
Avoid automatically retrying or recreating payments without clear customer intention
Error responses
Common error responses
401
Missing or invalid access token. Verify your authentication flow and token scopes.
403
Authenticated, but not permitted to view this payment. Confirm merchant or partner access.
404
No payment exists for this trackingId, or it is not visible in the current context.
Log the response body and headers for debugging, but avoid exposing raw error text directly to end users.
Best practices
Recommended patterns when using the payment status endpoint
Prefer webhooks for real time changes Configure Payment webhooks so your system receives status updates automatically. Use this endpoint for ad hoc checks and support workflows, not as your primary real time mechanism.
Store and use trackingId as the lookup key Save the
trackingIdfrom the Create Payment response alongside your order or invoice. Use it to correlate status checks, webhooks, and Reporting records.Map status codes to internal order states Translate
completed,underpaid,overpaid,expired,invalid, andcancelledinto internal states that your business and support team understand.Avoid tight polling loops If you must poll, use reasonable intervals and a backoff strategy. For anything beyond small scale, move to webhooks together with Reporting and Settlement.
Combine with Reporting and Settlement for reconciliation Use this endpoint for single payment checks. For daily reconciliation and accounting, rely on the Reporting payment history endpoints and the Settlement APIs to see payments, batches, and payment settlement lines together.
Next steps
Configure Payment webhooks for real time payment events.
Review Payment Scenarios for practical examples of handling non happy path statuses such as underpaid and overpaid.
Use Reporting and Settlement to build dashboards and reconciliation jobs that operate over many payments at once.
Last updated