Reserve Transaction Capacity
Use this endpoint to reserve transaction capacity against spending limits — phase one of the two-phase reservation flow. Provide the ledger transactionId the reservation is keyed on; the response returns one reservation ID per counter-backed limit that must later be confirmed or released. When a spending limit would be exceeded, the response is returned with denied set to true and no capacity is held. Reserves are idempotent by transactionId — retrying the same reserve returns the same handle.
Authorizations
API Key authentication. Used by single-tenant deployments (MULTI_TENANT_ENABLED=false). Sent on every /v1/* request.
Headers
The type of media of the resource. Must be application/json.
The API Key for authentication. This header is required for all endpoints except health checks.
A unique identifier used to trace and track each request.
Body
Reserve request for phase one. Mirrors the transaction validation payload and adds the ledger transactionId the reservation lifecycle is keyed on. For reserves, transactionType and account are optional because the ledger may not know the payment rail or an internal account UUID at the reserve anchor; requestId, amount, currency and transactionTimestamp remain required.
Ledger transaction correlation ID the reservation is keyed on. Also the idempotency grain for retried reserves.
Client-generated unique ID for idempotency and audit trail correlation.
Transaction amount as a decimal string (e.g., "1500.00"). Must be a positive decimal value.
ISO 4217 currency code (uppercase). Lowercase codes are rejected.
3Transaction timestamp in RFC3339 format with timezone.
Selects the reservation lifetime. Use true for a pending transaction that must not expire while it remains valid; false (the default) for a direct transaction.
Type of transaction (payment method). Optional for reserves.
CARD, WIRE, Pix, CRYPTO Transaction subtype for additional context (e.g., debit, credit, prepaid).
50Account context for validation.
Segment context (optional). If provided, segmentId is required.
Portfolio context (optional). If provided, portfolioId is required.
Merchant context (optional, recommended for card transactions). If provided, merchantId is required.
Custom key-value pairs for rule expressions.
Response
Indicates that the reserve was processed. Inspect denied to confirm capacity was granted rather than rejected by a spending limit.
Handle returned on a successful reserve. When denied is true no capacity was held and reservationIds is empty; otherwise reservationIds holds one ID per counter-backed limit the ledger must later confirm or release.
The ledger transaction correlation ID from the request.
Whether the reserve was denied because a spending limit would be exceeded. When true, no capacity is held.
One reservation ID per counter-backed limit to confirm or release in phase two. Empty when denied.

