Transaction Status
Amwal payment transactions move through distinct statuses as they progress from initiation to completion. This page explains payment link statuses, transaction statuses, and how they transition through the payment lifecycle.
Payment Link Status
Payment links represent the overall state of a payment request. Each link has one of the following statuses:
| Status | Description |
|---|---|
Unpaid | Payment initiated but not yet Paid or Expired. |
Paid | Payment has been successfully completed and authorized. |
Expired | Payment link has expired and can no longer accept payment attempts. |
Transaction Status
Individual transactions within a payment can transition through multiple statuses. Each transaction has one of the following states:
| Status | Code | Description |
|---|---|---|
| Payment Initiated | pending | Transaction created and submitted to payment gateway, awaiting further action from user or issuing bank. |
| Success | success | Transaction completed and authorized successfully. |
| Fail | fail | Transaction failed due to one of the failed reasons. |
| Partially Refunded | partially_refunded | Partial refund processed and returned to customer. |
| Refunded | refunded | Full refund processed and returned to customer. |
Status Workflow
The diagram below shows how transactions flow between statuses. A transaction starts as pending, then moves to either success or fail. Successful transactions can be partially or fully refunded.
Callback URL Notifications
If you include the callback_url parameter when creating a payment link, Amwal sends the transaction status to that URL. Use the transaction_id from the callback request to retrieve the full transaction details through the Transaction Details endpoint.
The callback transaction status can be pending, success, or fail.
Failure Reasons
A failed transaction may occur for multiple reasons depending on the bank gateway response or user behavior. Refer to the Transaction Failed Reasons page for more details.
Related API Endpoints
Get Payment Link Details
Returns comprehensive payment details including customer info, order details, status, and transaction(s) information via POST /payment_links/{payment_link_id}/details.
Get Specific Transaction Details
Returns detailed transaction information, card brand, fee breakdown, and installment tenure via GET /installment/transaction/{transaction_id}/details.
