Skip to main content
WEBHOOK
payment.attempt_failed
{
  "id": "evt_81239839123",
  "type": "payment.attempt_failed",
  "data": {
    "id": "pay_123123123",
    "status": "draft",
    "amount": 300,
    "currency": "ZAR",
    "country": "ZA",
    "external_reference": "order_id_2331120",
    "payment_method_details": {
      "type": "card",
      "card": {
        "type": "CREDIT",
        "scheme": "MASTERCARD",
        "bin": "527346",
        "last4": "3333"
      }
    },
    "last_payment_error": {
      "error_code": "card_declined",
      "decline_code": "generic_decline",
      "message": "The request attempted to process a payment, but an error occurred during card processing.",
      "timestamp": "2025-01-30T10:56:08.727Z"
    },
    "mode": "live",
    "metadata": {
      "order_id": "o_b5MuE6le7p9W5Ufsf8tQk"
    },
    "created_at": "2026-02-12T09:00:44.224Z",
    "updated_at": "2026-02-12T09:02:23.153Z"
  }
}

Body

application/json

Event payload for payment lifecycle webhooks.

id
string
required

Unique identifier for the event.

type
enum<string>
required

Type of event being emitted.

Available options:
payment.succeeded,
payment.attempt_failed,
payment.failed,
payment.captured,
payment.voided
data
Payment Object · object
required

Payment data associated with the event.

Response

200

Return a 200 status to indicate that the data was received successfully