Get internal transfers (need access to Daily Spending Report)

Get Internal Transfers Report

This endpoint retrieves a list of internal transfers between accounts within the Netevia platform for reporting and analysis purposes, particularly for generating the Daily Spending Report. It supports pagination via cursor-based navigation, date range filtering, and custom JSON-based filter criteria. Access to the Daily Spending Report feature is required to use this endpoint.

Endpoint

POST /Report/internalTransfers

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 generating daily spending reports that require a breakdown of internal transfers between accounts. It is appropriate for partner dashboards, reconciliation workflows, and financial audit tools that need to pull transfer activity for a specific date range. Pagination support via cursors makes it suitable for processing large volumes of transfer records in batches.

Request Body

FieldTypeRequiredDescription
takeinteger (int32) | nullNoNumber of internal transfers to retrieve per request. Set to null to retrieve all results at once.
afterCursorstring | nullNoCursor string for fetching the next batch of results. Use the endCursor from the previous response's transferPageInfo to paginate forward.
fromDatestring (date-time) | nullNoStart of the date range filter. Only transfers on or after this date are returned. Format: ISO 8601 (e.g., 2024-10-09T14:40:03.974Z).
toDatestring (date-time) | nullNoEnd of the date range filter. Only transfers on or before this date are returned. Format: ISO 8601 (e.g., 2024-10-09T14:40:03.974Z).
jsonFilterstring | nullNoA JSON-formatted string for applying custom filters to the query, such as transfer type, involved accounts, or transaction statuses.
cardProductIdstring | nullNoOptional card product identifier to scope the report to a specific card product.
{
  "take": 50,
  "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 contains merged account activity data along with pagination info and filter metadata.

Top-level fields:

FieldTypeDescription
dataobjectContains the merged activity data and pagination details.
data.transferPageInfoarrayArray of pagination info objects for the transfer result set.
data.transferPageInfo[].startCursorstring | nullCursor pointing to the start of the current page.
data.transferPageInfo[].endCursorstring | nullCursor pointing to the end of the current page. Use this as afterCursor for the next request.
data.transferPageInfo[].hasNextPagebooleanIndicates whether more records exist after the current page.
data.transferPageInfo[].hasPreviousPagebooleanIndicates whether records exist before the current page.
data.transactionPageInfoobjectPagination info for any transaction results included in the response.
data.activityarrayList of account activity records representing internal transfers.
filterobjectApplied filter metadata broken down by activity category.

Activity record fields (data.activity[]):

FieldTypeDescription
idstring | nullUnique identifier of the transfer or transaction.
typenamestring | nullType name of the activity record (e.g., transfer type).
namestring | nullDisplay name of the activity.
typeModelstring | nullModel type classification for the activity.
pendingAmount.valueinteger (int64)Pending amount in the smallest currency unit (e.g., cents).
pendingAmount.currencyCodestring | nullCurrency code for the pending amount (e.g., USD).
amount.valueinteger (int64)Settled amount in the smallest currency unit (e.g., cents).
amount.currencyCodestring | nullCurrency code for the settled amount.
lastEventBalanceSnapshot.valueinteger (int64)Account balance snapshot after the last event, in the smallest currency unit.
lastEventBalanceSnapshot.currencyCodestring | nullCurrency code for the balance snapshot.
createdAtstring (date-time)Timestamp when the transfer was created.
isCompletebooleanWhether the transfer has completed processing.
transactionSource.typenamestring | nullSource type name of the transaction.
transactionSource.idstring | nullSource identifier.
transactionSource.transactionEventsarrayList of events associated with the transaction source.
transferStatus.statusstring | nullCurrent status of the transfer (e.g., COMPLETED, PENDING).
transferStatus.statusReasonCodestring | nullReason code for the current transfer status.
companyNamestring | nullCompany name associated with the transfer.
descriptor.companyEntryDescriptionstring | nullACH company entry description.
descriptor.individualNamestring | nullName of the individual associated with the transfer descriptor.
descriptor.individualIdentificationNumberstring | nullIdentification number for the individual in the transfer descriptor.
toFinancialAccount.idstring | nullID of the destination financial account.
toFinancialAccount.namestring | nullName of the destination financial account.
toFinancialAccount.last4string | nullLast 4 digits of the destination account number.
toFinancialAccount.providerstring | nullProvider of the destination financial account.
fromFinancialAccount.idstring | nullID of the source financial account.
fromFinancialAccount.namestring | nullName of the source financial account.
fromFinancialAccount.last4string | nullLast 4 digits of the source account number.
fromFinancialAccount.providerstring | nullProvider of the source financial account.
isBetweenOwnAccountsbooleanWhether the transfer occurred between the same customer's own accounts.
activityInfo.fromProfile.idintegerID of the sender's profile.
activityInfo.fromProfile.namestring | nullName of the sender's profile.
activityInfo.fromProfile.agentIdintegerAgent ID associated with the sender's profile.
activityInfo.toProfile.idintegerID of the recipient's profile.
activityInfo.toProfile.namestring | nullName of the recipient's profile.
activityInfo.toProfile.agentIdintegerAgent ID associated with the recipient's profile.
activityInfo.historyRecordsarrayList of status history entries for the transfer.
activityInfo.historyRecords[].datestring (date-time) | nullTimestamp of the status change.
activityInfo.historyRecords[].statusstring | nullStatus value at the time of the history record.
purposestring | nullStated purpose or memo for the transfer.
memostring | nullMemo text attached to the transfer.
fromDBAstring | nullDoing-business-as name of the sending party.
toDBAstring | nullDoing-business-as name of the receiving party.
giftCardOrderIdstring | nullAssociated gift card order ID, if applicable.

Filter metadata fields (filter):

FieldTypeDescription
filter.allobjectFilter item representing the "All" category toggle.
filter.depositobjectFilter item for deposit activity.
filter.withdrawobjectFilter item for withdrawal activity.
filter.transfersobjectFilter item for transfer activity.
filter.posobjectFilter item for point-of-sale activity.
filter.transactionStatusobjectFilter item for transaction status groupings.
filter.othersobjectFilter item for other uncategorized activity types.
{
  "data": {
    "transferPageInfo": [
      {
        "startCursor": "cursor_start_abc123",
        "endCursor": "cursor_end_xyz789",
        "hasNextPage": true,
        "hasPreviousPage": false
      }
    ],
    "transactionPageInfo": {
      "startCursor": null,
      "endCursor": null,
      "hasNextPage": false,
      "hasPreviousPage": false
    },
    "activity": [
      {
        "id": "txfr_01J9XK4P2MNQ3RSTUVWXYZ0001",
        "typename": "InternalTransfer",
        "name": "Internal Transfer",
        "typeModel": "Transfer",
        "pendingAmount": {
          "value": 0,
          "currencyCode": "USD"
        },
        "amount": {
          "value": 25000,
          "currencyCode": "USD"
        },
        "lastEventBalanceSnapshot": {
          "value": 150000,
          "currencyCode": "USD"
        },
        "createdAt": "2024-10-07T10:22:00.000Z",
        "isComplete": true,
        "transactionSource": {
          "typename": "InternalTransfer",
          "id": "src_01J9XK4P2MNQ3RSTUVWXYZ0001",
          "transactionEvents": []
        },
        "transferStatus": {
          "status": "COMPLETED",
          "statusReasonCode": null
        },
        "companyName": "Acme Corp",
        "descriptor": {
          "companyEntryDescription": "PAYROLL",
          "individualName": "Jane Doe",
          "individualIdentificationNumber": "REF20241007"
        },
        "toFinancialAccount": {
          "id": "fa_01J9XK4P2MNQ3RSTUVWXYZ0002",
          "name": "Business Checking",
          "last4": "4321",
          "provider": "Netevia"
        },
        "fromFinancialAccount": {
          "id": "fa_01J9XK4P2MNQ3RSTUVWXYZ0003",
          "name": "Operating Account",
          "last4": "8765",
          "provider": "Netevia"
        },
        "isBetweenOwnAccounts": true,
        "activityInfo": {
          "fromProfile": {
            "id": 1001,
            "name": "Acme Corp - Main",
            "agentId": 501
          },
          "toProfile": {
            "id": 1001,
            "name": "Acme Corp - Main",
            "agentId": 501
          },
          "historyRecords": [
            {
              "date": "2024-10-07T10:22:01.000Z",
              "status": "PENDING"
            },
            {
              "date": "2024-10-07T10:23:15.000Z",
              "status": "COMPLETED"
            }
          ]
        },
        "purpose": "Payroll funding",
        "memo": "October week 1 payroll",
        "fromDBA": "Acme Corp",
        "toDBA": "Acme Corp",
        "giftCardOrderId": null
      }
    ]
  },
  "filter": {
    "all": {
      "displayName": "All",
      "value": true,
      "items": []
    },
    "deposit": {
      "displayName": "Deposits",
      "value": false,
      "items": []
    },
    "withdraw": {
      "displayName": "Withdrawals",
      "value": false,
      "items": []
    },
    "transfers": {
      "displayName": "Transfers",
      "value": true,
      "items": []
    },
    "pos": {
      "displayName": "POS",
      "value": false,
      "items": []
    },
    "transactionStatus": {
      "displayName": "Transaction Status",
      "value": false,
      "items": []
    },
    "others": {
      "displayName": "Others",
      "value": false,
      "items": []
    }
  }
}

Error Codes

CodeWhen it happens
400Missing required fields or validation error in the request body
401Token missing, expired, or invalid
403Insufficient permissions — Daily Spending Report access is required
404Resource not found
500Internal server error

Common Mistakes

  • Providing fromDate after toDate, which results in an empty activity list rather than an error — always verify the date range order before submitting.
  • Ignoring the hasNextPage flag and assuming the first response contains all records — always check transferPageInfo[].hasNextPage and use endCursor as afterCursor to fetch subsequent pages.
  • Passing a malformed ISO 8601 string in fromDate or toDate (e.g., omitting the Z timezone suffix), which can cause a 400 validation error.
  • Attempting to use this endpoint without the Daily Spending Report feature enabled on the partner account, which returns a 403 error.
  • Interpreting amount.value as a decimal dollar amount — amounts are expressed in the smallest currency unit (cents), so 25000 equals $250.00 USD.

Related Endpoints

  • POST /Report/transactions — Retrieves card transaction records for the Daily Spending Report
  • POST /Report/achTransfers — Retrieves ACH transfer records for reporting purposes
  • GET /FinancialAccount/{financialAccountId}/activity — Retrieves activity for a specific financial account
  • POST /Transfer/internal — Initiates an internal transfer between accounts

Example

curl -X POST https://api.banking.netevia.dev/Report/internalTransfers \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "take": 50,
    "afterCursor": null,
    "fromDate": "2024-10-01T00:00:00.000Z",
    "toDate": "2024-10-09T23:59:59.999Z",
    "jsonFilter": null,
    "cardProductId": null
  }'
Body Params
string | null
int32 | null
string | null
date-time | null
date-time | null
string | null
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
string
enum
Defaults to application/json

Generated from available request 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