Create Fulfillment
Creates a payment intent — a "send" (sender defaults to the caller) or, when sender_user_id or sender_wallet names someone else, a "request" the caller becomes the receiver of. deadline is required RFC3339. memo is the join key to on-chain settlement: 409 memo_taken if it's already held by a live (pending/claimed/submitted) fulfillment in the tenant — omit it and the server mints one. 422 amount_over_limit if a DIRECT-tagged payment exceeds the per-payment cap (max_uoa/max_cents echoed in the error body).
idempotency_key (optional, 8..255 chars) — pass one if your client can retry. A second create with the same key in the same tenant returns the ORIGINAL fulfillment, same id, instead of minting a second payment. The key is durable for the row's whole life, so a retry that arrives after the original settled still resolves to it — that is the "response was lost, client retried" case. Without a key, behaviour is unchanged: every call creates a new payment intent. Note the counterparty notification fires only on the real create, never on a replay.
Request
- Base URL: https://api.instruxi.dev/api/v1/enforcer
- URL: https://api.instruxi.dev/api/v1/enforcer/fulfillments
- Auth: API key in header Authorization
Request body
Response
Created
Example response
{
"success": true
}Changes
No recorded changes to this operation across all 1 revision of this API.