Ledger Money Movement

This daily ledger money movement report provides a statement of every deposit, withdrawal, and transfer posted on the previous day in your local timezone, as triggered through the Money Movement Service.

It includes the transaction details, the customer accounts debited and credited, the amounts and currencies on each side, the exchange rate applied to cross-currency transfers, and any fee charged. You can utilise this report for use-cases such as:

  • Reconciling money movement activity
  • Accounting

Format: CSV (UTF-8, RFC 4180 quoting)
File Name: [ClientId-money-movement-report-YYYYMMDD-NNNNN].csv
Frequency: Daily, anchored to the client's local timezone
Stored in: Client-hosted (e.g. SFTP)

File structure

  • The report is split into one or more part files of up to 100,000 rows each. NNNNN is a five-digit, zero-padded sequence starting at 00001.
  • Each part file repeats the header row.
  • If there were no deposits, withdrawals, or transfers on the report day, a single file containing only the header row is produced.
  • YYYYMMDD is the report date: the calendar day that has just ended in the client's local timezone. The report covers transactions posted from local midnight at the start of that day up to (but not including) local midnight at the end of it.
  • Rows are ordered by the time the transaction was posted.
  • Nested fields use dot notation in the CSV header (e.g. source_amount.amount).
  • Only posted deposits, withdrawals, and transfers are included; other transaction types are not. Each transaction appears on one row.
  • A transaction could be in rejected status inside this report.

Amounts and fees

  • source_amount.amount and destination_amount.amount are what actually hit each customer account. They include any fee added to the source side or subtracted from the destination side, according to fee.charged_to. To recover the requested (principal) amount, subtract fee.amount from the side matching fee.charged_to.
  • A transaction carries at most one fee.
  • For a same-currency transfer, source_amount.currency and destination_amount.currency are equal and exchange_rate is empty. For a cross-currency transfer, the two currencies differ and exchange_rate is the rate supplied in the original request.

Data fields

Use the table below to help you interpret the data in the report:

Field nameDescriptionExampleFormat
System_dateReport generation timestamp (UTC)2026-05-15T10:00:00.123ZDatetime
ISO 8601 (UTC)
IdUnique transaction identifier33333333-3333-3333-3333-333333333333UUID
TypeType of money movement:
DEPOSIT
WITHDRAWAL
TRANSFER
TRANSFERAlphabetic
Transaction_referenceClient-supplied external reference provided at request timeXCH-1Alphanumeric
Transaction_descriptionFree-text description provided on the requestMonthly savingsAlphanumeric
Updated_atWhen the transaction reached its final status (UTC). In Query, transactions are written once on TRANSACTION_POSTED, so created_at is the moment the transaction reached its final state.2026-05-12T09:30:00.500ZDatetime
ISO 8601 (UTC)
Source_account_idAccount debited
Populated for WITHDRAWAL and TRANSFER; empty for DEPOSIT
ACC-001Alphanumeric
Destination_account_idAccount credited
Populated for DEPOSIT and TRANSFER; empty for WITHDRAWAL
ACC-002Alphanumeric
Source_amount.amountNet amount actually debited from the source customer account, in minor units
Empty for DEPOSIT
100050Numeric - integer (minor units)
Source_amount.currencyCurrency of the source customer account (ISO 4217 alphabetic currency code)
Empty for DEPOSIT
ZARAlphabetic
Destination_amount.amountNet amount actually credited to the destination customer account, in minor units
Empty for WITHDRAWAL
5300Numeric - integer (minor units)
Destination_amount.currencyCurrency of the destination customer account (ISO 4217 alphabetic currency code)
Empty for WITHDRAWAL
USDAlphabetic
Exchange_rateExchange rate applied
Populated for cross-currency TRANSFER (where source and destination currencies differ); empty otherwise
0.053Numeric - decimal
Fee.amountFee amount, in minor units
Empty if no fee was charged
50Numeric - integer (minor units)
Fee.currencyCurrency of the fee (ISO 4217 alphabetic currency code)
Empty if no fee was charged
ZARAlphabetic
Fee.charged_toSide the fee was charged to:
SOURCE
DESTINATION
Empty if no fee was charged
SOURCEAlphabetic
Fee.typeFee tag (client-specific, e.g. DEPOSIT_FEE, WITHDRAWAL_FEE, TRANSFER_FEE)
Empty if no fee was charged
TRANSFER_FEEAlphanumeric

Sample file

system_date,id,type,transaction_reference,transaction_description,updated_at,source_account_id,destination_account_id,source_amount.amount,source_amount.currency,destination_amount.amount,destination_amount.currency,exchange_rate,fee.amount,fee.currency,fee.charged_to,fee.type
2026-05-15T10:00:00.123Z,11111111-1111-1111-1111-111111111111,DEPOSIT,DEP-1,Salary top-up,2026-05-14T07:12:45.100Z,,ACC-001,,,250000,ZAR,,,,,
2026-05-15T10:00:00.123Z,22222222-2222-2222-2222-222222222222,WITHDRAWAL,WDR-1,ATM cash-out,2026-05-14T08:05:10Z,ACC-001,,20500,ZAR,,,,500,ZAR,SOURCE,WITHDRAWAL_FEE
2026-05-15T10:00:00.123Z,44444444-4444-4444-4444-444444444444,TRANSFER,TRF-1,"Rent, May",2026-05-14T09:00:00.250Z,ACC-001,ACC-002,75000,ZAR,75000,ZAR,,,,,
2026-05-15T10:00:00.123Z,33333333-3333-3333-3333-333333333333,TRANSFER,XCH-1,,2026-05-14T09:30:00.500Z,ACC-001,ACC-003,100050,ZAR,5300,USD,0.053,50,ZAR,SOURCE,TRANSFER_FEE

Did this page help you?