Skip to main content
POST
Schedule a payment directly (ALPHA)

Authorizations

x-api-key
string
header
required

Headers

x-idempotency-key
string<uuid>
required

Unique key to ensure request idempotency. If the same key is used within a certain time window, the original response will be returned instead of executing the request again.

Body

application/json

Direct (signer-first) schedule create. The signer + funding wallet are the caller's choice; the schedule is explicit dates, or count × interval_seconds from start_at. Name the payee EITHER with destination_id (an existing crypto destination of the wallet's customer) OR with a direct address + network_id (a raw crypto address, no recipient — matched on the address at fire time, like a mandate address target) — exactly one of the two.

signer_id
string
required

The signer the payments bind to; its hosted agent signs at fire time.

wallet_id
string
required

The funding wallet these payments spend from. Required — the signer must be permitted to spend on it, and its chain family must match the payment network.

amount
string
required

Decimal string, at the destination asset.

asset
string
required
destination_id
string

An existing crypto destination of the wallet's customer to pay. Omit to pay a direct address (address + network_id).

address
string

A direct crypto address to pay — an alternative to destination_id (no recipient). Requires network_id; the wallet's chain family must match.

network_id
string

The network for a direct-address payment (required together with address).

dates
integer<int64>[]

Explicit per-payment unix times (one payment each). Win over count × interval_seconds.

Maximum array length: 366
count
integer

Number of payments when using count × interval_seconds (default 1).

Required range: x <= 366
interval_seconds
integer<int64>

Cadence in seconds between payments when using count.

start_at
integer<int64>

First due time (0 ⇒ now).

Response

The scheduled payments that were created (one row per date)

id
string
signer_id
string

The signer (hosted agent) this payment fires under. Updatable via PATCH while scheduled.

wallet_id
string

The funding wallet this payment spends from (the customer's choice at acceptance; updatable via PATCH while scheduled).

mandate_id
string

AUDIT — the mandate that covered this payment at fire time. Absent until the payment executes (coverage is decided at fire time, not bound at rest).

wallet_transaction_id
string

AUDIT — the money-path transaction created when this payment fired. Absent until the payment executes.

amount
string
asset
string
failure_reason
string

Why the payment failed (e.g. the mandate gate's denied dimensions); absent unless status is failed.

recipient_id
string

The recipient this payment pays, when it was created from a destination. Absent for a direct-address payment (which carries no recipient).

destination_id
string

The REAL destination this payment settles to — a bank (for an offramp) or a crypto destination. For an auto-account (convert-and-forward) payment, address is the crypto DEPOSIT actually paid while this names the bank/crypto target, so a client can show which account the scheduled payment is for. Absent for a direct-address payment.

destination_type
enum<string>

The kind of the REAL destination (see destination_id). bank marks an offramp (the payment converts crypto to fiat and forwards via a bank rail); crypto a direct or cross-family crypto payout. Absent for a direct-address payment with no destination.

Available options:
bank,
crypto
destination_label
string

A human label for the real destination — e.g. "Chase ••••5432" for a bank, or a shortened address for crypto — so a client can show which account the payment settles to without a second lookup. Absent when unresolved.

destination_rail
string

For a bank destination, the payout rail (e.g. ach, fedwire, swift). Absent for crypto.

output_asset
string

The asset the recipient ULTIMATELY receives. For an offramp this is the fiat currency (e.g. USD) the deposit converts to; for a direct crypto payment it equals asset. Stablecoin conversion is 1:1, so the output AMOUNT equals amount.

output_network
string

For a crypto destination, the network the recipient ULTIMATELY receives on — for a cross-family swap this differs from network_id (the DEPOSIT network the wallet pays), e.g. output_network solana-devnet while network_id is base-sepolia. Equals network_id for a direct crypto payment; absent for a bank offramp (fiat has no network).

address
string
network_id
string
status
enum<string>
Available options:
scheduled,
cancelled,
executed,
failed
executed_at
integer<int64>
scheduled_at
integer<int64>