Stage your first settlement in three steps.
This is a hands-on sketch against https://api.gutschow.xyz, not the complete API. For the path from reading to a live key, see Developers. For every operation and schema, use the API Documentation or download the OpenAPI JSON.
The open simulation needs no key: run GET/POST /api/v1/simulation. Sandbox keys (gsk_sandbox_…) issue after work-email verification on Sandbox.
1. Sign every write with your key and an HMAC
Settlement writes use a sandbox or live API key plus a timestamp-bound HMAC. Send the key as Authorization: Bearer or x-api-key. Sign timestamp.rawBody (unix seconds, a dot, then the raw JSON body) with your HMAC secret, and send the hex as x-gutschow-signature. Send the timestamp, in unix seconds, in x-gutschow-timestamp. The skew window is five minutes.
| Header | Purpose |
|---|---|
Authorization | Bearer gsk_sandbox_… |
x-gutschow-timestamp | Unix seconds at request time |
x-gutschow-signature | HMAC-SHA256 hex of timestamp.rawBody |
Idempotency-Key | Optional; also accepted on the JSON body |
2. Stage a settlement
POST /v1/settlement/ingest (alias /api/v1/settlement/ingest) stages a trade at status staged. Send a positive amount, which is the gross. The gateway takes the fee at ingress. Wallets must already be provisioned for the asset.
cURL
TS=$(date +%s) |
A successful call returns 201 with transaction_id and status: "staged". Staging does not reserve funds. A worker claims the row before rail confirmation. Poll GET /v1/settlement/status/{id} or wait for webhooks.
3. Verify each status webhook before you trust it
When status changes, Gutschow POSTs a signed event to your registered callback URL. Verify x-gutschow-outgoing-signature before you trust the body. Payload schemas and verification steps are in the API Documentation.
Example outbound body
{ |
Wallet and asset conventions
| Rule | Value |
|---|---|
| Wallet IDs | Hyphenated, for example wallet-alice |
| Routable assets | USDC, EURC |
The fee arithmetic is on Platform.