Skip to main content
POST
Create Bank Account

Authorizations

x-api-key
string
header
required

Your Meow API key, sent in the x-api-key header for authentication.

Headers

Idempotency-Key
string
required

A unique key you generate (1-50 printable ASCII characters, no spaces) so retrying this request never creates a duplicate. Reusing a key is rejected.

Required string length: 1 - 50
Pattern: ^[!-~]+$
x-entity-id
string<uuid>

Optional entity_id to scope requests to a specific entity.

Body

application/json
product
enum<string>
required

The product to open the new account under. You must already have an open account of this product. The account may open immediately (status created, with account_id) or in the background (status processing); when processing, poll GET /accounts until the account appears.

Available options:
grasshopper,
crb
Example:

"grasshopper"

reference_id
string | null

Your own identifier for this account. It is echoed back on the account read endpoints and in account.created / account.updated webhooks, so you can match the account to the request that opened it. This matters most for products that open in the background, where the response carries no account_id. It is a label, not an idempotency key, so reuse it freely. Use the Idempotency-Key header to make a retry safe.

Required string length: 1 - 255
Example:

"catnip-payroll-2026"

Response

Successful Response

status
enum<string>
required

created when the new account is ready immediately and its account_id is returned. processing when the account is still being opened; poll GET /accounts until it appears.

Available options:
processing,
created
Example:

"created"

account_id
string | null

The new account_id, returned only when status is created. Null when status is processing; fetch it from GET /accounts once the account appears.

Example:

"cash_account_3f9c1b2e-7a4d-4e88-9c21-0b6f5d8e1a2c"

reference_id
string | null

Echoes the reference_id from your request, confirming it was stored. The same value arrives on the account.created webhook, which is how you match that event back to this call.

Example:

"catnip-payroll-2026"