Skip to main content
Direct is in early access and subject to change. To request Direct access, contact hi@natural.com.
A wire (wire_*) sends USD from a Wallet to an External party account over Fedwire.

Create

  • description is an internal label and is not sent to the bank. remittanceInfo is what the beneficiary sees. It is optional, up to 105 characters, and limited to letters, digits, spaces, and / - ? : ( ) . , ' +. Your legal name and remittanceInfo together must fit in 140 characters.
  • Fedwire requires a complete beneficiary address. If the External party has none, create returns 400 wire.beneficiary_address_required. Add the address with PATCH /external-parties/{externalPartyId}/address, passing the party’s current addressVersion as expectedAddressVersion, then retry the wire with the same IDs.
  • The external party account’s supportedRails is an advisory hint. The authoritative reachability check runs when you create the wire.
  • To send on behalf of a customer, pass customerPartyId. See Move money for a customer.

Lifecycle

Cancel — A wire can be canceled while it is CREATED or AWAITING_APPROVAL. Once submission starts, cancel returns 400 wire.not_cancellable. Canceling emits no wire.* event. Events — Status changes emit wire.created, wire.processing, wire.completed, wire.rejected, and wire.failed. Approval holds emit approval.* events instead. Events go to your webhooks, and to a connected customer’s webhooks when they have granted Direct read access. The fee is assessed when the wire is submitted, so it’s always null on wire.created. Read it from wire.processing. Payloads are documented in the event catalog. Sandbox — Drive a test wire to a terminal state without waiting on the bank: settle moves it to COMPLETED and fail moves it to REJECTED.