Create a mandate directly (ALPHA)
Alpha — early access.
Drafts a PENDING mandate from a direct user interaction - no instruction back-link. Exactly one binding form names the signer the mandate binds: payment_agent_id (the hosted convenience - binds that agent’s signer and anchors the mandate to the agent’s customer), or signer_id together with customer_id (any of the client’s signers, BYO keys included; the customer anchors the recipient-target scope and the §8 approver set). The rule is the one the customer will approve (POST /mandates//approve, a recognized signer other than the bound one, §8). Recipient targets may be recipient ids or payee names - names resolve to the mandate’s customer’s existing recipients before anything is stored. Schedule payments under it by mandate_id; they arm the moment it activates.
Authorizations
Body
Exactly one binding form is required - payment_agent_id alone, or signer_id together with customer_id. Any other combination is rejected with 400.
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.
Binding form B - the mandate binds this signer directly (any of the client's signers, not only an agent's). Requires customer_id.
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.
Response
The pending mandate, targets resolved to ids.
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.
pending, active, expired, rejected, revoked, done 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.
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.
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.
Unix time of the §8 approval; absent until approved.
The signer that cancelled the mandate while it was still pending (§8); absent otherwise.
The signer that cancelled the mandate after activation (§8); absent otherwise.

