Entries Reporting (beta)
Retrieve ledger entries for your accounts in JSON format via API.
Transaction Level Reporting
You can use the Entries List Endpoint to fetch a list of all transactions made to your Ivy accounts. It’s perfect for building internal reconciliations, generating statements, or tracking activity on your account with full transparency. Think of it like scrolling through your bank transaction history.
Each transaction entry includes:
- Whether the transaction was debit or credit side
- The amount and currency
- Who sent or received the funds represented as debtor and creditor
- The account balance before and balance after
- The bank statement reference
- The timestamp of the transaction
Request Entries
This endpoint uses cursor-based pagination with startAfter. This helps you pull large datasets reliably, even as new entries are created.
Field | Type | Required | Description |
---|---|---|---|
from | number | ✅ | Start of your query window (inclusive), as a UNIX timestamp (seconds). |
to | number | ✅ | End of your query window (exclusive), as a UNIX timestamp. |
limit | number | ❌ | Max number of entries to return (1-100). Defaults to 10 if not set. |
startAfter | string | ❌ | Cursor for pagination. Use the entryId of the last result from the previous call. |
For example, to retrieve all of yesterday’s activity:
- Set from and to to match the UTC timestamps for that day.
- Keep calling the endpoint with startAfter set to the last entryId returned, until hasNext is false.
**Example Request **
This would return up to 50 ledger entries between midnight and midnight (UTC) on a given day.
Transaction Data
The response includes a list of transaction, each showing a single credit or debit on one of your accounts. Each entry reflects an financial movement.
Field | Type | Description |
---|---|---|
entryId | string | Unique identifier for this entry. Useful for pagination and auditing. |
transactionId | string | Shared ID across all entries for the same transaction. |
amount | string | Amount moved (decimal, represented as a string). |
currency | string | ISO 4217 currency code (e.g. “EUR”). |
side | string | Direction of the movement from your account’s perspective. Either “credit” or “debit” |
creditor / debtor | FinancialAddress | Counterparty address (IBAN, SCAN, etc.), as a financial address object. |
balance.before | string | Your account balance before this ledger entry. |
balance.after | string | Your account balance after this ledger entry. |
bankStatementReference | string | A reference string you can display or match with external statements. |
transactionDate | number | UNIX timestamp of when the funds arrived/left and the transaction was recorded. |
hasMore | boolean | Whether more data is available — use with startAfter to paginate. |
Example Response
Notes & Best Practices
Point-in-Time Balances
You can use the balance.before and balance.after fields to reconstruct your account balance at any point in time. For example:
- To get the balance as of midnight yesterday, fetch the first entry after that time and read balance.before.
- To build a balance chart, just pull entries over time and stitch together the balance.after values.
If you want the current balance, use the /balance/retrieve endpoint instead. It’s more efficient for real-time queries.
Understanding Transaction Date
- transactionDate: When a transaction is recorded on the Ivy ledger. For credits this means the funds settled, for debits it means the payout was initiated.
- effectiveAt (coming soon): Will represent when funds are actually available for use by the merchant.