Skip to content

Lookup and reconciliation

Your records and Aura’s should always agree. The API gives you three tools for that: look up any purchase, read your balance, and download each day’s statement.

By your own reference, which is usually all you have after a timeout:

Terminal window
curl "https://api.poweredbyaura.com/v1/purchases?reference=order-10293" \
-H "Authorization: Bearer $AURA_API_KEY"

An empty data list means Aura never received that purchase, so you can safely send it again with the same reference. If you have the purchase id, Get a purchase returns it directly.

List purchases also filters by status, phone_number and a created_from / created_to time range. Use it to find purchases still pending, or every purchase for a customer who calls your support team.

Purchases are paid from a prepaid balance. Get your balance returns two amounts:

  • available: what you can spend now.
  • held: the price of purchases still pending. It is charged if they succeed and released if they fail.

A purchase that would take available below zero is refused with 402 insufficient_balance. How you top up, and whether you get a low-balance alert, is agreed with your technical contact.

Each UTC day has a statement with the opening and closing balance and totals by outcome, and a list of every balance movement: purchases charged, reversals refunded, top-ups and agreed adjustments.

  • A statement is open during the day and closed shortly after midnight UTC. A closed statement never changes.
  • A purchase is on the statement for the day it was charged or failed, not the day it was created. A purchase created at 23:59 and confirmed at 00:01 is on the next day’s statement.
  • A reversal appears on the statement for the day it happened, even if the purchase was charged days earlier.
  • Failed purchases are counted in the totals but have no line, because nothing moved.

Download a whole day as one CSV file:

Terminal window
curl "https://api.poweredbyaura.com/v1/statements/2026-10-12/lines" \
-H "Authorization: Bearer $AURA_API_KEY" \
-H "Accept: text/csv" -o aura-2026-10-12.csv
line_id,type,occurred_at,purchase_id,reference,phone_number,bundle_id,amount,currency,balance_after
stl_01JA80C1,purchase,2026-10-12T09:14:31Z,pur_01JA7ZK3Q9W2D8M5X4N6B1C0VE,order-10293,+2348000000001,bnd_ng_a_1gb_1d,-35000,NGN,12465000

Amounts are signed and in minor units: charges are negative, refunds and top-ups positive.

  1. After midnight UTC, get yesterday’s statement and wait until its status is closed.
  2. Download its lines as CSV.
  3. Match each purchase and reversal line to your records by reference.
  4. Check that opening_balance plus the sum of every line equals closing_balance.
  5. For any purchase you show as complete but that has no line, look it up by reference. It may have been charged on a different day, or be failed.
  6. Send anything still unexplained to your technical contact with the references and the statement date.

Running the same routine in the sandbox before you go live is the quickest way to check your matching logic.