Authentication and signatures
Why do I get an invalid request signature?
The HMAC check failed. Verify each segment of the canonical string:
See Authentication.
Do I need a signature for read-only calls?
pk_* requests need liquidramp-client-id and Authorization: Bearer pk_* — no HMAC. You can also make the same reads with sk_* from your backend; those requests always require liquidramp-timestamp and liquidramp-signature.
Why does my IP get blocked?
If an IP whitelist is configured on your partner profile, other IPs return403 with E_IP_BLOCKED. Update the list in the portal.
KYB and account access
Why do I get “Business account verification is required”?
Quote and order writes require an approved KYB status. Complete KYB in the portal. Read-only routes (reference data, rate preview) do not require KYB.Can I use test keys before KYB approval?
Yes for read-only calls. Creating quotes and orders still requires approval.Do I need to KYC my users?
Yes for onramp and offramp — complete KYC on your end users, preferably through a KYC provider. Liquidramp requires this for regulatory compliance because those flows involve fiat. Swap does not require end-user KYC. Partner KYB in the portal does not replace customer KYC.Quotes and TTL
How long is a quote valid?
Reserved quotes includettl_in_seconds in the response. Create the order before it expires. Expired quotes return 404.
Quote TTL (rate reservation) is separate from pay-in expiry (payin.expires_at on the order).
Should I pass quote_id or inline legs?
Either works. quote_id locks the reserved rate. Inline from/to legs re-price at order time.
Sandbox vs production
Match base URL, keys, and
liquidramp-client-id to the same deployment. Fetch networks and currencies at runtime.
Common issues
POST /orders/:reference/fulfilluses the order reference (ORD-…) and is optional — payment is auto-detected.- Quote and order legs use
currency(plusnetworkon crypto legs). - Verify webhooks against the raw request body.