---
title: "Create external account"
method: POST
path: "/payments/external_accounts"
tags: ["Payments"]
---

# Create external account

`POST /payments/external_accounts`

Links an external fiat or crypto account to a participant. Fiat accounts are linked via a Plaid processor token. Crypto account support requires the feature to be enabled on the calling platform.

## Headers

- `X-SCX-SIGNED` string, required
- `X-SCX-TIMESTAMP` string, required

## Request body

- union
  - object
    - `participant_code` string, required — Participant code
    - `account_nickname` string — Account nickname
    - `plaid_processor_token` string, required — Plaid processor token
  - object
    - `participant_code` string, required — Participant code
    - `account_nickname` string — Account nickname
    - `type` 'crypto', required — Account asset type
    - `details` union, required
      - object
        - `network` 'ETH' | 'ALGO' | 'ARBITRUM' | 'AVAX' | 'BASE' | 'HBAR' | 'POLYGON' | 'SOL' | 'OP' | 'SUI' | 'XLM' | 'ZK', required — Blockchain network
        - `supported_symbols` string[], required — Symbol uses dot notation to refer to asset and network
        - `address` string, required — Destination address
        - `destination_tag` string — Destination tag (for XRP, XLM, etc.)
        - `no_destination_tag` boolean — Set to true to acknowledge that the destination address does not require a destination tag. Required for tag-based assets when destination_tag is not provided.
      - object
        - `network` 'ETH' | 'ALGO' | 'ARBITRUM' | 'AVAX' | 'BASE' | 'HBAR' | 'POLYGON' | 'SOL' | 'OP' | 'SUI' | 'XLM' | 'ZK', required — Blockchain network
        - `supported_assets` string[], required — Tokens or currencies in the provided network
        - `address` string, required — Destination address
        - `destination_tag` string — Destination tag (for XRP, XLM, etc.)
        - `no_destination_tag` boolean — Set to true to acknowledge that the destination address does not require a destination tag. Required for tag-based assets when destination_tag is not provided.

## Response `201`

Successfully created external account. Returns the created resource with generated IDs and timestamps.

- union
  - object
    - `request_id` string — RequestID
    - `participant_code` string — Participant code
    - `platform_code` string — Platform code
    - `account_nickname` string — Account nickname
    - `status` 'pending' | 'approved' | 'rejected' | 'locked' | 'disabled' | 'closed' — Account status
    - `external_account_id` string — Linked account id
    - `created_at` string, date-time — Creation timestamp of the account.
  - object
    - `request_id` string — RequestID
    - `participant_code` string — Participant code
    - `platform_code` string — Platform code
    - `account_nickname` string — Account nickname
    - `status` 'pending' | 'approved' | 'rejected' | 'locked' | 'disabled' | 'revoked' | 'closed' — Account status
    - `status_reason` string — Status reason when there is an error
    - `external_account_id` string — Linked account id
    - `created_at` string, date-time — Creation timestamp of the account.
    - `details` object
      - `network` 'ETH' | 'ALGO' | 'ARBITRUM' | 'AVAX' | 'BASE' | 'HBAR' | 'POLYGON' | 'SOL' | 'OP' | 'SUI' | 'XLM' | 'ZK' — Blockchain or Fiat rail
      - `supported_assets` string[] — Tokens or currencies in the provided network
      - `supported_symbols` string[] — Symbol uses dot notation to refer to asset and network
      - `address` string — Destination address

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/zerohash/apis/zerohash-api.md) · [All operations](https://skmtc.net/zerohash/apis/zerohash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zerohash/zerohash-api/revisions/8b647d934363/schema)
