Skip to content

purchase.reversed

POST

Sent in the rare case that a network reverses a bundle after confirming it. The amount is refunded to your balance.

Aura-Event-Id
required
string

The event’s unique ID. The same event delivered twice has the same ID.

Example

evt_01JA80C4M2T7R9F3H6K8P1D5QS
Aura-Event-Type
required
string

Example

purchase.successful
Aura-Timestamp
required
string

When this delivery attempt was signed, in Unix seconds.

Example

1760260476
Aura-Signature
required
string

v1= followed by the lowercase hex HMAC-SHA256 of {Aura-Timestamp}.{raw body}, keyed with your webhook secret. During a secret rotation the header carries two signatures separated by a comma.

Example

v1=5f2b0c7d9e8a41b3c6d0e9f2a7b4c1d8e3f6a9b2c5d8e1f4a7b0c3d6e9f2a5b8
Media typeapplication/json
object
id
required

Same as the Aura-Event-Id header.

string
object
required
string
Allowed value: event
type
required
string
Allowed values: purchase.successful purchase.failed purchase.reversed
created_at
required
string format: date-time
data
required
object
object
required
object
id
required
string
object
required
string
Allowed value: purchase
reference
required
string
status
required

pending: accepted, waiting for the network’s confirmation. successful: the network confirmed the bundle was credited, and you were charged. failed: the bundle was not credited, and you were not charged. reversed: the network reversed a successful bundle, and you were refunded. successful, failed and reversed are final, except that successful can become reversed.

string
Allowed values: pending successful failed reversed
phone_number
required
string
network_id
required
string
bundle
required

The bundle as it was when bought.

object
id
required
string
name
required
string
data_mb
required
integer
validity_hours
required
integer
price
required

The amount held while pending, charged if successful, and refunded if reversed.

object
amount
required

Amount in the currency’s minor unit (kobo for NGN).

integer
currency
required

ISO 4217 currency code.

string
/^[A-Z]{3}$/
created_at
required
string format: date-time
resolve_by
required

The latest time by which this purchase will reach a final state. If the network has not confirmed by then, the purchase fails with network_timeout and nothing is charged.

string format: date-time
completed_at
required

When the purchase reached successful or failed.

string | null format: date-time
delivery
required

Present once the network has confirmed the bundle was credited.

object
confirmed_at
required
string format: date-time
network_reference
required

The network’s own reference for the credit, when the network provides one.

string | null
failure
required

Present when the purchase failed.

object
code
required

Why a purchase failed. New codes may be added in v1.

string
Allowed values: network_rejected number_not_eligible bundle_unavailable network_timeout internal_error
message
required
string
reversal
required

Present when a successful purchase was reversed.

object
reversed_at
required
string format: date-time
reason
required
string
metadata
required
object
key
additional properties
string

Examples

Examplereversed

A successful purchase was reversed

{
"id": "evt_01JA87H2Q5M8T1C4W9K3N6R2BV",
"object": "event",
"type": "purchase.reversed",
"created_at": "2026-10-12T11:02:40Z",
"data": {
"object": {
"id": "pur_01JA7ZT2N8D5K1Q7W3F9C6M4BR",
"object": "purchase",
"reference": "order-10295",
"status": "reversed",
"phone_number": "+2348000000005",
"network_id": "net_ng_a",
"bundle": {
"id": "bnd_ng_a_1gb_1d",
"name": "1GB Daily",
"data_mb": 1024,
"validity_hours": 24
},
"price": {
"amount": 35000,
"currency": "NGN"
},
"created_at": "2026-10-12T09:16:10Z",
"resolve_by": "2026-10-12T09:46:10Z",
"completed_at": "2026-10-12T09:16:12Z",
"delivery": {
"confirmed_at": "2026-10-12T09:16:12Z",
"network_reference": "A-8841209954"
},
"failure": null,
"reversal": {
"reversed_at": "2026-10-12T11:02:40Z",
"reason": "The network reversed the credit."
},
"metadata": {}
}
}
}

Return any 2xx status within 10 seconds to acknowledge the event.