Checking Payment Status
Check a card transaction's status and retrieve full details — including declineCode on failure
3 min readUpdated Jul 25, 2025
The info endpoint returns a card transaction's current status together with full transaction details — declineCode on failure, card mask, processed amounts, billing details, and more. Use it when:
- Your webhook was not received (network issue, server downtime)
- You need to verify status before fulfilling an order
- You need more than the status — reconciliation, customer support lookup, order history
Prefer webhooks
Polling adds latency and load. Use this endpoint as a fallback, not the primary status mechanism. See Webhook Best Practices for the recommended pattern.
Always use /info — not /status
The
/info/{id} endpoint is the only endpoint that returns declineCode. If a transaction is FAILED, /info/{id} tells you why; a status-only response does not.#Key Response Fields
| Field | Description |
|---|---|
transactionId | Unique transaction identifier |
requestId | Your original request ID (useful for reconciliation) |
transactionStatus | Current status (SUCCEED, FAILED, PENDING, etc.) |
declineCode | Decline code — present when transactionStatus is FAILED |
cardMask | Masked card number (e.g. 411111******1111) |
cardHolder | Cardholder name |
orderCurrency | Currency you requested |
processedCurrency | Currency the transaction settled in |
orderAmount | Amount you requested |
processedAmount | Amount actually processed (may differ if FX conversion occurred) |
conversionRate | Exchange rate applied, if any |
#Status Values
| Status | Terminal? | Meaning |
|---|---|---|
NEW | No | Transaction created, not yet processed |
PENDING | No | Sent to processor, awaiting result |
PROCESSING | No | Actively being processed |
CUSTOMER_VERIFICATION | No | Awaiting 3DS challenge completion by the customer |
SUCCEED | Yes | Payment successful |
FAILED | Yes | Payment declined or errored — check declineCode |
REFUNDED | Yes | Full refund issued |
CHARGEBACK | Yes | Chargeback filed by cardholder |
CANCELLED | Yes | Transaction cancelled |
Stop polling once you receive a terminal status.
#Polling Strategy
Use exponential backoff starting at ~2 seconds, capping at 30 seconds. Stop after reaching a terminal status or a maximum retry limit. Avoid polling more frequently than every 2 seconds.
#Related
- API Reference: GET /api/v1/payments/card/info/{id} — Full endpoint spec, parameters, Try It
- Transaction Status Guide — Complete lifecycle and state transitions
- Decline Codes Reference — All decline codes and recommended actions
- Webhook Best Practices — Polling fallback pattern
Was this helpful?