Skip to content

Wallets

Current, held and available balance of one wallet

GET/api/v1/tenant/wallets/{uid}/balance

Scope wallets:read

Path parameters

NameTypeRequiredDescription
uidstringyes

Response · 200

FieldTypeDescription
walletUidstring
currencystring
currentMinornumberInteger minor units (e.g. 250000 = ETB 2,500.00).
heldMinornumberMinor units.
availableMinornumberMinor units; the only figure a debit is authorized against.
statusenumOne of pending, active, debit_blocked, credit_blocked, frozen, dormant, closed.
asOfstringWhen the balance last changed.
Example (generated from the schema)
json
{
  "walletUid": "01J9Z3K5X8QW2R4T6V8Y0B1C3D",
  "currency": "ETB",
  "currentMinor": 0,
  "heldMinor": 0,
  "availableMinor": 0,
  "status": "pending",
  "asOf": "string"
}

Errors

400 401 403 404 429 500 503 — one body shape for all of them, see Errors.

Paginated statement of one wallet, newest first

GET/api/v1/tenant/wallets/{uid}/transactions

Scope wallets:read

Only operations that have moved funds or reached a final state are listed unless includePending=true. For a closed period (from/to in the past) the same query returns the same rows whenever it is asked: history is never changed.

Path parameters

NameTypeRequiredDescription
uidstringyes

Query parameters

NameTypeRequiredDescription
typestringnoOperation type code
statestringnoOperation state
fromstringnoISO-8601 instant, inclusive lower bound on createdAt
tostringnoISO-8601 instant, inclusive upper bound on createdAt
includePendingbooleannoAlso list in-flight operations
pagenumbernoPage to retrieve, 1-based. Example: 1 Default Value: 1
limitnumbernoRecords per page. Values above the maximum are clamped, not rejected. Default Value: 20 Max Value: 100
sortByenum[]noSort key. Repeat the param to sort by several fields; URL order sets precedence. Format: fieldName:DIRECTION Example: sortBy=createdAt:DESC&sortBy=id:ASC Default Value: createdAt:DESC,id:DESC Available Fields createdAt id Any other field is rejected with 400.

Response · 200

FieldTypeDescription
dataobject[]
data[].operationUidstring
data[].amountMinornumberInteger minor units (e.g. 250000 = ETB 2,500.00).
data[].feeMinornumberMinor units.
data[].taxMinornumberMinor units.
data[].directionenumRelative to the wallet in the path. One of inbound, outbound.
data[].statestringOperation state: created, awaiting_authorization, authorized, held, processing, pending_provider, confirmed, failed, reversed or completed.
data[].clientReferenceobject | nullYour reference, exactly as you supplied it.
data[].counterpartyHintobject | nullMasked; never the clear counterparty.
data[].createdAtstring
data[].completedAtobject | null
data[].receiptstringAPI-relative path of the receipt (GET /tenant/operations/{uid}/receipt).
metaobject
meta.totalnumber
meta.pagenumber
meta.limitnumber
meta.totalPagesnumber
Example (generated from the schema)
json
{
  "data": [
    {
      "operationUid": "01J9Z3K5X8QW2R4T6V8Y0B1C3D",
      "amountMinor": 0,
      "feeMinor": 0,
      "taxMinor": 0,
      "direction": "inbound",
      "state": "string",
      "clientReference": {},
      "counterpartyHint": {},
      "createdAt": "2026-09-03T10:15:30.000Z",
      "completedAt": {},
      "receipt": "string"
    }
  ],
  "meta": {
    "total": 42,
    "page": 1,
    "limit": 20,
    "totalPages": 3
  }
}

Errors

400 401 403 404 429 500 503 — one body shape for all of them, see Errors.