---
title: "Submit Plaid public token"
method: POST
path: "/plaid/callback/{plaid_link_token}"
tags: ["External Accounts"]
---

# Submit Plaid public token

`POST /plaid/callback/{plaid_link_token}`

After the customer completes Plaid Link authentication, the platform should POST
the public_token to this callback URL (provided in the link token response).

This will trigger asynchronous processing:
1. Lightspark exchanges the public_token for an access_token with Plaid
2. Lightspark retrieves and verifies the account details
3. An external account is created
4. A webhook notification is sent to the platform when complete

## Path parameters

- `plaid_link_token` string, required

## Request body

- PlaidCallbackRequest
  - `publicToken` string, required — The public token returned by Plaid Link after the customer successfully authenticates and selects an account.
  - `accountId` string — Optional Plaid account ID if the customer selected a specific account. If not provided, the default account will be used.

## Response `202`

A pending external account resource will be created and returned while the Grid API asynchronously processes the Plaid public token.

- ExternalAccount
  - `id` string, required — The system generated identifier of this account
  - `customerId` string — The customer this account is tied to, or null if the account is on behalf of the platform.
  - `status` 'PENDING' | 'ACTIVE' | 'UNDER_REVIEW' | 'INACTIVE', required — Status of an external account
  - `platformAccountId` string — Optional platform-specific identifier for this account
  - `currency` string, required — The ISO 4217 currency code
  - `defaultUmaDepositAccount` boolean — Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer.
  - `beneficiaryVerificationStatus` 'MATCHED' | 'PARTIAL_MATCH' | 'NOT_MATCHED' | 'UNSUPPORTED' | 'CHECKED_BY_RECEIVING_FI' | 'PENDING' — The result of verifying the beneficiary name against the account holder name. | Status | Description | |--------|-------------| | `MATCHED` | The beneficiary name is an exact match | | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | | `NOT_MATCHED` | The beneficiary name does not match | | `UNSUPPORTED` | The payment rail does not support name verification | | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | | `PENDING` | Verification is still in progress |
  - `beneficiaryVerifiedData` BeneficiaryVerifiedData
    - `fullName` string — The verified full name of the account holder as returned by the payment rail
  - `accountInfo` union, required
    - BrlExternalAccountInfo
      - `accountType` 'BRL_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `pixKey` string, required — The PIX key of the bank
      - `pixKeyType` string, required — The type of PIX key of the bank
      - `taxId` string, required — The tax ID of the bank account
      - `beneficiary` union, required
        - BrlBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - CadExternalAccountInfo
      - `accountType` 'CAD_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `bankCode` string, required — Canadian financial institution number (3 digits)
      - `branchCode` string, required — Transit number identifying the branch (5 digits)
      - `accountNumber` string, required — Bank account number (7-12 digits)
      - `beneficiary` union, required
        - CadBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - DkkExternalAccountInfo
      - `accountType` 'DKK_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `iban` string, required — The IBAN of the bank
      - `swiftBic` string — The SWIFT BIC of the bank
      - `beneficiary` union, required
        - DkkBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - EurExternalAccountInfo
      - `accountType` 'EUR_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `iban` string, required — The IBAN of the bank
      - `swiftBic` string — The SWIFT BIC of the bank
      - `beneficiary` union, required
        - EurBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - GbpExternalAccountInfo
      - `accountType` 'GBP_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `sortCode` string, required — UK bank sort code (6 digits, may include hyphens)
      - `accountNumber` string, required — UK bank account number (8 digits)
      - `beneficiary` union, required
        - GbpBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - HkdExternalAccountInfo
      - `accountType` 'HKD_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `bankName` string, required — The bank name of the bank
      - `accountNumber` string, required — The account number of the bank
      - `beneficiary` union, required
        - HkdBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - IdrExternalAccountInfo
      - `accountType` 'IDR_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `sortCode` string, required — The sort code of the bank
      - `accountNumber` string, required — The account number of the bank
      - `beneficiary` union, required
        - IdrBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - InrExternalAccountInfo
      - `accountType` 'INR_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `vpa` string, required — The VPA of the bank
      - `beneficiary` union, required
        - InrBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - MxnExternalAccountInfo
      - `accountType` 'MXN_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `clabeNumber` string, required — The CLABE number of the bank
      - `beneficiary` union, required
        - MxnBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - MyrExternalAccountInfo
      - `accountType` 'MYR_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `bankName` string, required — The bank name of the bank
      - `accountNumber` string, required — The account number of the bank
      - `beneficiary` union, required
        - MyrBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - NgnExternalAccountInfo
      - `accountType` 'NGN_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `accountNumber` string, required — Nigerian bank account number
      - `bankName` string, required — Name of the bank
      - `beneficiary` union, required
        - NgnBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - PhpExternalAccountInfo
      - `accountType` 'PHP_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `bankName` string, required — Name of the beneficiary's bank
      - `accountNumber` string, required — Bank account number
      - `beneficiary` union, required
        - PhpBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - SgdExternalAccountInfo
      - `accountType` 'SGD_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `bankName` string, required — Name of the beneficiary's bank
      - `swiftCode` string, required — SWIFT/BIC code (8 or 11 characters)
      - `accountNumber` string, required — Bank account number
      - `beneficiary` union, required
        - SgdBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - ThbExternalAccountInfo
      - `accountType` 'THB_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `bankName` string, required — The bank name of the bank
      - `accountNumber` string, required — The account number of the bank
      - `beneficiary` union, required
        - ThbBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - UsdExternalAccountInfo
      - `accountType` 'USD_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `accountNumber` string, required — The account number of the bank
      - `routingNumber` string, required — The routing number of the bank
      - `beneficiary` union, required
        - UsdBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string, required — The birth date of the beneficiary
          - `nationality` string, required — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - VndExternalAccountInfo
      - `accountType` 'VND_ACCOUNT', required
      - `countries` string[], required
      - `paymentRails` string[], required
      - `bankName` string, required — The bank name of the bank
      - `accountNumber` string, required — The account number of the bank
      - `beneficiary` union, required
        - VndBeneficiary
          - `beneficiaryType` 'INDIVIDUAL', required
          - `fullName` string, required — The full name of the beneficiary
          - `birthDate` string — The birth date of the beneficiary
          - `nationality` string — The nationality of the beneficiary
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `registrationNumber` string — The registration number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
        - BusinessBeneficiary
          - `beneficiaryType` 'BUSINESS', required
          - `legalName` string, required — The legal name of the business
          - `registrationNumber` string — The registration number of the business
          - `taxId` string — The tax identification number of the business
          - `email` string — The email of the beneficiary
          - `phoneNumber` string — The phone number of the beneficiary
          - `countryOfResidence` string — The country of residence of the beneficiary
          - `address` Address
            - `line1` string, required — Street address line 1
            - `line2` string — Street address line 2
            - `city` string — City
            - `state` string — State/Province/Region
            - `postalCode` string, required — Postal/ZIP code
            - `country` string, required — Country code (ISO 3166-1 alpha-2)
    - SparkWalletExternalAccountInfo
      - `accountType` 'SPARK_WALLET', required
      - `address` string, required — Spark wallet address
    - LightningExternalAccountInfo — Lightning payment destination. Exactly one of `invoice`, `bolt12`, or `lightningAddress` must be provided.
      - `accountType` 'LIGHTNING', required
      - `invoice` string — 1-time use lightning bolt11 invoice payout destination
      - `bolt12` string — A bolt12 offer which can be reused as a payment destination
      - `lightningAddress` string — A lightning address which can be used as a payment destination. Note that for UMA addresses, no external account is needed. You can use the UMA address directly as a destination.
    - SolanaWalletExternalAccountInfo
      - `accountType` 'SOLANA_WALLET', required
      - `address` string, required — Solana wallet address
    - TronWalletExternalAccountInfo
      - `accountType` 'TRON_WALLET', required
      - `address` string, required — Tron wallet address
    - PolygonWalletExternalAccountInfo
      - `accountType` 'POLYGON_WALLET', required
      - `address` string, required — Polygon eth wallet address
    - BaseWalletExternalAccountInfo
      - `accountType` 'BASE_WALLET', required
      - `address` string, required — Base eth wallet address

## Other responses

- `400` — Bad request - Invalid public token or link token
- `404` — Link token not found or expired
- `409` — Link token already used
- `500` — Internal service error

## Changes

- **2026-02-25** `c62cf646aaeb` — 21 breaking, 4 warning, 14 info
  - added `#/components/schemas/Error400_INVALID_INPUT, #/components/schemas/Error400_MISSING_MANDATORY_USER_INFO, #/components/schemas/Error400_INVITATION_ALREADY_CLAIMED, #/components/schemas/Error400_INVITATIONS_NOT_CONFIGURED, #/components/schemas/Error400_INVALID_UMA_ADDRESS, #/components/schemas/Error400_INVITATION_CANCELLED, #/components/schemas/Error400_QUOTE_REQUEST_FAILED, #/components/schemas/Error400_INVALID_PAYREQ_RESPONSE, #/components/schemas/Error400_INVALID_RECEIVER, #/components/schemas/Error400_PARSE_PAYREQ_RESPONSE_ERROR, #/components/schemas/Error400_CERT_CHAIN_INVALID, #/components/schemas/Error400_CERT_CHAIN_EXPIRED, #/components/schemas/Error400_INVALID_PUBKEY_FORMAT, #/components/schemas/Error400_MISSING_REQUIRED_UMA_PARAMETERS, #/components/schemas/Error400_SENDER_NOT_ACCEPTED, #/components/schemas/Error400_AMOUNT_OUT_OF_RANGE, #/components/schemas/Error400_INVALID_CURRENCY, #/components/schemas/Error400_INVALID_TIMESTAMP, #/components/schemas/Error400_INVALID_NONCE, #/components/schemas/Error400_INVALID_REQUEST_FORMAT, #/components/schemas/Error400_INVALID_BANK_ACCOUNT, #/components/schemas/Error400_SELF_PAYMENT, #/components/schemas/Error400_LOOKUP_REQUEST_FAILED, #/components/schemas/Error400_PARSE_LNURLP_RESPONSE_ERROR, #/components/schemas/Error400_INVALID_AMOUNT, #/components/schemas/Error400_WEBHOOK_ENDPOINT_NOT_SET, #/components/schemas/Error400_WEBHOOK_DELIVERY_ERROR` to the response body `oneOf` list for the response status `400`
  - added `#/components/schemas/Error404_TRANSACTION_NOT_FOUND, #/components/schemas/Error404_INVITATION_NOT_FOUND, #/components/schemas/Error404_USER_NOT_FOUND, #/components/schemas/Error404_QUOTE_NOT_FOUND, #/components/schemas/Error404_LOOKUP_REQUEST_NOT_FOUND, #/components/schemas/Error404_TOKEN_NOT_FOUND, #/components/schemas/Error404_BULK_UPLOAD_JOB_NOT_FOUND, #/components/schemas/Error404_REFERENCE_NOT_FOUND` to the response body `oneOf` list for the response status `404`
  - added `#/components/schemas/Error409_TRANSACTION_NOT_PENDING_PLATFORM_APPROVAL, #/components/schemas/Error409_UMA_ADDRESS_EXISTS` to the response body `oneOf` list for the response status `409`
  - added `#/components/schemas/Error500_GRID_SWITCH_ERROR, #/components/schemas/Error500_INTERNAL_ERROR` to the response body `oneOf` list for the response status `500`
  - …35 more
- …earlier changes not shown

[Full history](https://skmtc.dev/lightsparkdev/apis/grid-api/changes/plaid/callback/:plaid_link_token/post.md)

---

[API](https://skmtc.dev/lightsparkdev/apis/grid-api.md) · [All operations](https://skmtc.dev/lightsparkdev/apis/grid-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lightsparkdev/grid-api/revisions/c62cf646aaeb/schema)
