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.
NNNNNis a five-digit, zero-padded sequence starting at00001. - 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.
YYYYMMDDis 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.amountanddestination_amount.amountare what actually hit each customer account. They include any fee added to the source side or subtracted from the destination side, according tofee.charged_to. To recover the requested (principal) amount, subtractfee.amountfrom the side matchingfee.charged_to.- A transaction carries at most one fee.
- For a same-currency transfer,
source_amount.currencyanddestination_amount.currencyare equal andexchange_rateis empty. For a cross-currency transfer, the two currencies differ andexchange_rateis the rate supplied in the original request.
Data fields
Use the table below to help you interpret the data in the report:
| Field name | Description | Example | Format |
|---|---|---|---|
| System_date | Report generation timestamp (UTC) | 2026-05-15T10:00:00.123Z | Datetime ISO 8601 (UTC) |
| Id | Unique transaction identifier | 33333333-3333-3333-3333-333333333333 | UUID |
| Type | Type of money movement: DEPOSIT WITHDRAWAL TRANSFER | TRANSFER | Alphabetic |
| Transaction_reference | Client-supplied external reference provided at request time | XCH-1 | Alphanumeric |
| Transaction_description | Free-text description provided on the request | Monthly savings | Alphanumeric |
| Updated_at | When 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.500Z | Datetime ISO 8601 (UTC) |
| Source_account_id | Account debited Populated for WITHDRAWAL and TRANSFER; empty for DEPOSIT | ACC-001 | Alphanumeric |
| Destination_account_id | Account credited Populated for DEPOSIT and TRANSFER; empty for WITHDRAWAL | ACC-002 | Alphanumeric |
| Source_amount.amount | Net amount actually debited from the source customer account, in minor units Empty for DEPOSIT | 100050 | Numeric - integer (minor units) |
| Source_amount.currency | Currency of the source customer account (ISO 4217 alphabetic currency code) Empty for DEPOSIT | ZAR | Alphabetic |
| Destination_amount.amount | Net amount actually credited to the destination customer account, in minor units Empty for WITHDRAWAL | 5300 | Numeric - integer (minor units) |
| Destination_amount.currency | Currency of the destination customer account (ISO 4217 alphabetic currency code) Empty for WITHDRAWAL | USD | Alphabetic |
| Exchange_rate | Exchange rate applied Populated for cross-currency TRANSFER (where source and destination currencies differ); empty otherwise | 0.053 | Numeric - decimal |
| Fee.amount | Fee amount, in minor units Empty if no fee was charged | 50 | Numeric - integer (minor units) |
| Fee.currency | Currency of the fee (ISO 4217 alphabetic currency code) Empty if no fee was charged | ZAR | Alphabetic |
| Fee.charged_to | Side the fee was charged to: SOURCE DESTINATION Empty if no fee was charged | SOURCE | Alphabetic |
| Fee.type | Fee tag (client-specific, e.g. DEPOSIT_FEE, WITHDRAWAL_FEE, TRANSFER_FEE) Empty if no fee was charged | TRANSFER_FEE | Alphanumeric |
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_FEEUpdated 11 days ago
Did this page help you?

