> ## 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

> Send realtime payments to external party accounts

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

A realtime payment (`rt_*`) pushes money from a [Wallet](/guides/concepts/wallets) to an [External party account](/guides/concepts/external-party-accounts) over the realtime network (RTP or FedNow). Realtime payments are credit only and typically settle in seconds.

Create one with an integer amount in the minor units of the currency, the destination account, and a description that is delivered to the recipient bank:

```json theme={null}
{
  "data": {
    "attributes": {
      "amount": 25000,
      "currency": "USD",
      "externalPartyAccountId": "epa_550e8400e29b41d4a716446655440000",
      "description": "Invoice 1042 payout"
    }
  }
}
```

The description is required, 1 to 140 characters from the ISO 20022 character set (letters, digits, spaces, and `/ - ? : ( ) . , ' +`).

## Lifecycle

A payment starts `CREATED` and moves to `PROCESSING` once submitted to the network. It ends `SETTLED`, `FAILED`, or `CANCELED` — you can [cancel it](/api-reference/realtime/cancel-realtime-payment) before submission. A payment that needs approval passes through `AWAITING_APPROVAL` and ends `APPROVAL_DENIED` when denied. The `realtime.*` [webhook events](/guides/concepts/events) fire as the payment progresses.

There is no return state. A network rejection is terminal and usually arrives within seconds: the payment ends `FAILED` with the network code on its `failure` field. A settled payment is irrevocable. Natural does not resubmit a failed realtime payment over ACH — to pay a destination that cannot receive realtime credits, create an [ACH payment](/guides/concepts/ach) instead.

## Reachability

Not every bank account can receive realtime credits. The `supportedRails` field on an [External party account](/guides/concepts/external-party-accounts) reports the rails the account is known to reach. The field is advisory at read time; reachability is enforced when you create the payment.

## Sandbox

In Sandbox, drive a payment to a terminal state with the [settle](/api-reference/simulations/settle-realtime-payment) and [fail](/api-reference/simulations/fail-realtime-payment) simulations.
