Skip to content

Current status of a payment

GET
/payments/{paymentId}/status
curl --request GET \
--url https://hub.stablezact.com/api/v1/payments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/status \
--header 'X-Public-Key: <X-Public-Key>'

Reads the payment’s live state, including how much has arrived. This and /payments/status/{paymentId} are the same handler on two paths; either is fine.

Poll this from your server rather than the browser. A status read in the customer’s browser can be faked by the customer.

An id that does not exist returns 500 rather than 404.

paymentId
required
string format: uuid

The payment’s current state.

Media typeapplication/json

Returned by both /payments/{paymentId}/status and /payments/status/{paymentId}, which are one handler on two paths.

object
success
boolean
payment
object
status
string
amount
string
amountReceived
string | null
currency
string
confirmations
integer
detectedAt
string | null format: date-time
confirmedAt
string | null format: date-time
expiresAt
string | null format: date-time
bridgeStatus
string | null
Examplegenerated
{
"success": true,
"payment": {
"status": "example",
"amount": "example",
"amountReceived": "example",
"currency": "example",
"confirmations": 1,
"detectedAt": "2026-04-15T12:00:00Z",
"confirmedAt": "2026-04-15T12:00:00Z",
"expiresAt": "2026-04-15T12:00:00Z",
"bridgeStatus": "example"
}
}

Missing or invalid credentials.

Media typeapplication/json
object
success
boolean
error
required

Short machine-ish reason.

string
message

Longer explanation, when there is one.

string
Example
{
"error": "API credentials required. Use x-public-key header or x-api-key and x-api-secret headers."
}