Get Inter-Financial Account Transfers
This endpoint retrieves a list of transfers that have occurred between different financial accounts within the Netevia platform. It is a core component of the Daily Spending Report and provides a detailed view of fund movements across accounts. The endpoint supports pagination, date range filtering, and custom JSON-based filters for flexible report generation.
Endpoint
POST /Report/interFinancialAccountTransfers
Authentication
Bearer token required. Obtain via:
POST https://api.banking.netevia.dev/api/auth/v2
Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.
When to use
Use this endpoint when you need to generate reports on fund movements between financial accounts, such as for daily reconciliation or audit purposes. It is particularly useful for partners building financial dashboards that require visibility into inter-account transfer activity. Access to the Daily Spending Report permission is required to call this endpoint successfully.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| take | integer (int32) | null | No | Number of transfers to retrieve per request (pagination). Set to null to retrieve all results. |
| afterCursor | string | null | No | Cursor string for fetching the next batch of results. Use the endCursor value from a previous response to continue pagination. |
| fromDate | string (date-time) | null | No | Start of the date range filter (inclusive). Only transfers on or after this date are returned. Format: ISO 8601, e.g. 2024-10-09T14:50:02.137Z. |
| toDate | string (date-time) | null | No | End of the date range filter (inclusive). Only transfers on or before this date are returned. Format: ISO 8601, e.g. 2024-10-09T14:50:02.137Z. |
| jsonFilter | string | null | No | A JSON-formatted string for applying custom filters to the query, such as transfer types, specific accounts, or transaction statuses. |
| cardProductId | string | null | No | Optional card product identifier to scope the report to a specific card product. |
{
"take": 25,
"afterCursor": null,
"fromDate": "2024-10-01T00:00:00.000Z",
"toDate": "2024-10-09T23:59:59.999Z",
"jsonFilter": null,
"cardProductId": null
}Response
200 OK
The response wraps a merged activity dataset with pagination metadata and applied filter state.
Top-level response (financialactivityresponse)
| Field | Type | Description |
|---|---|---|
| data | object | Container for paginated activity records and pagination info. |
| filter | object | Reflects the active filter categories applied to the result set. |
data object (accountactivitymergeddataresponse)
| Field | Type | Description |
|---|---|---|
| transferPageInfo | array of pageinfo | Pagination info for each transfer set. Contains startCursor, endCursor, hasNextPage, hasPreviousPage. |
| transactionPageInfo | object (pageinfo) | Pagination info for the transaction set. |
| activity | array of activity records | List of inter-financial account transfer activity items. |
activity item (accountactivityresponsemodel)
| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier for the transfer or transaction. |
| typename | string | Type classification of the activity record. |
| name | string | Display name of the activity. |
| typeModel | string | Model type descriptor. |
| pendingAmount | object (amount) | Pending amount with value (int64) and currencyCode. |
| amount | object (amount) | Settled amount with value (int64) and currencyCode. |
| lastEventBalanceSnapshot | object (amount) | Account balance snapshot at the time of the last event. |
| createdAt | string (date-time) | Timestamp when the activity record was created. |
| isComplete | boolean | Indicates whether the transfer has been fully completed. |
| transactionSource | object (source) | Source details including typename, id, and transactionEvents. |
| transferStatus | object | Transfer status with status and statusReasonCode fields. |
| companyName | string | Name of the company associated with the transfer. |
| descriptor | object | ACH descriptor with companyEntryDescription, individualName, and individualIdentificationNumber. |
| toFinancialAccount | object | Destination financial account with id, name, last4, provider, and externalBankAccountDetails. |
| fromFinancialAccount | object | Source financial account with id, name, last4, provider, and externalBankAccountDetails. |
| refundEvent | object (transactionevent) | Details of a refund event if applicable. |
| lastEvent | object (transactionevent) | Most recent event associated with this activity. |
| firstEvent | object (transactionevent) | First event associated with this activity. |
| isBetweenOwnAccounts | boolean | True if the transfer is between accounts owned by the same customer. |
| activityInfo | object | Contains fromProfile, toProfile, and historyRecords for audit trail. |
| purpose | string | Stated purpose of the transfer. |
| giftCardOrderId | string | Associated gift card order ID, if applicable. |
| memo | string | Optional memo or note attached to the transfer. |
| fromDBA | string | DBA (doing business as) name of the sending entity. |
| toDBA | string | DBA name of the receiving entity. |
filter object (finaccounttransactionfilter)
| Field | Type | Description |
|---|---|---|
| all | object (filteritem) | Filter item representing all activity types. |
| deposit | object (filteritem) | Filter item for deposit activity. |
| withdraw | object (filteritem) | Filter item for withdrawal activity. |
| transfers | object (filteritem) | Filter item for transfer activity. |
| pos | object (filteritem) | Filter item for point-of-sale activity. |
| transactionStatus | object (filteritem) | Filter item for transaction status. |
| others | object (filteritem) | Filter item for other activity types. |
{
"data": {
"transferPageInfo": [
{
"startCursor": "cursor_abc123",
"endCursor": "cursor_xyz789",
"hasNextPage": true,
"hasPreviousPage": false
}
],
"transactionPageInfo": {
"startCursor": null,
"endCursor": null,
"hasNextPage": false,
"hasPreviousPage": false
},
"activity": [
{
"id": "trf_a1b2c3d4e5f6",
"typename": "ACHTransfer",
"name": "Inter-Account Transfer",
"typeModel": "Transfer",
"pendingAmount": {
"value": 0,
"currencyCode": "USD"
},
"amount": {
"value": 50000,
"currencyCode": "USD"
},
"lastEventBalanceSnapshot": {
"value": 150000,
"currencyCode": "USD"
},
"createdAt": "2024-10-05T10:30:00.000Z",
"isComplete": true,
"transactionSource": {
"typename": "ACHTransfer",
"id": "src_9z8y7x6w",
"transactionEvents": []
},
"transferStatus": {
"status": "COMPLETED",
"statusReasonCode": null
},
"companyName": "Acme Corp",
"descriptor": {
"companyEntryDescription": "PAYROLL",
"individualName": "John Smith",
"individualIdentificationNumber": "REF20241005"
},
"toFinancialAccount": {
"id": "fa_to_1234",
"name": "Operating Account",
"last4": "6789",
"provider": "Netevia",
"externalBankAccountDetails": null
},
"fromFinancialAccount": {
"id": "fa_from_5678",
"name": "Savings Account",
"last4": "1234",
"provider": "Netevia",
"externalBankAccountDetails": null
},
"refundEvent": null,
"lastEvent": null,
"firstEvent": null,
"isBetweenOwnAccounts": true,
"activityInfo": {
"fromProfile": {
"id": 101,
"name": "Acme Corp",
"agentId": 10
},
"toProfile": {
"id": 101,
"name": "Acme Corp",
"agentId": 10
},
"historyRecords": [
{
"date": "2024-10-05T10:30:00.000Z",
"status": "COMPLETED"
}
]
},
"purpose": "Internal fund reallocation",
"giftCardOrderId": null,
"memo": "Q4 budget transfer",
"fromDBA": "Acme Corp",
"toDBA": "Acme Corp"
}
]
},
"filter": {
"all": { "displayName": "All", "value": true, "items": null },
"deposit": { "displayName": "Deposits", "value": false, "items": null },
"withdraw": { "displayName": "Withdrawals", "value": false, "items": null },
"transfers": { "displayName": "Transfers", "value": true, "items": null },
"pos": { "displayName": "POS", "value": false, "items": null },
"transactionStatus": { "displayName": "Status", "value": false, "items": null },
"others": { "displayName": "Others", "value": false, "items": null }
}
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields or validation error in request body |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions — Daily Spending Report access is required |
| 404 | No records found matching the specified criteria |
| 500 | Internal server error |
Common Mistakes
- Omitting the
Authorization: Bearerheader or using an expired token (10-minute lifetime) will result in a 401 error. - Providing
fromDatelater thantoDatewill return an empty result set or a 400 error; always ensure the date range is chronologically valid. - Not using the
endCursorvalue from the previous response when paginating — always pass theendCursorasafterCursorto fetch the next page. - Sending
fromDateortoDatein a non-ISO 8601 format will cause a validation error; use theYYYY-MM-DDTHH:mm:ss.sssZformat. - Calling this endpoint without Daily Spending Report access provisioned for the partner account will return a 403 Forbidden response.
Related Endpoints
POST /Report/financialAccountTransactions— Retrieves card transactions and other account-level activity for reportingGET /FinancialAccount/{financialAccountId}— Retrieves details for a specific financial accountPOST /Transfer/interFinancialAccount— Initiates a transfer between financial accounts
Example
curl -X POST https://api.banking.netevia.dev/Report/interFinancialAccountTransfers \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"take": 25,
"afterCursor": null,
"fromDate": "2024-10-01T00:00:00.000Z",
"toDate": "2024-10-09T23:59:59.999Z",
"jsonFilter": null,
"cardProductId": null
}'