Lock a USDT/KES rate
Returns a single-use, time-limited quote. Quotes are only issued off a live rate — a degraded rate source returns 503 rather than a locked rate we could not honour.
Authorization
partner-key In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/quotes" \ -H "Content-Type: application/json" \ -d '{ "side": "buy" }'{ "quoteId": "f1c0a5d2-3b4e-4a71-9c8d-0e1f2a3b4c5d", "side": "sell", "kesAmount": "1281000.00", "usdtAmount": "10000.000000", "rate": "128.10", "expiresAt": "2026-08-31T09:31:30.000Z", "settlementEstimateSeconds": 21600}Service status GET
Previous Page
Create a buy order (KES in, USDT out) POST
Consumes a buy quote and returns the payment instructions — where to send the KES, how much, by when, and the payment reference we issue for this order. The reference is ours, not yours: that is what makes attribution exact rather than guessed. Delivery is asynchronous: nothing is sent until your payment is received and the order reaches a terminal state. Register a webhook endpoint rather than assuming a create means the trade is done. Retry-safe: creating twice with the same partnerReference returns the original order rather than a second one. On the mpesa rail the reference cannot be transmitted (M-PESA carries no narration field), so keep it in your own records — we attribute a Pay Bill payment by the Account Number plus the amount. On the bank rails, put it in the narration.