Skip to main content
GET
Get Transaction
Retrieve the full details of a specific wallet transaction, by either Rolla’s transaction ID or the externalReference you set when you created it.

Example Request

Example Response

Amounts are in minor units — 500000 is ₦5,000.00. Fields that do not apply are omitted rather than returned as null: beneficiary only when the payout went to one, exchange_rate on swaps only, and virtual_account, payer and payment_rail on deposits only.

Looking one up by your own reference

The path segment accepts two things, and Rolla picks by shape: So if you kept only your own reference, you can read the transaction back without ever storing our ID:
An external_reference is only unique within the account that set it. If the same reference exists on more than one transaction in scope, the most recent one is returned. Pass the transaction id when you need an exact, single row — for example when reconciling.
Transaction IDs and references both come back from the /wallet/transactions and /accounts/transactions list endpoints, and from every webhook payload.

What you can read

The lookup is scoped to what your key can see:
  • An ordinary key reads transactions belonging to its own business.
  • A partner (white-label tenant) key reads any transaction across its whole tenancy — its own account and every account it has onboarded. A row you found in List Transactions Across Accounts is fetchable by ID here directly; you do not need to work out which account owns it first.
  • Adding the X-Account-Id header narrows the lookup to that one account, as it does on every other endpoint.
A transaction that doesn’t exist and one that belongs to somebody else both return the same 404, so IDs can’t be probed:

Payment tracking references

A cross-border payout carries uetr and tracking_codes once the SWIFT network returns them — the references a beneficiary’s bank is chased with.
Both fields are omitted until the reference exists — they are not returned as null. The UETR is assigned by the correspondent network after the payout is sent, typically within minutes but sometimes hours later, so a payout read back immediately after you create it will not carry one. Local-rail and stablecoin payouts never get one. Branch on the field’s presence; never block your flow waiting for it.
To be told the moment a UETR lands rather than polling for it, subscribe to the transaction.uetr.assigned webhook. It carries the same value.

Authorizations

X-API-Key
string
header
required

Your Rolla API key

Path Parameters

transactionId
string
required

Rolla's transaction ID (UUID), or the externalReference you set when creating the transaction.

Response

The transaction

status
integer
required
Example:

200

message
string
required
Example:

"Transaction retrieved successfully"

success
boolean
required
Example:

true

data
object
required