Skip to main content

The transaction object

A transaction is the single source of truth for every financial event in Orafi. Each payment, payout, and refund creates a transaction record.
id
string
Unique identifier for the transaction.
type
string
Transaction type. One of PAYMENT, PAYOUT, or REFUND.
status
string
default:"PENDING"
Current status. One of PENDING, COMPLETED, or FAILED.
amount
number
Transaction amount in NGN.
amountInUSDC
number
Equivalent amount in USDC.
mode
string
Whether this transaction was created in test or live mode.
token
string
default:"USDC"
The token used. Currently always USDC.
createdAt
datetime
Timestamp when the transaction was created.
confirmedAt
datetime
Timestamp when the transaction was confirmed. Null if still pending.
profileId
string
Business profile that owns this transaction.
customerId
string
Customer associated with the transaction, if applicable.
{
  "id": "cmjfu1cjv0003v8vsmmxgjk05",
  "type": "PAYMENT",
  "status": "COMPLETED",
  "amount": 4000,
  "amountInUSDC": 2.53,
  "mode": "test",
  "token": "USDC",
  "createdAt": "2025-12-20T10:30:00.000Z",
  "confirmedAt": "2025-12-20T10:32:15.000Z",
  "profileId": "84a9f045-8a21-4ce4-a7a0-828265c0021b",
  "customerId": "cmjr4c7qq0000v8hozkzz4em5",
  "payment": { ... },
  "payout": null,
  "refund": null
}
Depending on the transaction type, one of the following sub-objects will be populated:
  • type: "PAYMENT" → includes a nested payment object. See Payments.
  • type: "PAYOUT" → includes a nested payout object. See Payouts.
  • type: "REFUND" → includes a nested refund object. See Refunds.

List all transactions

GET /transactions
Returns a paginated list of all transactions for the authenticated business. Supports filtering by type, status, token, mode, date, and more.

Query parameters

type
string
Filter by type: PAYMENT, PAYOUT, or REFUND.
status
string
Filter by status: PENDING, COMPLETED, or FAILED.
token
string
Filter by token. Currently only USDC.
mode
string
Filter by mode: test or live.
date
string
JSON-encoded date filter. Supports preset intervals or custom ranges.Preset: {"type":"preset","interval":"last7days"}Allowed intervals: today, yesterday, last7days, last30days, thisMonth, lastMonth, thisYearRange: {"type":"range","startDate":"2025-01-01","endDate":"2025-01-31"}
Filter by a specific paylink.
paymentMethod
string
Filter by payment method: PAYMENT_LINK or HOSTED_CHECKOUT.
customerId
string
Filter by customer.
limit
number
default:"20"
Maximum number of transactions per page.
cursor
string
Cursor for pagination. Pass the nextCursor from a previous response.
curl -X GET "https://api.orafi.app/v1/transactions?status=COMPLETED&limit=10" \
  -H "x-api-key: ora_test_your_api_key"

Retrieve a transaction

GET /transactions/{transactionId}
Fetches full details for a single transaction, including related payment, payout, or refund data.

Path parameters

transactionId
string
required
Unique identifier of the transaction to retrieve.
curl -X GET https://api.orafi.app/v1/transactions/cmjr6iwo60004v84wdnwm7qub \
  -H "x-api-key: ora_test_your_api_key"