Poll Payment Status
GET
/checkout/api/v1/payments/{id}/statusRecommendedConfirmation progress for one payment: status, confirmations against requiredConfirmations (12 on Ethereum mainnet, 128 on Polygon, 3 on Bitcoin, and so on per chain), the transaction hash, and the address the buyer was told to pay. transactionHash stays null until a transaction is matched; paymentAddress is the leased pool address on a direct payment and the treasury wallet on a smart-contract one.
Authentication
Signature Pattern
None โ public endpoint, no signature required.| Header | Value | Description |
|---|---|---|
Accept | application/json | No API key, signature or idempotency key โ the checkout surface is public |
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Path parameter โ payment CUID, from the create-payment response or the invoice status poll |
Response Parameters
| Field | Type | Example |
|---|---|---|
status | string | "CONFIRMING" |
confirmations | integer | 7 |
requiredConfirmations | integer | 12 |
transactionHash | string | "0xa4c123b1612dd272d1371c17149d439536b321โฆ |
blockchain | string | "ethereum" |
amount | string | "12500" |
cryptoCurrency | string | "USDT" |
paymentAddress | string | "0xe58b081006f7e3dfc967a64cb14028d512c9791e" |
expiresAt | string | "2026-08-26T14:12:00.000Z" |
Response Example
JSONResponse
{
"success": true,
"data": {
"status": "CONFIRMING",
"confirmations": 7,
"requiredConfirmations": 12,
"transactionHash": "0xa4c123b1612dd272d1371c17149d439536b3216fdaeeb975729fae923d5a4fd1",
"blockchain": "ethereum",
"amount": "12500",
"cryptoCurrency": "USDT",
"paymentAddress": "0xe58b081006f7e3dfc967a64cb14028d512c9791e",
"expiresAt": "2026-08-26T14:12:00.000Z"
},
"timestamp": "2026-08-26T13:41:02.477Z",
"requestId": "req_V1StGXR8_Z5j"
}Error shape
JSONError
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found"
},
"timestamp": "2026-08-26T13:41:02.477Z",
"requestId": "req_V1StGXR8_Z5j"
}Status Codes
200Success
201Created
400Bad Request
401Unauthorized
404Not Found
429Rate Limited
Try itMockapi2.havala.io
GEThttps://api2.havala.io