Overview
There are two endpoints for listing linked accounts depending on the caller context:| Endpoint | Auth | Use case |
|---|---|---|
GET /v1/business/:businessId/linked-accounts/:currency | Access token | Dashboard / merchant portal — full detail, rich filters |
GET /v1/ext/linked-accounts/:currency | Access token | External API — account details with masked sensitive numbers |
Business Endpoint
Returns all linked accounts for a business with enriched account details and support for multiple filters.Endpoint
Auth
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
businessId | string | Yes | UUID of the business |
currency | string | Yes | Currency code (e.g. USD) |
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
accountType | string | No | — | Filter by account type. See accepted values below. Alias for optionType |
optionType | string | No | — | Legacy alias for accountType — both work |
email | string | No | — | Partial case-insensitive match on counterparty email |
search | string | No | — | Partial case-insensitive match on counterparty name |
last4 | string | No | — | Exact last-4 digits of card or bank account number (1–4 digits) |
bank | string | No | — | Partial case-insensitive match on bank name (e.g. Chase) |
externalId | string | No | — | Filter by external identifier |
page | integer | No | 1 | Page number |
limit | integer | No | 50 | Results per page |
sortBy | string | No | createdAt | Field to sort by |
sortDirection | string | No | ASC | Sort direction: ASC or DESC |
accountType accepted values
| Value | Description |
|---|---|
bank | Local bank account (ACH / RTP) |
card | Debit or credit card |
international_bank | International wire / SWIFT |
prepaid_card | Prepaid card |
Request Examples
Filter by account type:Response (200)
account field — shape by optionType
The account field is a parsed summary of the linked account. Its shape varies by type:
bank
bank
international_bank
international_bank
card / prepaid_card
card / prepaid_card
Response Fields
| Field | Type | Description |
|---|---|---|
data[].id | string | Linked account UUID |
data[].currency | string | Currency code |
data[].optionType | string | Account type: bank, card, international_bank, prepaid_card |
data[].counterPartyName | string | Counterparty display name |
data[].counterPartyEmail | string | Counterparty email address |
data[].counterPublicPartyEmail | string | null | Public-facing email, if set |
data[].nickName | string | null | User-defined nickname |
data[].createdAt | string | ISO 8601 creation timestamp |
data[].updatedAt | string | ISO 8601 last-updated timestamp |
data[].account | object | null | Parsed account summary (shape varies by optionType) |
data[].recipientData | object | null | Full raw metadata stored for this account |
data[].wallet | object | Associated wallet { id, balance, disabled } |
data[].entity | object | Owning entity { id, email, externalIdentifier, entityType } |
data[].application | object | null | Application token details if linked via token |
meta.page | integer | Current page |
meta.pageSize | integer | Results per page |
meta.pageCount | integer | Total pages |
meta.total | integer | Total matching records |
Error Responses
| Status | Body | Cause |
|---|---|---|
401 | { "message": "Unauthorized", "success": false } | Missing or malformed Authorization header |
400 | { "message": "...", "success": false } | Business metadata lookup failed or invalid request |
External Endpoint
Returns linked accounts for an end-user with masked sensitive numbers and stripped internal fields.Endpoint
Auth
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency code (e.g. USD) |
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer | No | 10 | Results per page |
page | integer | No | 1 | Page number |
externalId | string | No | — | Filter by external entity ID |
accountType | string | No | — | Filter by account type: bank, card, international_bank, prepaid_card. Alias: optionType |
optionType | string | No | — | Legacy alias for accountType |
email | string | No | — | Partial case-insensitive match on counterparty email |
last4 | string | No | — | Exact last-4 digits of card or bank account number (1–4 digits) |
bank | string | No | — | Partial case-insensitive match on bank name (e.g. Chase) |
Request
Response (200)
Response Fields
| Field | Type | Description |
|---|---|---|
data[].id | string | Linked account UUID — use this for withdrawal requests |
data[].currency | string | Currency code |
data[].optionType | string | Account type: bank, card, international_bank, prepaid_card |
data[].counterPartyName | string | Recipient display name |
data[].counterPartyEmail | string | Counterparty email address |
data[].counterPublicPartyEmail | string | null | Public-facing email, if set |
data[].nickName | string | User-defined nickname (may be empty) |
data[].createdAt | string | ISO 8601 creation timestamp |
data[].account | object | null | Parsed account summary. routing masked to last 4 digits (****XXXX) |
data[].recipientData | object | null | Account metadata — accountNumber and routingNumber masked to last 4 digits; provider, identityId, encryptedCardNumber, cardExpirationDate stripped |
meta.page | integer | Current page |
meta.pageSize | integer | Results per page |
meta.pageCount | integer | Total pages |
meta.total | integer | Total linked accounts |
Notes
- Use
data[].idfrom either endpoint as thelinkedAccountIdwhen creating a withdrawal last4filter matches digits stored inmetadata.accountormetadata.cardNumber— it will not match accounts where neither field is populatedbankfilter searchesmetadata.bankName; populated forbankandinternational_banktypes