> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brale.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Register financial institution account via Plaid and return address ID

> Completes the Plaid-linked bank account flow by exchanging a Plaid public_token and returning the new address_id.

This endpoint completes the **Plaid-linked bank account** flow. It exchanges the `public_token` from Plaid Link, registers the bank account, and returns an `address_id` you can use in transfers.

The Plaid-linked path supports `ach_debit`, `ach_credit`, and `rtp`. It does **not** support `wire`.

<Note>
  **Previous step:** Generate a `link_token` using [Create Plaid link token](/api-reference/brale/create-plaid-link-token) and complete the Plaid Link flow before calling this endpoint.
</Note>

For a full comparison of both external bank address creation paths, see [External bank addresses](/key-concepts/external-bank-addresses).

Use the playground below to try this endpoint directly, or review the OpenAPI details in the right panel.


## OpenAPI

````yaml POST /accounts/{account_id}/plaid/register-account
openapi: 3.0.3
info:
  title: Brale Issuance and Orchestration API
  version: 2.3.1
  description: >
    Brale supports stablecoin issuance and orchestration, enabling businesses
    and

    ecosystems to create their own stablecoins and convert between fiat and
    stablecoins

    seamlessly. From stablecoin onramps, offramps, and swaps to custody and
    payouts, the

    Brale API makes it easy to build stablecoin-enabled products.


    NOTE: All resource IDs (including account_id, address_id,
    financial_institution_id,

    and automation_id) are KSUIDs—26-character alphanumeric strings that are
    sortable

    by time. Examples showing UUIDs are incorrect.



    **What's new in 2.3.1**

    - Unified **Addresses** model for on-chain and off-chain endpoints
      - `Transfers` now accepts **address_id only** (no financial_institution_id)
      - Optional `brand` object to control bank statement presentation (`branding` still accepted as legacy alias)
    - Added off-chain rails: `ach_credit`, `same_day_ach_credit`, `ach_debit`,
    `same_day_ach_debit`, `rtp-credit`

    - Plaid endpoints moved to `/accounts/{account_id}/plaid/*`

    - `Financial Institutions` marked **deprecated** (migration path to
    **Addresses**)

    - Create Account now uses `CreateManagedAccountRequest` with
    `beneficial_owners`, `business_controller`, and `EndUserTosAttestation`.

    - Transfers now accept `brand` (replaces `branding`, still aliased in docs).

    - Plaid endpoints updated to return `address_id` and accept
    `transfer_types`.

    - Off-chain Address creation uses `CreateExternalAddressRequest` oneOf with
    bank + blockchain variants.

    - FI endpoints kept but marked deprecated; use Addresses instead.

    - `rtp_credit` is the canonical RTP rail name.
servers:
  - url: https://api.brale.xyz
    description: Production server
security:
  - BearerAuth: []
tags:
  - name: Accounts
    description: Endpoints related to managing customer accounts (KYB, details, etc.)
  - name: Transfers
    description: >-
      Endpoints for creating and retrieving transfers (fiat to stablecoins,
      etc.)
  - name: Addresses
    description: >-
      On-chain and off-chain endpoints (custodial or external) represented by a
      single Addresses resource
  - name: Financial Institutions
    description: Legacy (deprecated) bank endpoints. Use Addresses instead.
  - name: Automations
    description: Automated deposit addresses or onramps
  - name: Plaid
    description: Bank linking and ACH debit via Plaid.
  - name: Orders
    description: Legacy tag used for transfers in older specs.
paths:
  /accounts/{account_id}/plaid/register-account:
    post:
      tags:
        - Plaid
      summary: Register financial institution account via Plaid and return address ID
      description: >-
        Registers a bank using a Plaid public_token and returns the new Address
        ID.
      parameters:
        - in: path
          name: account_id
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterAccountWithTransferTypesRequest'
      responses:
        '201':
          description: Created
          headers:
            Location:
              schema:
                type: string
              description: URL of the created address resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterAccountAddressResponse'
components:
  schemas:
    RegisterAccountWithTransferTypesRequest:
      type: object
      title: RegisterAccountWithTransferTypesRequest
      required:
        - public_token
        - customer_webhook_url
        - transfer_types
      properties:
        public_token:
          type: string
          description: Plaid public token
          example: public-sandbox-123456789
        customer_webhook_url:
          type: string
          format: uri
          description: Webhook for Plaid item updates
          example: https://customer.com/webhooks/plaid-updates
        transfer_types:
          type: array
          minItems: 1
          items:
            type: string
            example: ach_credit
          description: Rails to enable (e.g., ach_credit, wire, rtp_credit)
    RegisterAccountAddressResponse:
      type: object
      title: RegisterAccountAddressResponse
      required:
        - address_id
      properties:
        address_id:
          type: string
          description: ID of the created address
          example: addr_123456789
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >
        Use the Bearer token returned from the Auth endpoint via OAuth2
        client_credentials flow. Include the token in the "Authorization: Bearer
        <token>" header.

````