Overview
We use two kinds of request identifiers:- Client Request ID (
client_request_id
) — a UUID you generate and send on write operations to make them idempotent and easy to correlate across your systems. - Server Request ID (
request_id
) — a string we generate to trace a specific API attempt. It’s always present in error responses (inside theerror.request_id
field) and may appear in headers when available.
Client Request ID
Send a uniqueclient_request_id
with each create/mutate call. If you retry the same operation, reuse the same client_request_id
so we don’t create duplicates.
Endpoints that accept client_request_id
PATCH /api/v1/liquidity/onboarding/credit-limit
(CreditLimitUpdateRequest
)POST /api/v1/liquidity/onboarding/whitelist
(AddWalletRequest
)POST /api/v1/liquidity/utilization/drawdowns
(CreateDrawdownRequest
)PATCH /api/v1/liquidity/utilization/{id}/settlements
(ConfirmSettlementRequest
)POST /api/v1/liquidity/utilization/{id}/proofs
(SubmitProofFormData
)
We may extend client_request_id
to other write endpoints over time.
Idempotency semantics
- If a request with the same
client_request_id
is replayed with identical parameters, we return the original result. - If it’s replayed with different parameters, we return an idempotency error (e.g., HTTP
409 Conflict
witherror.type: "idempotency_error"
). - Idempotency keys are retained for a period; replays outside the retention window may be treated as new requests.
Example (idempotent retry)
client_request_id
, you’ll receive the same outcome without creating duplicate operations.
Server Request ID
When something goes wrong, responses include a server-generatedrequest_id
in the error envelope:
request_id
with support for faster troubleshooting.
Best practices
- Generate UUIDv4 for
client_request_id
(one per unique operation). - Persist and reuse on retry (network timeouts, 5xx, or 429 with backoff).
- Don’t recycle IDs across different operations or payloads.
- Log both IDs: your
client_request_id
and ourrequest_id
(from errors) to correlate end-to-end. - Combine with
metadata
when you need extra business context (metadata.reconciliation_run
,metadata.psp_tx_id
, etc.).