---
title: "Link test bank account"
method: POST
path: "/simulations/external-accounts/link"
tags: ["Simulations"]
---

# Link test bank account

`POST /simulations/external-accounts/link`

Link a test bank account to your own party

## Headers

- `Idempotency-Key` string, required
- `X-Instance-ID` string, nullable

## Response `200`

Successful Response

- object
  - `data` object[], required — External accounts linked or refreshed by the request.
    - `type` 'externalAccount', required — Resource type. Always `externalAccount`.
    - `id` string, required — External account ID (eac_*).
    - `attributes` object, required
      - `lastFour` string, required — Last four digits of the external bank account.
      - `status` 'pending' | 'new' | 'active' | 'disabled' | 'deleted' | 'unknown', required — Lifecycle status of the external account.
      - `connectionStatus` 'active' | 'login_required' | 'disconnected', required — Bank connection health. Relink the account when it is `login_required` or `disconnected`.
      - `availableMethods` string[], required — Withdrawal delivery methods this account supports.
      - `createdAt` string, date-time, required — RFC 3339 timestamp when the account was linked.
      - `bankName` string, nullable, required — Bank institution name, when available.
      - `accountName` string, nullable, required — Bank account display name, when available.
      - `accountType` 'checking' | 'savings' | 'unknown', nullable, required — Bank account type, when available.
      - `tags` object, required — Metadata visible to anyone who can read the resource.
    - `relationships` object, required
      - `party` object, required — Party that owns the external account.
        - `data` object, required — Related resource identifier.
          - `type` 'party', required — Resource type. Always `party`.
          - `id` string, required
  - `meta` object, required
    - `pagination` object, required
      - `hasMore` boolean, required — Whether more results are available.
      - `nextCursor` string, nullable, required — Cursor for the next page, or null when there are no more results.
    - `rejectedAccounts` object[], required — Accounts reviewed during linking but not linked.
      - `accountId` string, required — Bank account identifier for the rejected account.
      - `accountName` string, nullable, required — Display name of the rejected account.
      - `accountMask` string, nullable, required — Last-four mask of the rejected account.
      - `reason` 'profile_identity_missing' | 'bank_identity_unavailable' | 'bank_account_name_mismatch' | 'bank_account_address_mismatch' | 'bank_account_ownership_mismatch' | 'bank_account_verification_failed', required — Reason code explaining why the account was not linked.

## Other responses

- `400` — Validation Error
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found. Returned when the resource does not exist, or when it exists but is not accessible to your account. The two cases are intentionally indistinguishable, so that resource IDs cannot be enumerated by probing.
- `409` — Conflict
- `422` — Validation Error. The response contains one error object for each invalid request value.
- `428` — Precondition Required
- `429` — Too Many Requests
- `500` — Internal Server Error
- `501` — Not Implemented
- `502` — Bad Gateway
- `503` — Service Unavailable

## Changes

- **2026-09-02** `c7c12da5915f` — 12 info
  - added the optional property `errors/items/meta/limitScope` to the response with the `400` status
  - added the optional property `errors/items/meta/limitScope` to the response with the `401` status
  - added the optional property `errors/items/meta/limitScope` to the response with the `403` status
  - added the optional property `errors/items/meta/limitScope` to the response with the `404` status
  - …8 more
- **2026-08-27** `359d267dca88` — 1 info
  - deleted the `header` request parameter `X-Agent-ID` with deprecation
- **2026-08-23** `b1ad79e918ac` — 1 info
  - `header` request parameter `X-Agent-ID` was deprecated
- **2026-08-14** `7271de071ca5` — 1 info
  - added the required property `data/items/attributes/tags` to the response with the `200` status
- **2026-08-06** `5b54392d3699` — 1 info
  - added the required property `data/items/attributes/availableMethods` to the response with the `200` status

[Full history](https://skmtc.dev/natural/apis/natural-api/changes/simulations/external-accounts/link/post.md)

---

[API](https://skmtc.dev/natural/apis/natural-api.md) · [All operations](https://skmtc.dev/natural/apis/natural-api/llms.txt) · [OpenAPI document](https://skmtc.dev/natural/apis/natural-api/revisions/ca3882d75a00?raw)
