Event Types

Overview of supported event types

Supported Event Types

Event TypeDescriptionTrigger Condition
order.createdNew order initiatedCustomer starts checkout process
order.successPayment successfulPayment confirmed and completed
order.failedPayment failedPayment declined, failed, or cancelled
order.updatedOrder RefundContain the Bank gateway refund details.
installment.tracker.approvedThe installment is approvedContain the Installment tracker object with its status "A"
installment.tracker.rejectedThe installment is rejectedContain the Installment tracker object with its status "R"
order.disputedChargeback dispute updateContains disputed_status to identify the chargeback status: PENDING, RESOLVED, or LOST.

order.failed Scenario

Amwal sends the order.failed webhook when a payment attempt cannot be completed. This can happen when the payment is declined, fails at the payment gateway, or is cancelled before completion.

Use this event to mark the order or payment attempt as failed in your system. If the payload includes failure_reason, store it with the order so your support team can review the failure reason later.

Example order.failed Payload

{
  "event_type": "order.failed",
  "data": {
    "id": "order_123456789",
    "ref_id": "merchant-order-1001",
    "status": "failed",
    "amount": "250.00000",
    "currency": "SAR",
    "payment_method": "Card",
    "payment_option": "Pay In Full",
    "failure_reason": "Payment was declined by the issuer bank"
  }
}

When you receive an order.failed event:

  • Mark the related order or payment attempt as failed.
  • Store failure_reason when it is included in the payload.
  • Do not fulfill the order unless a later successful payment event is received.
  • Return HTTP 200 after your system accepts the event.