Skip to main content
For error codes, see Error codes. For terminology, see the Glossary.

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 return 403 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 include ttl_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/fulfill uses the order reference (ORD-…) and is optional — payment is auto-detected.
  • Quote and order legs use currency (plus network on crypto legs).
  • Verify webhooks against the raw request body.