---
title: "Link External Bank Account via ACH"
method: POST
path: "/programs/{programCode}/account/{accountIdentifier}/externalbankaccount"
tags: ["Transfers"]
---

# Link External Bank Account via ACH

`POST /programs/{programCode}/account/{accountIdentifier}/externalbankaccount`

Links one or more external bank accounts to a specified account using ACH. Requires selected bank account tokens and provider information. Returns reference IDs for linked accounts.

## Path parameters

- `programCode` string, required
- `accountIdentifier` string, required

## Headers

- `X-GD-RequestId` string, required

## Request body

- AchLinkExternalAccountRequest — Represents a request to link an external bank account to a Green Dot account for ACH (Automated Clearing House) transfers. Contains the public token from the external account provider, a list of selected external bank accounts to link, and the provider type (e.g., Plaid, Finicity). Used to securely exchange tokens and establish connectivity for ACH funding or withdrawal.
  - `publicToken` string, nullable — The public token received from the external account provider (e.g., Plaid) after user authentication. Used to securely exchange for access tokens and retrieve account details.
  - `selectedBankAccounts` ExternalBankAccountTokenExchange[], nullable — A list of external bank accounts selected by the user to be linked. Each entry contains institution and account identifiers, provider type, and customer/account references.
    - `institutionId` string, nullable — The unique identifier of the external financial institution (as provided by the aggregator).
    - `institutionName` string, nullable — The name of the external financial institution.
    - `externalBankAccountId` string, nullable — The unique identifier of the external bank account (as provided by the aggregator).
    - `externalaccountprovider` 'None' | 'Plaid' | 'PlaidLinkToken' | 'Finicity' — The type of external account provider (e.g., Plaid, Finicity) used for the token exchange.
    - `customerId` string, nullable — The unique identifier of the customer in the internal system.
    - `accountId` string, nullable — The unique identifier of the internal account to be linked with the external bank account.
  - `externalAccountProvider` 'None' | 'Plaid' | 'PlaidLinkToken' — The type of external account provider (e.g., Plaid, Finicity) used for token exchange and account linking.

## Response `200`

OK

- AchLinkExternalAccountResponse — Represents the response returned after successfully linking an external bank account for ACH transfers. Contains references to the created external account profile and the linked external bank accounts. Inherits standard response metadata from Gd.Bos.DataTransfer.Response.ResponseBase.
  - `externalAccountProfileReferenceId` string, nullable — The unique reference identifier for the external account profile created as a result of the link operation. Used to reference the external account profile in subsequent operations.
  - `externalBankAccountReferenceIds` string[], nullable — A list of unique reference identifiers for the external bank accounts that were linked. Each identifier corresponds to a successfully linked external bank account.
  - `responseDetails` ResponseDetail[], nullable — Required: A list of response details providing status codes, descriptions, and additional information about the result of the operation.
    - `code` integer — The primary status or error code for the response (e.g., 200 for success, 400 for validation error).
    - `subCode` integer, nullable — An optional subcode providing more granular detail about the response or error.
    - `description` string, nullable — A human-readable description of the response, error, or status.
    - `url` string, nullable — A URL linking to documentation or a web page with more information about the response code.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/greendot/apis/baas-apis.md) · [All operations](https://skmtc.net/greendot/apis/baas-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/greendot/baas-apis/versions/666553766b78/schema)
