Skip to main content
Direct is in early access and subject to change. To request Direct access, contact hi@natural.com.
A realtime payment (rt_*) pushes money from a Wallet to an External party account over RTP or FedNow.

Create

  • description is delivered to the recipient’s bank. It must be 1–140 characters from the ISO 20022 character set: letters, digits, spaces, and / - ? : ( ) . , ' +.
  • Not every bank account can receive realtime credits. The external party account’s supportedRails is an advisory hint refreshed from the network. The authoritative check runs when you create the payment, and unreachable accounts are rejected there.
  • A network rejection usually arrives within seconds and is terminal: the payment moves to FAILED with the network code in failure.code. Natural does not retry over another rail. To reach the account anyway, create an ACH payment.
  • To send on behalf of a customer, pass customerPartyId. See Move money for a customer.

Lifecycle

Cancel — A payment can be canceled while it is CREATED or AWAITING_APPROVAL. Once submission starts, cancel returns 400 realtime.not_cancellable. Canceling emits no realtime.* event. Events — Status changes emit realtime.created, realtime.processing, realtime.settled, and realtime.failed. Approval holds emit approval.* events instead. The fee is assessed when the payment is submitted, so it’s always null on realtime.created. Read it from realtime.processing. Payloads are documented in the event catalog. Sandbox — Drive a test payment to a terminal state without waiting on the network: settle moves it to SETTLED and fail moves it to FAILED.