Checking Payment Status
When and how to check the current status of a card transaction
2 min readUpdated Jul 25, 2025
The status endpoint returns the current status of a card transaction by transactionId. Use it as a fallback when:
- Your webhook was not received (network issue, server downtime)
- You need to verify status before fulfilling an order
- You are implementing a polling fallback alongside webhooks
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.
#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/status/{id} — Full endpoint spec, Try It
- Retrieving Payment Details — Full transaction data (card mask, amounts, billing)
- 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?