Skip to main content
Before a user can move money into or out of their brokerage account, you must establish a trusted link between their Buildmarkets account and an external bank account they own. That link is called an ACH relationship. It is the permanent, reusable funding rail that makes all subsequent deposits and withdrawals possible. An ACH relationship represents a verified connection to a specific external bank account — identified by routing number and account number. Once created and approved, the relationship can be used repeatedly for funding activity without re-entering bank credentials. A single Buildmarkets account can hold multiple ACH relationships (e.g., a checking account and a savings account), but only APPROVED relationships can be used to initiate transfers.

ACH relationship lifecycle

When a relationship is created, it passes through a short verification workflow before becoming active. Buildmarkets uses third-party instant verification in production — there are no micro-deposits.
Sandbox behavior: In the sandbox environment, relationships transition from PENDINGAPPROVED immediately upon creation. No third-party call is made.

Endpoints

Create an ACH relationship

Links an external bank account to the specified Buildmarkets brokerage account. Buildmarkets automatically attempts instant verification via a third-party bank data provider. If verification succeeds, the relationship moves to APPROVED without any manual review. Only the last 4 digits of the bank account number are stored after creation. The full number is never returned in any subsequent API response.

POST /v1/accounts/{accountId}/ach-relationships

Path parameters

Request body

Response body (201 Created)

Example request

Example response

Note: In production, status will initially be PENDING. The relationship transitions to APPROVED or REJECTED asynchronously. Listen for the ach_relationship.approved or ach_relationship.rejected webhook events to be notified when verification completes.

List ACH relationships

Returns all ACH relationships associated with a Buildmarkets account, across all statuses. Use the status field in each object to determine which relationships are available for transfers.

GET /v1/accounts/{accountId}/ach-relationships

Path parameters

Example request

Example response

Remove an ACH relationship

Permanently removes an ACH relationship. The status transitions to CANCELLED and the relationship can no longer be used for deposits or withdrawals. This action is irreversible — if the user needs to link the same bank account again, a new ACH relationship must be created.
Important: You cannot remove an ACH relationship that has a pending transfer in progress. Confirm all in-flight transfers have settled before removing a relationship.

DELETE /v1/accounts/{accountId}/ach-relationships/{achId}

Path parameters

Returns 204 No Content on success. No body is returned.

Example request

Common errors

Webhook events

Buildmarkets fires webhook events when an ACH relationship changes status. Subscribe to these to drive real-time UI updates. See Webhook Events Reference for full payload schemas.

Next steps