Skip to main content
Direct is in early access and subject to change. To request Direct access, contact hi@natural.com.
An external party (epty_*) is an individual or business not on Natural — a party (pty_*) is on Natural, an external party is not. An external party account (epa_*) stores an external party’s banking details and is the destination of ACH, realtime, and wire payments.

External parties

Create one with POST /external-parties:
  • kind and name are required. An individual’s name must include first and last name. email, phone, and address are optional; phone numbers are normalized to E.164.
  • A supplied address must be complete: line1, city, and an ISO two-letter countryCode; US addresses also require state and postalCode.
  • Natural screens every external party and reports screeningStatus as clear, under_review, or rejected. A rejected party cannot have accounts stored.
  • Fedwire requires a complete beneficiary address. If a wire create returns 400 wire.beneficiary_address_required, read the party’s addressVersion and call PATCH /external-parties/{externalPartyId}/address with the complete address and expectedAddressVersion, then retry with the same IDs.
  • Address completeness and bank wire eligibility are separate requirements — an account that supports ACH does not necessarily support wires.

External party accounts

Store one with POST /external-party-accounts, sending the accountDetails for its type. A US bank account takes the account type plus the account and routing numbers:
  • Responses identify the account by its last four digits and a masked form; the full numbers are stored securely and never returned.
  • supportedRails lists the rails the account is expected to accept — one or more of ach, realtime, and wire. It is advisory and refreshed periodically from the payment network; the authoritative check runs when you create a payment.
Validation — Natural validates the account at creation and reports the outcome in validationState. An account that cannot be validated immediately is pending and resolves asynchronously to validated or failed; the external_party_account.validated event fires when it validates. If validation fails at creation, the request returns external_party_account.validation_failed and nothing is stored. ACH credits work while validation is pending. A failed account cannot be used — store a new one.