Skip to main content
POST
Create an ACH bank account

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Request object used to create a bank account for ACH transfers.

idempotencyKey
string<uuid>
required

Universally unique identifier (UUID v4) idempotency key. This key is utilized to ensure exactly-once execution of mutating requests.

Example:

"ba943ff1-ca16-49b2-ba55-1057e70ca5c7"

accountNumber
string
required

Account number that identifies the bank account.

Maximum string length: 30
Example:

"424233434333"

routingNumber
string
required

ABA routing number for the bank account.

Required string length: 9
Example:

"121000248"

accountType
enum<string>
required

Type of the bank account.

Available options:
checking,
savings
Example:

"checking"

billingDetails
object
required
riskSignals
object
required

Risk metadata for the end user initiating the request. All three fields must be present.

deviceId must be the identifier returned by checkDevice() in the @circle-fin/device-checks SDK. Circle resolves it against the device check that produced it, so an identifier you generate yourself does not resolve. When it does not resolve, the request is accepted and then declined: the endpoint returns 201, and the transaction later settles as failed with errorCode transfer_denied. See Collect device risk signals.

clientEntityId
string<uuid>

Identifier of the client entity. Required for 3rd-party flows.

Example:

"a3f1b2c4-d5e6-7890-abcd-ef1234567890"

Response

Successfully created a bank account for ACH transfers.

data
object

An ACH bank account.