Docs
API ReferenceCheckoutPoll Invoice Status

Poll Invoice Status

GET/checkout/api/v1/invoices/{id}/statusRecommended

Three-field polling projection for the payment page: the invoice status, the id of the most recently created payment (null before the buyer picks a coin), and paidAt. Unlike the full invoice read this stays 200 for EXPIRED and CANCELLED invoices, so it is the safe thing to poll on a timer.

Authentication

Signature Pattern

None โ€” public endpoint, no signature required.
HeaderValueDescription
Acceptapplication/jsonNo API key, signature or idempotency key โ€” the checkout surface is public

Request Parameters

NameTypeRequiredDescription
idstringRequiredPath parameter โ€” invoice CUID

Response Parameters

FieldTypeExample
statusstring"PAYMENT_PENDING"
paymentIdstring"clx7k2p9a0007qz8f1d0s9k2r"
paidAtnullnull

Response Example

JSONResponse
{
  "success": true,
  "data": {
    "status": "PAYMENT_PENDING",
    "paymentId": "clx7k2p9a0007qz8f1d0s9k2r",
    "paidAt": null
  },
  "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