Get ACH transfers history

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

ParameterTypeRequiredDescription
financialAccountIdstringYesThe unique identifier of the financial account whose ACH transfer history is being retrieved.
fromstring (date-time)NoStart of the date range filter (ISO 8601 format). If omitted, no lower bound is applied.
tostring (date-time)NoEnd 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

FieldTypeDescription
idstringUnique identifier of the transfer activity record.
typenamestringThe type name of the activity (e.g., ACH transfer type).
namestringHuman-readable name or label for the transfer.
typeModelstringModel type classification of the transfer.
pendingAmountobjectPending amount object with value (integer, in cents) and currencyCode (string).
amountobjectSettled amount object with value (integer, in cents) and currencyCode (string).
lastEventBalanceSnapshotobjectBalance snapshot at the time of the last event, with value and currencyCode.
createdAtstring (date-time)Timestamp when the transfer activity record was created.
isCompletebooleanIndicates whether the transfer has reached a terminal/completed state.
transactionSourceobjectSource information: typename, id, and transactionEvents array.
transferStatusobjectCurrent transfer status with status and statusReasonCode fields.
companyNamestringName of the company associated with the ACH transfer.
descriptorobjectACH descriptor details: companyEntryDescription, individualName, individualIdentificationNumber.
toFinancialAccountobjectDestination financial account: id, name, last4, externalBankAccountDetails, provider.
fromFinancialAccountobjectSource financial account: id, name, last4, externalBankAccountDetails, provider.
refundEventobjectTransaction event details for any associated refund (see transaction event fields below).
lastEventobjectMost recent transaction event (see transaction event fields below).
firstEventobjectInitial transaction event (see transaction event fields below).
isBetweenOwnAccountsbooleanTrue if the transfer is between two accounts owned by the same customer.
activityInfoobjectProfile-level info: fromProfile, toProfile (each with id, name, agentId), and historyRecords array.
purposestringOptional memo or purpose text provided at transfer creation.
giftCardOrderIdstringAssociated gift card order ID, if applicable.
memostringOptional free-text memo attached to the transfer.
fromDBAstringDoing-business-as name of the sending party.
toDBAstringDoing-business-as name of the receiving party.

Transaction event fields (firstEvent, lastEvent, refundEvent, items in transactionSource.transactionEvents)

FieldTypeDescription
typenamestringType name of the transaction event.
idstringUnique identifier of the transaction event.
merchantDetailsobjectMerchant info: category, categoryCode, countryCodeAlpha3, description, name, merchantId.
pointOfServiceDetailsobjectPOS details: panEntryMode, pinEntryMode.
responseCodestringAuthorization or processing response code.
responseDescriptionstringHuman-readable description of the response code.
approvedAmountobjectApproved amount with value and currencyCode.
requestedAmountobjectOriginally requested amount with value and currencyCode.
paymentCardobjectPayment card details: id, bin, last4.
createdAtstring (date-time)Timestamp of the transaction event.
authorizationExpirationstring (date-time)Expiration timestamp of the authorization, if applicable.
processingTypestringProcessing type identifier for the event.
rewardPointsinteger (int64)Reward points associated with this event, if applicable.
accountingDirectionstringDirection of the accounting entry: DEBIT or CREDIT.

External bank account details fields (within toFinancialAccount.externalBankAccountDetails and fromFinancialAccount.externalBankAccountDetails)

FieldTypeDescription
last4stringLast 4 digits of the external bank account number.
typestringAccount type (e.g., checking, savings).
routingNumberstringABA routing number of the external bank.
createdAtstring (date-time)Timestamp when the external account was linked.
updatedAtstring (date-time)Timestamp of the last update to the external account record.
accountNumberstringFull account number of the external bank account.

History record fields (within activityInfo.historyRecords)

FieldTypeDescription
datestring (date-time)Timestamp of this status history entry.
statusstringStatus 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

CodeWhen it happens
400financialAccountId is missing or malformed; from/to date values are not valid ISO 8601 date-time strings.
401Token missing, expired, or invalid.
403Insufficient permissions — the authenticated partner or user does not have access to the specified financial account.
404The specified financialAccountId does not exist or belongs to a different partner.
500Internal server error.

Common Mistakes

  • Omitting financialAccountId — this is a required query parameter; the request will fail with 400 if it is not provided.
  • Passing from or to values without proper ISO 8601 formatting (e.g., using YYYY-MM-DD instead of YYYY-MM-DDTHH:mm:ssZ) will result in a 400 error.
  • Monetary value fields are returned in the smallest currency unit (cents). A value of 250000 represents $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 financialAccountId that 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 valid financialAccountId values.
  • 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"
Query Params
string
required
date-time
date-time
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Response

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/plain
application/json
text/json