Skip to content

List purchases

GET
/purchases
curl --request GET \
--url 'https://api.poweredbyaura.com/v1/purchases?reference=order-10293&status=pending&phone_number=%2B2348000000001&limit=25' \
--header 'Authorization: Bearer <token>'

Returns your purchases, newest first. Filter by reference to find one purchase by your own ID, or by a time range to reconcile a period.

reference
string

Your reference for the purchase. Returns at most one purchase.

Example

order-10293
status

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
string

Example

+2348000000001
created_from
string format: date-time

Only purchases created at or after this time.

created_to
string format: date-time

Only purchases created before this time.

limit
integer
default: 25 >= 1 <= 100

Items per page, from 1 to 100.

cursor
string

The next_cursor from the previous page.

A page of purchases.

Media typeapplication/json
object
object
required
string
Allowed value: list
data
required
Array<object>
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
has_more
required
boolean
next_cursor
required
string | null

Examples

ExamplebyReference

One purchase found by reference

{
"object": "list",
"data": [
{
"id": "pur_01JA7ZK3Q9W2D8M5X4N6B1C0VE",
"object": "purchase",
"reference": "order-10293",
"status": "successful",
"phone_number": "+2348000000001",
"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:14:30Z",
"resolve_by": "2026-10-12T09:44:30Z",
"completed_at": "2026-10-12T09:14:31Z",
"delivery": {
"confirmed_at": "2026-10-12T09:14:31Z",
"network_reference": "A-8841207731"
},
"failure": null,
"reversal": null,
"metadata": {
"customer_id": "cus_88412"
}
}
],
"has_more": false,
"next_cursor": null
}
Aura-Request-Id
string
Example
req_7Kp2Vx9QmR4t

A unique ID for this request. Quote it when you contact your technical contact.

The request is malformed or a field is invalid. Fix it before retrying.

Media typeapplication/json
object
error
required
object
code
required

A stable, machine-readable code. New codes may be added in v1, so treat an unknown code by its HTTP status and retryable flag.

string
Allowed values: invalid_request invalid_phone_number invalid_api_key ip_not_allowed not_found insufficient_balance reference_conflict bundle_unavailable network_mismatch unsupported_network rate_limited internal_error network_unavailable
message
required

A human-readable explanation. Do not parse it; use code.

string
param

The request field the error is about, when there is one.

string
retryable
required

Whether the same request can succeed if you retry it later.

boolean
request_id
required
string
details

Extra facts about the error, such as the existing purchase or the network’s status.

object
key
additional properties
any

Examples

ExampleinvalidPhoneNumber
{
"error": {
"code": "invalid_phone_number",
"message": "phone_number must be in E.164 format, such as +2348000000001.",
"param": "phone_number",
"retryable": false,
"request_id": "req_9Qd4Hs1XvB7n"
}
}
Aura-Request-Id
string
Example
req_7Kp2Vx9QmR4t

A unique ID for this request. Quote it when you contact your technical contact.

The API key is missing, wrong or revoked.

Media typeapplication/json
object
error
required
object
code
required

A stable, machine-readable code. New codes may be added in v1, so treat an unknown code by its HTTP status and retryable flag.

string
Allowed values: invalid_request invalid_phone_number invalid_api_key ip_not_allowed not_found insufficient_balance reference_conflict bundle_unavailable network_mismatch unsupported_network rate_limited internal_error network_unavailable
message
required

A human-readable explanation. Do not parse it; use code.

string
param

The request field the error is about, when there is one.

string
retryable
required

Whether the same request can succeed if you retry it later.

boolean
request_id
required
string
details

Extra facts about the error, such as the existing purchase or the network’s status.

object
key
additional properties
any

Examples

ExampleinvalidKey
{
"error": {
"code": "invalid_api_key",
"message": "The API key is not valid.",
"retryable": false,
"request_id": "req_2Mz6Rt8KcW1p"
}
}
Aura-Request-Id
string
Example
req_7Kp2Vx9QmR4t

A unique ID for this request. Quote it when you contact your technical contact.

Too many requests. Wait for Retry-After seconds, then retry.

Media typeapplication/json
object
error
required
object
code
required

A stable, machine-readable code. New codes may be added in v1, so treat an unknown code by its HTTP status and retryable flag.

string
Allowed values: invalid_request invalid_phone_number invalid_api_key ip_not_allowed not_found insufficient_balance reference_conflict bundle_unavailable network_mismatch unsupported_network rate_limited internal_error network_unavailable
message
required

A human-readable explanation. Do not parse it; use code.

string
param

The request field the error is about, when there is one.

string
retryable
required

Whether the same request can succeed if you retry it later.

boolean
request_id
required
string
details

Extra facts about the error, such as the existing purchase or the network’s status.

object
key
additional properties
any

Examples

ExamplerateLimited
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Retry after 2 seconds.",
"retryable": true,
"request_id": "req_6Yf2Pk8GwN4s"
}
}
Aura-Request-Id
string
Example
req_7Kp2Vx9QmR4t

A unique ID for this request. Quote it when you contact your technical contact.

Retry-After
integer

Seconds to wait before retrying.

RateLimit-Limit
integer

Requests allowed in the current window.

RateLimit-Remaining
integer

Requests left in the current window.

RateLimit-Reset
integer

Seconds until the current window resets.