---
title: "Generate External Account Link Token"
method: POST
path: "/programs/{programCode}/account/{accountIdentifier}/token/create"
tags: ["Transfers"]
---

# Generate External Account Link Token

`POST /programs/{programCode}/account/{accountIdentifier}/token/create`

Generates a secure link token for connecting an external bank account using a third-party provider. Returns the generated link token for use in account linking flows.

## Path parameters

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

## Headers

- `X-GD-RequestId` string, required

## Request body

- ExternalAccountLinkTokenRequest — Represents a request to generate a link token for connecting an external bank account using a third-party provider (e.g., Plaid, Finicity). Contains all necessary information to initiate the external account linking process, including account reference, device type, provider type, customer identifier, and additional options. Used to securely obtain a link token that enables the user to authenticate and authorize access to their external bank account for ACH or other funding operations. Inherits standard request metadata from Gd.Bos.DataTransfer.Request.RequestBase.
  - `AccountReferenceId` string, nullable — The internal reference ID for the Green Dot account to which the external account will be linked. This property is not serialized in the request payload.
  - `deviceType` 'Unknown' | 'Web' | 'IOS' | 'Android' — The type of device initiating the link token request (e.g., Web, IOS, Android).
  - `options` object, nullable — Optional. A dictionary of additional options or parameters to customize the link token request.
  - `externalaccountprovider` 'None' | 'Plaid' | 'PlaidLinkToken' | 'Finicity' — The external account provider type (e.g., Plaid, Finicity) used to generate the link token.
  - `customerId` string, nullable — The unique identifier of the customer requesting the link token.

## Response `200`

OK

- ExternalAccountLinkTokenResponse — Represents the response returned after requesting a link token for connecting an external bank account using a third-party provider (e.g., Plaid, Finicity). Contains the generated link token, response code, and any error information if the request failed. Inherits standard response metadata from Gd.Bos.DataTransfer.Response.ResponseBase.
  - `responseCode` string, nullable — The response code indicating the result of the link token request (e.g., "200" for success).
  - `linkToken` string, nullable — The link token generated by the external account provider, used to initiate the account linking process.
  - `errorCode` string, nullable — The error code returned if the link token request failed.
  - `errorMessage` string, nullable — The error message describing the reason for failure, if applicable.
  - `errorType` string, nullable — The type or category of error, if the request was not successful.
  - `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)
