---
title: "Create an external party"
method: POST
path: "/external-parties"
tags: ["External Parties"]
---

# Create an external party

`POST /external-parties`

Create an external party to transact with over Direct

## Headers

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

## Request body

- object
  - `data` object, required
    - `attributes` object, required
      - `customerPartyId` string — Customer party ID (pty_*). Omit to create for your own party; provide for delegated creation.
      - `kind` 'individual' | 'business', required — External party type.
      - `name` string, required — External party name.
      - `email` string, email — External party email address.
      - `phone` string — External party phone number. It is normalized to E.164.
      - `address` object — Optional external party address. When supplied, it must be complete and valid. US addresses require state and postalCode.
        - `line1` string, required
        - `line2` string
        - `city` string, required
        - `state` string — State or province. Required for US addresses.
        - `postalCode` string — Postal or ZIP code. Required for US addresses.
        - `countryCode` string, required — ISO 3166-1 alpha-2 country code.

## Response `201`

Successful Response

- object
  - `data` object, required
    - `id` string, required
    - `type` 'external_party', required — Resource type.
    - `attributes` object, required
      - `kind` 'individual' | 'business', required — External party type.
      - `name` string, required — External party display or legal name.
      - `email` string, nullable, required — Normalized email address, if supplied.
      - `phone` string, nullable, required — Normalized E.164 phone number, if supplied.
      - `address` object, nullable, required — External party address.
        - `line1` string, nullable, required
        - `line2` string, nullable, required
        - `city` string, nullable, required
        - `state` string, nullable, required
        - `postalCode` string, nullable, required
        - `countryCode` string, nullable, required
      - `addressVersion` integer, nullable, required — Address revision for concurrent correction checks. Null on older cached create responses; get the external party before correction.
      - `screeningStatus` 'clear' | 'under_review' | 'rejected', required — Sanctions screening disposition.
      - `archivedAt` string, nullable, required — ISO archive timestamp, or null when active.
      - `createdAt` string, required — ISO creation timestamp.
      - `updatedAt` string, required — ISO update timestamp.
    - `relationships` object, required
      - `customer` object, required — Customer party.
        - `data` object, required — Related resource identifier.
          - `type` 'party', required
          - `id` string, required

## 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-11** `226131258c12` — 1 info
  - added the required property `data/attributes/addressVersion` to the response with the `201` status
- **2026-09-09** `ccc52bdd2ca7` — 4 breaking, 1 info
  - the request property `data/attributes/address/city` became required
  - the request property `data/attributes/address/countryCode` became required
  - the request property `data/attributes/address/line1` became required
  - added the pattern `^[A-Za-z]{2}$` to the request property `data/attributes/address/countryCode`
  - …1 more
- **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

[Full history](https://skmtc.dev/natural/apis/natural-api/changes/external-parties/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/226131258c12?raw)
