Check Transaction Status
Retrieves the current transaction status from the database.
Endpoint
GET https://api.paysecurez.com/api/v1/transactions/{txNo}/status
Response
Returns the current transaction data:
{
"TransactionId": "txn_mhuph5pq",
"Status": "Captured",
"Amount": 25.00,
"Currency": "USD",
"Reference": "abc_1234567890",
"DeclineReason": null,
"CreatedAt": "2025-10-03T06:29:55.7233604Z",
"ProviderTransactionId": "ps_96f1df74-252c-456a-90eb-5c6f557b47b6",
"ProviderStatus": "Captured",
"ProviderMessage": "Payment completed successfully",
"UserDefinedField1": "Custom Value 1",
"UserDefinedField2": "Custom Value 2",
"UserDefinedField3": "Custom Value 3"
}
Always use the Status field as the authoritative source of truth for transaction state. While ProviderStatus and ProviderMessage provide additional context from the payment processor, your business logic should always be based on the Status field.
Response Fields
| Field | Type | Description |
|---|---|---|
TransactionId | string | Unique ZepoPay transaction identifier |
Status | string | Transaction status (Pending, Captured, Failed, Declined, etc.) |
Amount | decimal | Transaction amount |
Currency | string | Currency code (e.g., USD, AUD) |
Reference | string | Your custom reference/order ID |
DeclineReason | string | Reason for decline (if applicable) |
CreatedAt | datetime | Transaction creation timestamp |
ProviderTransactionId | string | External payment processor transaction ID |
ProviderStatus | string | External payment processor status |
ProviderMessage | string | Message from payment processor |
SuccessUrl | string | URL for successful payment redirects |
PendingUrl | string | URL for pending payment redirects |
FailureUrl | string | URL for failed payment redirects |
UserDefinedField1-3 | string | Custom fields you provided during creation |
Decline Reasons
When a transaction has Status: "Declined" or Status: "Failed", the DeclineReason field provides details about why the transaction was not successful.
Common Decline Reasons
| Decline Reason | Description |
|---|---|
Transaction Expired | Customer did not complete the payment within the allowed time window |
Payment Cancelled By User | Customer explicitly cancelled the payment |
Declined By Bank | The issuing bank declined the transaction |
Insufficient Funds | Customer's account does not have sufficient balance |
Provider Error | The payment processor encountered a technical error |
Country Not Supported On Payment Method | The customer's country is not supported by the selected payment method |
Currency Not Supported | The transaction currency is not supported by the payment method |
Payment Method Not Available | The selected payment method is temporarily unavailable |
Invalid Card Details | Card number, CVV, or expiry date is invalid |
Card Expired | The payment card has expired |
3DS Authentication Failed | Customer failed 3D Secure verification |
Suspected Fraud | Transaction flagged by fraud detection system |
Daily Limit Exceeded | Transaction exceeds customer's daily spending limit |
Restricted Card | Card is restricted by the issuing bank |
Always display the DeclineReason to your customer when available, as it helps them understand what action to take (e.g., use a different card, contact their bank, etc.).
Status Values
| Status | Description |
|---|---|
| Pending | Transaction initiated, awaiting processing |
| Captured | Payment successfully completed |
| Failed | Payment processing failed |
| Declined | Payment declined by processor |
| Refunded | Payment refunded to customer |
| Authorized | Payment authorized but not yet captured |
| Chargeback | Customer disputed the transaction |
Use this endpoint for manual verification, customer support inquiries, or debugging. For production transaction monitoring, always rely on webhook notifications.
This endpoint returns the current stored status without making external API calls to payment processors. For real-time status updates, your webhook endpoint will receive notifications automatically.