Skip to main content
POST
Create a mandate directly (ALPHA)

Authorizations

x-api-key
string
header
required

Body

application/json

Exactly one binding form is required - payment_agent_id alone, or signer_id together with customer_id. Any other combination is rejected with 400.

rule
object
required
payment_agent_id
string

Binding form A (hosted convenience) - the mandate binds this agent's signer and anchors to the agent's customer. Mutually exclusive with signer_id/customer_id.

signer_id
string

Binding form B - the mandate binds this signer directly (any of the client's signers, not only an agent's). Requires customer_id.

customer_id
string

Binding form B - the customer the mandate is anchored to; must belong to the calling client. Defines the recipient-target scope and the §8 approver set (approval requires a recognized signer of THIS customer other than the bound one). Requires signer_id.

valid_from
integer<int64>
valid_until
integer<int64>

Response

The pending mandate, targets resolved to ids.

id
string
status
enum<string>

expired is DERIVED, never stored - a pending or active mandate whose valid_until has passed. It cannot authorize payments and cannot be approved; it can still be cancelled.

Available options:
pending,
active,
expired,
rejected,
revoked,
done
bound_signer_id
string
customer_id
string

The customer this mandate is anchored to - approval requires a recognized signer of this customer other than the bound one (§8), and recipient targets belong to it. Absent only on rows created before the anchor existed.

target_names
string[]

DERIVED, display-only - the rule's recipient targets resolved to names, parallel to rule.targets (raw id on a miss). Absent for address/any target kinds. The ids in the rule remain the grant.

instruction_id
string
version
integer

The CURRENT version number (1 for a mandate that has never been amended). rule below is this version's rule — the one the gate governs on. Each version is immutable and independently signed; the full history is at GET /mandates/{mandate_id}/versions.

rule
object
valid_from
integer<int64>
valid_until
integer<int64>
approved_by_signer_id
string
approved_at
integer<int64>

Unix time of the §8 approval; absent until approved.

rejected_by_signer_id
string

The signer that cancelled the mandate while it was still pending (§8); absent otherwise.

revoked_by_signer_id
string

The signer that cancelled the mandate after activation (§8); absent otherwise.