> ## Documentation Index
> Fetch the complete documentation index at: https://docs.natural.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> When building application code, use `@naturalpay/sdk` for TypeScript or `naturalpay` for Python.
> When operating Natural directly for a user, use the payments MCP at `https://mcp.natural.com`.
> When searching Natural documentation, use the docs MCP at `https://docs.natural.com/mcp`.
> Use the Natural CLI for terminal and CI automation.
> Use REST only for unsupported languages or when the user explicitly requests raw HTTP.
> Start integration development and testing in the sandbox. Do not use production unless the user explicitly requests it.
> For sandbox requests that require `customerPartyId`, list customers first. Reuse only the intended fixture; otherwise create a customer.
> REST and SDK amounts use integer minor units. Payments MCP amounts use decimal strings with a required currency code.

# Overview

> Banking details belonging to external parties not on Natural

<Note>Direct is in early access. To request Direct access, contact [hi@natural.com](mailto:hi@natural.com).</Note>

An external party account (`epa_*`) stores banking details for an [External party](/guides/concepts/external-parties). It is the destination of Direct [ACH payments](/guides/concepts/ach).

Store one by sending the account details for its type. A US bank account takes the account type plus the account and routing numbers:

```json theme={null}
{
  "data": {
    "attributes": {
      "externalPartyId": "epty_550e8400e29b41d4a716446655440000",
      "accountDetails": {
        "type": "us_bank_account",
        "accountType": "checking",
        "accountNumber": "123456786789",
        "routingNumber": "121000358"
      }
    }
  }
}
```

Natural stores the numbers securely. Responses identify the account by its last four digits and a masked form, and never return the full numbers.

## Validation

Natural validates the account when you create it and reports the outcome in the account's validation state. An account that cannot be validated immediately is `pending` and resolves asynchronously to `validated` or `failed` — the `external_party_account.validated` [webhook event](/guides/concepts/events) fires when it validates. ACH credits work while validation is pending.
