Skip to main content
After redirecting a customer through the hosted checkout page — or after receiving a webhook event — call this endpoint to confirm the canonical status of a payment. The response includes the on-chain Arc transaction hash (arcTxHash) once the transfer has settled, letting you cross-reference settlement on the Arc testnet explorer. This is the authoritative source of truth for payment completion; do not rely solely on webhook delivery for settlement confirmation.

Endpoint

Request

Headers

Path Parameters

string
required
The arc_ref_... reference string returned by POST /api/payments/initialize. This value uniquely identifies the payment session on the FlareHQ ledger.Example: arc_ref_k7x2m9lp4d8f1q2z

Response

boolean
true when the request was processed successfully (the payment record was found and read without error). Note that status: true does not mean the payment is complete — check data.status for the settlement state.
string
Human-readable description of the current payment state. Examples:
  • "Verification successful (Cached Testnet Ledger)" — payment is settled and result is cached.
  • "Payment is pending block confirmation" — payment has been submitted but not yet finalized on-chain.
object
Full payment record at the time of the request.

Examples

PENDING Response

SUCCESS Response (with on-chain hash)

Error Responses

Notes

Poll this endpoint after redirecting the customer back from the checkout page, or use it to confirm a payment.completed webhook event before fulfilling an order. Webhooks can fail due to network issues — always treat the verify response as the authoritative settlement record.
Once data.arcTxHash is non-null, you can view the on-chain transaction at https://testnet.arcscan.app/tx/{arcTxHash}. This is useful for debugging and for providing customers with a verifiable settlement receipt.
Avoid polling this endpoint more frequently than every 3–5 seconds for a single reference. All payment endpoints share a rate limit of 30 requests per minute. If you are waiting for settlement, consider setting a webhookUrl during initialization instead of polling continuously.