Skip to main content
Bank accounts are the financial primitive every other Embedded Banking object hangs off — transfers move funds between them, statements summarize them, webhooks announce changes on them. “Bank account” specifically means a deposit-account record on the bank-accounts resource, distinct from ledger accounts and other account types elsewhere on the platform. Two kinds exist, and they get into the system differently.
  • Internal bank accounts live at Tesouro’s sponsor bank. They’re created when a bank account application reaches COMPLETE, and their id is what most endpoints take as a path parameter.
  • External bank accounts live at the user’s outside bank and exist inside Embedded Banking only as a verified pointer that ACH can target. They’re a top-level resource at /embedded-banking/v1/external-bank-accounts and are created by the linking flow.
The two kinds have different lifecycles and different things you can do with them:

Where to next

Internal bank accounts

How an internal bank account gets provisioned post-KYB and what’s usable on day one.

Closing a bank account

Patching status to CLOSED, what the sponsor bank rejects, and how the post-closure state behaves.

External bank accounts

Why external bank accounts exist, what’s on the record, and how they relate to money movement.

Linking an external bank account

The three-call connect/link/validate sequence and the verification statuses.

Troubleshooting

Missing micro-deposits, failed verification, rejecting banks, and post-verification failures.

Daily balance export

A once-daily, PGP-encrypted CSV of every active account’s end-of-day balance across your organization tree.