Get ACH Transfers History
The GET /api/fundsMovement/byFinancialAccount endpoint retrieves the complete ACH transfer history for a specified financial account. It returns a list of activity records covering all ACH transactions linked to that account, including transfer amounts, statuses, source and destination account details, and event-level data. This endpoint supports optional date range filtering to narrow results to a specific time window.
Endpoint
GET /api/fundsMovement/byFinancialAccount
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 display or audit ACH transaction history for a customer's financial account. It is suitable for building transaction history screens, generating account statements, or performing reconciliation and financial reporting. Partners can optionally filter by date range to retrieve activity for a specific period.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
financialAccountId | string | Yes | The unique identifier of the financial account whose ACH transfer history is being retrieved. |
from | string (date-time) | No | Start of the date range filter (ISO 8601 format). If omitted, no lower bound is applied. |
to | string (date-time) | No | End of the date range filter (ISO 8601 format). If omitted, no upper bound is applied. |
Response
200 OK
Returns an array of account activity objects. Each object represents one ACH transfer record.
Top-level fields per activity record
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier of the transfer activity record. |
typename | string | The type name of the activity (e.g., ACH transfer type). |
name | string | Human-readable name or label for the transfer. |
typeModel | string | Model type classification of the transfer. |
pendingAmount | object | Pending amount object with value (integer, in cents) and currencyCode (string). |
amount | object | Settled amount object with value (integer, in cents) and currencyCode (string). |
lastEventBalanceSnapshot | object | Balance snapshot at the time of the last event, with value and currencyCode. |
createdAt | string (date-time) | Timestamp when the transfer activity record was created. |
isComplete | boolean | Indicates whether the transfer has reached a terminal/completed state. |
transactionSource | object | Source information: typename, id, and transactionEvents array. |
transferStatus | object | Current transfer status with status and statusReasonCode fields. |
companyName | string | Name of the company associated with the ACH transfer. |
descriptor | object | ACH descriptor details: companyEntryDescription, individualName, individualIdentificationNumber. |
toFinancialAccount | object | Destination financial account: id, name, last4, externalBankAccountDetails, provider. |
fromFinancialAccount | object | Source financial account: id, name, last4, externalBankAccountDetails, provider. |
refundEvent | object | Transaction event details for any associated refund (see transaction event fields below). |
lastEvent | object | Most recent transaction event (see transaction event fields below). |
firstEvent | object | Initial transaction event (see transaction event fields below). |
isBetweenOwnAccounts | boolean | True if the transfer is between two accounts owned by the same customer. |
activityInfo | object | Profile-level info: fromProfile, toProfile (each with id, name, agentId), and historyRecords array. |
purpose | string | Optional memo or purpose text provided at transfer creation. |
giftCardOrderId | string | Associated gift card order ID, if applicable. |
memo | string | Optional free-text memo attached to the transfer. |
fromDBA | string | Doing-business-as name of the sending party. |
toDBA | string | Doing-business-as name of the receiving party. |
Transaction event fields (firstEvent, lastEvent, refundEvent, items in transactionSource.transactionEvents)
firstEvent, lastEvent, refundEvent, items in transactionSource.transactionEvents)| Field | Type | Description |
|---|---|---|
typename | string | Type name of the transaction event. |
id | string | Unique identifier of the transaction event. |
merchantDetails | object | Merchant info: category, categoryCode, countryCodeAlpha3, description, name, merchantId. |
pointOfServiceDetails | object | POS details: panEntryMode, pinEntryMode. |
responseCode | string | Authorization or processing response code. |
responseDescription | string | Human-readable description of the response code. |
approvedAmount | object | Approved amount with value and currencyCode. |
requestedAmount | object | Originally requested amount with value and currencyCode. |
paymentCard | object | Payment card details: id, bin, last4. |
createdAt | string (date-time) | Timestamp of the transaction event. |
authorizationExpiration | string (date-time) | Expiration timestamp of the authorization, if applicable. |
processingType | string | Processing type identifier for the event. |
rewardPoints | integer (int64) | Reward points associated with this event, if applicable. |
accountingDirection | string | Direction of the accounting entry: DEBIT or CREDIT. |
External bank account details fields (within toFinancialAccount.externalBankAccountDetails and fromFinancialAccount.externalBankAccountDetails)
toFinancialAccount.externalBankAccountDetails and fromFinancialAccount.externalBankAccountDetails)| Field | Type | Description |
|---|---|---|
last4 | string | Last 4 digits of the external bank account number. |
type | string | Account type (e.g., checking, savings). |
routingNumber | string | ABA routing number of the external bank. |
createdAt | string (date-time) | Timestamp when the external account was linked. |
updatedAt | string (date-time) | Timestamp of the last update to the external account record. |
accountNumber | string | Full account number of the external bank account. |
History record fields (within activityInfo.historyRecords)
activityInfo.historyRecords)| Field | Type | Description |
|---|---|---|
date | string (date-time) | Timestamp of this status history entry. |
status | string | Status value at this point in the transfer lifecycle. |
[
{
"id": "act_abc123def456",
"typename": "AchTransfer",
"name": "ACH Transfer - Payroll",
"typeModel": "ACH",
"pendingAmount": {
"value": 0,
"currencyCode": "USD"
},
"amount": {
"value": 250000,
"currencyCode": "USD"
},
"lastEventBalanceSnapshot": {
"value": 1500000,
"currencyCode": "USD"
},
"createdAt": "2026-05-15T09:30:00Z",
"isComplete": true,
"transactionSource": {
"typename": "AchTransferSource",
"id": "src_789xyz",
"transactionEvents": []
},
"transferStatus": {
"status": "SETTLED",
"statusReasonCode": null
},
"companyName": "Acme Corp",
"descriptor": {
"companyEntryDescription": "PAYROLL",
"individualName": "John Smith",
"individualIdentificationNumber": "REF20260515"
},
"toFinancialAccount": {
"id": "fa_dest001",
"name": "Checking Account",
"last4": "4321",
"externalBankAccountDetails": null,
"provider": "Netevia"
},
"fromFinancialAccount": {
"id": "fa_src002",
"name": "External Checking",
"last4": "8765",
"externalBankAccountDetails": {
"last4": "8765",
"type": "CHECKING",
"routingNumber": "XXXXXXXXX",
"createdAt": "2025-11-01T10:00:00Z",
"updatedAt": "2025-11-01T10:00:00Z",
"accountNumber": "XXXXXXXXXX"
},
"provider": "Plaid"
},
"refundEvent": null,
"lastEvent": {
"typename": "AchTransferEvent",
"id": "evt_last001",
"merchantDetails": null,
"pointOfServiceDetails": null,
"responseCode": "00",
"responseDescription": "Approved",
"approvedAmount": {
"value": 250000,
"currencyCode": "USD"
},
"requestedAmount": {
"value": 250000,
"currencyCode": "USD"
},
"paymentCard": null,
"createdAt": "2026-05-16T08:00:00Z",
"authorizationExpiration": null,
"processingType": "ACH",
"rewardPoints": null,
"accountingDirection": "CREDIT"
},
"firstEvent": {
"typename": "AchTransferEvent",
"id": "evt_first001",
"merchantDetails": null,
"pointOfServiceDetails": null,
"responseCode": "00",
"responseDescription": "Initiated",
"approvedAmount": {
"value": 250000,
"currencyCode": "USD"
},
"requestedAmount": {
"value": 250000,
"currencyCode": "USD"
},
"paymentCard": null,
"createdAt": "2026-05-15T09:30:00Z",
"authorizationExpiration": null,
"processingType": "ACH",
"rewardPoints": null,
"accountingDirection": "CREDIT"
},
"isBetweenOwnAccounts": false,
"activityInfo": {
"fromProfile": {
"id": 101,
"name": "Acme Corp",
"agentId": 5
},
"toProfile": {
"id": 202,
"name": "John Smith",
"agentId": 7
},
"historyRecords": [
{
"date": "2026-05-15T09:30:00Z",
"status": "INITIATED"
},
{
"date": "2026-05-16T08:00:00Z",
"status": "SETTLED"
}
]
},
"purpose": "Monthly payroll disbursement",
"giftCardOrderId": null,
"memo": "May 2026 payroll",
"fromDBA": "Acme Corp",
"toDBA": "John Smith"
}
]Error Codes
| Code | When it happens |
|---|---|
| 400 | financialAccountId is missing or malformed; from/to date values are not valid ISO 8601 date-time strings. |
| 401 | Token missing, expired, or invalid. |
| 403 | Insufficient permissions — the authenticated partner or user does not have access to the specified financial account. |
| 404 | The specified financialAccountId does not exist or belongs to a different partner. |
| 500 | Internal server error. |
Common Mistakes
- Omitting
financialAccountId— this is a required query parameter; the request will fail with 400 if it is not provided. - Passing
fromortovalues without proper ISO 8601 formatting (e.g., usingYYYY-MM-DDinstead ofYYYY-MM-DDTHH:mm:ssZ) will result in a 400 error. - Monetary
valuefields are returned in the smallest currency unit (cents). Avalueof250000represents $2,500.00 USD — divide by 100 for display. - Not refreshing the Bearer token before it expires (10-minute lifetime) will result in 401 errors mid-session.
- Querying a
financialAccountIdthat belongs to a different partner's customer will return 403, not 404 — do not infer account non-existence from a 403 response.
Related Endpoints
POST /api/fundsMovement/ach— Initiate a new ACH transfer from a financial account.GET /api/fundsMovement/byProfile— Retrieve funds movement history scoped to an entire customer profile rather than a single account.GET /api/financialAccount— List financial accounts available to a customer, to obtain validfinancialAccountIdvalues.POST /api/auth/v2— Obtain a Bearer token required for authentication.POST /api/auth/refresh— Refresh an existing Bearer token before it expires.
Example
curl -X GET "https://api.banking.netevia.dev/api/fundsMovement/byFinancialAccount?financialAccountId=fa_dest001&from=2026-05-01T00%3A00%3A00Z&to=2026-05-31T23%3A59%3A59Z" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"