Do you provide an OpenAPI spec?
Yes. Download JSON/YAML from Developers → API. Use it to generate clients or validate requests.
How do I authenticate API calls?
Use the session cookie after login:
curl -X POST $API_BASE/api/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"[email protected]","password":"••••••"}' \
-c cookies.txt
Then pass -b cookies.txt
on subsequent calls. (If API keys are enabled for your plan, you’ll pass Authorization: Bearer <key>
.)
Do you support idempotency keys?
Yes. Provide a stable reference
in your requests or an Idempotency-Key
header.
Why it matters
Safe retries on network errors.
Webhooks can deliver duplicates; dedupe by event ID/reference.
What rate limits apply?
Default 100 req/min per org, burstable with fair‑use.
If you hit limits
Back off with exponential retry.
Contact support for plan‑based increases.
How do I secure webhooks?
Stripe: use
express.raw()
for body + verify withSTRIPE_WEBHOOK_SECRET
.Bank/open banking: verify
X‑Hmac‑Signature
.Store event IDs; ignore duplicates; time‑box processing to avoid retries.
Can I replay webhook events?
Yes. Use your provider dashboard (Stripe “replay”). Replaying helps recover from outages or bad secrets.
What events are in SSE?
Orders (order.created
, order.status.changed
), Contracts (contract.signed
, contract.message
), Payments (payment.succeeded
), Escrow (escrow.released
), Disputes (dispute.opened
, dispute.resolved
).
Client pattern
const es = new EventSource('/api/events/stream', { withCredentials: true });
['order.status.changed','payment.succeeded','dispute.opened'].forEach(n =>
es.addEventListener(n, e => console.log(n, JSON.parse(e.data))));
How do I paginate and filter?
Use standard query params (e.g., ?limit=50&cursor=abc&status=InProgress&from=2025-01-01
). Responses include a nextCursor
when more data is available.
What’s your error format?
{
"code":"VALIDATION_ERROR",
"message":"Invalid payload",
"issues":[{"path":["currency"],"message":"Must be a 3-letter code"}]
}
See API → Errors for details.
Do you offer SDKs?
You can generate one from the OpenAPI spec. Community SDKs may be available; otherwise use fetch/axios or your preferred HTTP client.