Create an internal account
Create a rule-based internal account.
A rule-based account is an additional account number for an account holder that already holds an account in the same currency. It carries a routing rule: every payment that settles into it is attributed to that account number and then swept to the rule's destination, so you can issue one number per payer and reconcile incoming payments without matching on remittance text.
Only RULE_BASED accounts can be created here. INTERNAL_FIAT, INTERNAL_CRYPTO, and EMBEDDED_WALLET accounts are provisioned automatically when an account holder is created or approved.
The response carries the account's own fundingPaymentInstructions — the routable number payers send to. Rule-based accounts are currently available in USD, for individual customers, and must be enabled for your platform before this endpoint accepts requests.
Sandbox platforms can create rule-based accounts and exercise the whole flow. The account number is generated locally rather than issued by a partner bank, and POST /sandbox/internal-accounts/{accountId}/fund stands in for a settled deposit — funding the account triggers its sweep just as a real deposit would.
Creating an account mints a new account number that cannot be reversed, so an Idempotency-Key header is required. A retry carrying the same key returns the account created by the first request with a 200 instead of a 201; reusing a key for a materially different account is rejected with 409.
Headers
A unique identifier for the request. Required, because creating the account mints an account number that cannot be reversed. Retries must carry the same key.
Request body
Example request
{
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"currency": "USD",
"label": "invoice-4417",
"sweepRule": {
"destination": {
"accountId": "ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965",
"paymentRail": "ACH"
},
"description": "Rent sweep",
"remittanceInformation": "Unit 4B March"
}
}Response
The Idempotency-Key was already used to create this account. The account created by the first request is returned unchanged.