Skip to main content

Authentication

Authentication Required - All Funding endpoints require authentication. Include your access token in the Authorization header.
Authorization: Bearer YOUR_ACCESS_TOKEN
See Authentication Setup for instructions on obtaining tokens.

Endpoints

MethodEndpointDescription
GET/v1/funding/sourcesList funding sources
GET/v1/funding/accountsList funding accounts
PATCH/v1/funding/accounts/{id}Update funding account
GET/v1/funding/transactionsList transactions
GET/v1/funding/transaction-requirementsGet transaction requirements

List Funding Sources

Retrieve all funding sources (payment methods) available to the user.

Request

GET /v1/funding/sources?fundingSourceType=FUNDING_SOURCE_TYPE_AEROPAY_BANK_ACCOUNT

Query Parameters

ParameterTypeDescription
pageSizeintegerResults per page
pageTokenstringPagination token
fundingSourceIdsarrayFilter by source IDs
fundingSourceTypeenumFilter by type

Funding Source Types

TypeDescription
FUNDING_SOURCE_TYPE_BANK_ACCOUNTTraditional bank account
FUNDING_SOURCE_TYPE_AEROPAY_BANK_ACCOUNTAeropay-linked bank
FUNDING_SOURCE_TYPE_CHECKOUT_CARDPayment card
FUNDING_SOURCE_TYPE_APPLE_PAYApple Pay

Response

{
  "fundingSources": [
    {
      "id": "fs_abc123",
      "type": "FUNDING_SOURCE_TYPE_AEROPAY_BANK_ACCOUNT",
      "aeropayBankAccountDetails": {
        "userId": "aero_user_123",
        "bankAccountId": "ba_123",
        "name": "John's Checking",
        "bankName": "Chase Bank",
        "accountLast4": "4567",
        "accountType": "checking"
      },
      "transactionLimits": {
        "currencyLimits": [
          {
            "currency": "USD",
            "maxDepositRequestAmount": {"value": "10000.00"},
            "maxDepositDailyAmount": {"value": "25000.00"},
            "maxDeposit60dayAmount": {"value": "100000.00"}
          }
        ]
      },
      "disabled": false
    }
  ],
  "nextPageToken": "",
  "eof": true
}

List Funding Accounts

Retrieve funding accounts associated with the user.

Request

GET /v1/funding/accounts?accountType=ACCOUNT_TYPE_CLEARING

Query Parameters

ParameterTypeDescription
pageSizeintegerResults per page
pageTokenstringPagination token
accountIdsarrayFilter by account IDs
fundingSourceIdsarrayFilter by funding source IDs
accountTypeenumFilter by account type

Account Types

TypeDescription
ACCOUNT_TYPE_CLEARINGMain trading account
ACCOUNT_TYPE_REVENUERevenue account
ACCOUNT_TYPE_HOLDINGHolding account
ACCOUNT_TYPE_ADVANCEAdvance account

Response

{
  "accounts": [
    {
      "id": "fa_123",
      "name": "Main Trading Account",
      "accountType": "ACCOUNT_TYPE_CLEARING",
      "associatedFundingSources": ["fs_abc123", "fs_def456"],
      "riskAccountId": "risk_123",
      "creationTime": "2024-01-15T10:00:00Z"
    }
  ],
  "nextPageToken": "",
  "eof": true
}

List Transactions

Retrieve transaction history with filtering options.

Request

GET /v1/funding/transactions?accountId=fa_123&transactionTypes=TRANSACTION_TYPE_DEPOSIT&newestFirst=true

Query Parameters

ParameterTypeDescription
pageSizeintegerResults per page
pageTokenstringPagination token
accountIdstringFilter by account
currencystringFilter by currency
transactionTypesarrayFilter by transaction type
transactionStatesarrayFilter by state
startTimedatetimeStart of date range
endTimedatetimeEnd of date range
newestFirstbooleanSort order

Transaction Types

TypeDescription
TRANSACTION_TYPE_DEPOSITDeposit transaction
TRANSACTION_TYPE_WITHDRAWALWithdrawal transaction
TRANSACTION_TYPE_TRANSFERInternal transfer
TRANSACTION_TYPE_EXECUTION_FEETrading fee
TRANSACTION_TYPE_SETTLEMENT_FEESettlement fee
TRANSACTION_TYPE_MANUAL_ADJUSTMENTManual adjustment

Transaction States

StateDescription
TRANSACTION_STATE_ACKNOWLEDGEDReceived
TRANSACTION_STATE_PROCESSINGIn progress
TRANSACTION_STATE_COMPLETEDCompleted
TRANSACTION_STATE_CANCELLEDCancelled
TRANSACTION_STATE_REFUNDEDRefunded

Response

{
  "transactions": [
    {
      "transactionId": "txn_123",
      "fundingTransactionId": "ft_deposit_789",
      "amount": "100.00",
      "currency": "USD",
      "description": "Account funding",
      "ledgerEntryType": "LEDGER_ENTRY_TYPE_CREDIT",
      "transactionType": "TRANSACTION_TYPE_DEPOSIT",
      "transactionState": "TRANSACTION_STATE_COMPLETED",
      "transactTime": "2024-01-15T10:30:00Z",
      "accountId": "fa_123",
      "fundingSourceId": "fs_abc123",
      "fundingSourceType": "FUNDING_SOURCE_TYPE_AEROPAY_BANK_ACCOUNT",
      "beforeBalance": "0.00",
      "afterBalance": "100.00"
    }
  ],
  "nextPageToken": "",
  "eof": true
}

Get Transaction Requirements

Check requirements and limits before initiating transactions. This is especially important for withdrawal requirements.

Request

GET /v1/funding/transaction-requirements?accountIds=fa_123

Query Parameters

ParameterTypeDescription
pageSizeintegerResults per page
pageTokenstringPagination token
accountIdsarrayFilter by account IDs

Response

{
  "transactionRequirements": [
    {
      "id": "req_123",
      "accountId": "fa_123",
      "transactionType": "TRANSACTION_TYPE_WITHDRAWAL",
      "fundingSourceId": "fs_bank_b",
      "amount": "500.00",
      "currency": "USD",
      "description": "Must withdraw to original deposit source",
      "triggers": ["withdrawal_requirement"]
    },
    {
      "id": "req_124",
      "accountId": "fa_123",
      "transactionType": "TRANSACTION_TYPE_WITHDRAWAL",
      "fundingSourceId": "fs_bank_a",
      "amount": "1000.00",
      "currency": "USD",
      "description": "Must withdraw to original deposit source",
      "triggers": ["withdrawal_requirement"]
    }
  ],
  "nextPageToken": "",
  "eof": true
}

Update Funding Account

Update account settings (limited fields).

Request

PATCH /v1/funding/accounts/fa_123
{
  "account": {
    "name": "Updated Account Name",
    "aliases": {
      "display_name": "Trading Account"
    }
  }
}

Response

{
  "account": {
    "id": "fa_123",
    "name": "Updated Account Name",
    ...
  }
}

Pagination

All list endpoints support cursor-based pagination:
  1. Make initial request without pageToken
  2. Check eof field - if false, more results exist
  3. Use nextPageToken for subsequent requests
  4. Continue until eof is true
page_token = None
while True:
    params = {"pageSize": 100}
    if page_token:
        params["pageToken"] = page_token

    response = get_transactions(params)
    process(response["transactions"])

    if response["eof"]:
        break
    page_token = response["nextPageToken"]