This page lists the webhook event types you can subscribe to.

Payment events

EventDescription
payment.createdA payment has been created
payment.processingPayment is being processed by the provider
payment.succeededPayment completed successfully
payment.failedPayment was declined or failed
payment.expiredPayment timed out (customer didn’t confirm)
payment.cancelledPayment was cancelled

Refund events

EventDescription
refund.createdA refund has been initiated
refund.succeededRefund was processed successfully
refund.failedRefund could not be processed

Event payload examples

{
  "id": "evt_abc123",
  "type": "payment.succeeded",
  "created_at": "2024-03-15T10:30:00Z",
  "data": {
    "id": "tx_xyz789",
    "object": "transaction",
    "amount": 5000,
    "currency": "XAF",
    "status": "COMPLETED",
    "payment_method": "ORANGE_MONEY",
    "payer": {
      "phone": "237690000001",
      "name": "John Doe"
    },
    "description": "Order #12345",
    "reference": "ORDER-123",
    "metadata": {
      "order_id": "123"
    },
    "created_at": "2024-03-15T10:28:00Z",
    "completed_at": "2024-03-15T10:30:00Z"
  }
}
{
  "id": "evt_def456",
  "type": "payment.failed",
  "created_at": "2024-03-15T10:31:00Z",
  "data": {
    "id": "tx_abc123",
    "object": "transaction",
    "amount": 5000,
    "currency": "XAF",
    "status": "FAILED",
    "payment_method": "ORANGE_MONEY",
    "error": {
      "code": "insufficient_balance",
      "message": "Customer has insufficient balance"
    }
  }
}
{
  "id": "evt_ghi789",
  "type": "refund.succeeded",
  "created_at": "2024-03-16T08:00:00Z",
  "data": {
    "id": "rf_xxx",
    "object": "refund",
    "transaction_id": "tx_xyz789",
    "amount": 2500,
    "currency": "XAF",
    "status": "COMPLETED",
    "reason": "Customer request"
  }
}