POST
Error

Authorizations

X-DimeTrades-Signature
string
header
required

HMAC request/delivery signature — not a bearer token or API key. The actual proof a call came from DimeTrades — verify it.

Used on webhook deliveries and on the external-wallet reservation check: t=<unix seconds>,v1=<hex HMAC-SHA256>, where v1 is HMAC-SHA256(secret, "{t}.{rawBody}") over the exact raw body sent. Webhook deliveries are signed with your webhook signing secret; the reservation check is signed with your separate external wallet secret. Verify the signature and reject stale timestamps before trusting the payload — full steps in the Partner webhooks guide's "Verifying a delivery" section. Neither of these calls carries X-API-Key — that identifies a platform calling DimeTrades; here DimeTrades is calling you, with its own identity proven by this signature, not by any header, alone.

The reservation check also carries Authorization: Bearer {partnerApiKeyId}, but that header is not part of authentication — partnerApiKeyId is a plain identifier your brand's admin typed into DimeTrades's settings, not issued or cryptographically verified by DimeTrades, and it's optional on the brand's side. Treat this signature as the only thing that actually proves the call is legitimate; see the reservation check's own "Authenticating the request" section for that header's details.

Path Parameters

externalCustomerId
string
required

The customer this check is for — the same id you supplied when registering them through the partner provisioning API.

Body

application/json
clientOrderId
string
required

The idempotency key you supplied when calling POST /orders — the correlation key for this check, since it's generated by you and already known to you before this call happens.

amountCents
integer
required

The minimum amount, in integer cents, you must already have reserved — the order's cost (price × quantity) plus the worst-case (taker-rate) fee at placement. On a cost-increasing modification it is the order's remaining unfilled quantity × the new price, plus the same worst-case fee, and is only asked when that is larger than the order's current remaining cost. This already covers the maximum fee that order could ever be charged on fill, so no additional buffer is needed on top of it.

externalCustomerId
string
required

The customer this check is for — the same id you supplied when registering them through the partner provisioning API. Also present in the URL path; repeated here so it's directly in the payload you're matching against your own records.

Response

200 - application/json

Respond with a boolean — never your customer's actual balance.

reserved
boolean
required

true when you're already holding at least amountCents in reserve for this clientOrderId. false rejects the order/modification — DimeTrades never instructs you to reserve; it only asks whether you already have.