Generate API Keys
Begin testing your QuickSedis merchant integration in minutes. Use your dashboard to generate test environment credentials and query assets instantly.
Portal
Merchant Login
Generate test and live keys from your dashboard.
Endpoint
Assets
Read supported crypto assets and networks.
Endpoint
Rates
Fetch buy and sell rates in a simple envelope.
Integrate live QuickSedis rates
Use merchant API keys to fetch supported assets and QuickSedis buy/sell rates for GHS. Build with test keys first, then switch to live keys when your account is approved.
Security warning: API keys carry significant privileges. Keep them server-side and never place live keys in browser JavaScript, public repositories, or mobile apps.
Guides / Integration
Authentication
Every merchant API request must include your raw Bearer secret token in the HTTP Authorization header. Full secrets are shown only once after generation.
| Header Key | Type | Value Example |
|---|---|---|
| Authorization | String | Bearer qs_test_... |
Response Structure
Responses
All responses returned by the QuickSedis Merchant API adhere to a standard envelope structure, including a `success` boolean, a payload container `data`, and a unique `request_id` context tracer.
Response Envelope Fields
- success: A boolean indicating whether the operation succeeded.
- data: The payload of the response containing the requested objects.
- request_id: A string uniquely identifying the execution context (extremely helpful for debugging).
Error Handling
Errors
When validation fails or an API key constraint is violated, the API returns a structured error envelope. Be sure to check the exact `error_code` provided.
| HTTP Status | Code | Scenario |
|---|---|---|
| 401 Unauthorized | INVALID_API_KEY, API_KEY_REVOKED, | Bearer token is missing or incorrect. API key has been revoked |
| 422 Unprocessable | VALIDATION_ERROR | Required payload data properties are missing. |
| 403 Forbidden | IP_NOT_ALLOWED, MERCHANT_PENDING, MERCHANT_SUSPENDED, | Your live key is restricted to specific IPs. Merchant is not active, Merchant is pending approval |
| 409 Forbidden | ORDER_UNAVAILABLE, RATE_UNAVAILABLE | Your live key is restricted to specific IPs. |
| 500 Server Error | INTERNAL_ERROR | Unable to create order. Merchant API is not ready |
Endpoint Reference
Supported Assets
Returns the full set of cryptocurrency assets configured for your account along with their respective supported transfer networks (e.g. TRC20, ERC20, BEP20).
/api/v1/merchant/assets
Endpoint Reference
Fetch Rates
Call the rates endpoint to obtain current buy and sell prices. If no search parameter is specified, rates for all configured tokens are returned. Provide a query param `crypto_type` to filter rates down to a single asset.
/api/v1/merchant/rates
Endpoint Reference
Create a Quote
Acquire a temporary, lock-in quote for a transaction before finalising an order. You must provide either `amount_local` or `amount_crypto` in your JSON request, and the API will compute the balance according to current exchange valuations.
2
3
4
5
6
Endpoint Reference
Create an Order
Commit and settle a quote into an active, processable transaction order. In buy flows, the order handles payment collection; in sell flows, deposit addresses are returned to accept inbound block transfers.
Buy Order Path
POST /api/v1/merchant/orders/buy
Sell Order Path
POST /api/v1/merchant/orders/sell
| Flow | Required Customer Fields | Result |
|---|---|---|
| Buy | customer.wallet_address customer.payment_phone customer.payment_channel_type |
Creates a pending QuickSedis payment order for the customer to pay locally, then receive crypto. |
| Sell | customer.source_wallet_address customer.payout_method.account_number |
Creates a pending deposit order, returns the platform deposit address, and records the customer's MoMo or bank payout account. |
Buy Payment Collection
Use payment_channel_type 1 for MTN, 6 for Telecel Cash, or 7 for AT Money. Test keys initialize Payment at GHS 1.00; live keys use the quoted amount.
Mobile Money Payout
Use channel_type 1 for MTN, 6 for Telecel Cash, or 7 for AT Money.
Bank Payout
Use type: "bank" with channel_type: "2", then provide the customer's bank account number and account name.
2
3
4
5
6
7
8
9
10
11
Endpoint Reference
Verify Crypto Address
Validate a customer wallet against the selected cryptocurrency and transfer network before creating an order. The asset and network must match a pair returned by the Supported Assets endpoint.
/api/v1/merchant/addresses/verify
Sample JSON Body
application/json{
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"crypto_type": "USDT",
"network": "TRC20"
}
| Field | Required | Description |
|---|---|---|
| address | Yes | The destination wallet address supplied by the customer. |
| crypto_type | Yes | Asset symbol such as USDT, USDC, BTC, ETH, SOL, or LTC. |
| network | Yes | Canonical network code returned by Supported Assets, for example TRC20 or ERC20. |
Result semantics
A correctly processed verification returns HTTP 200 even when the wallet is invalid. Read data.valid before accepting the address. Missing fields or unsupported asset/network pairs return HTTP 422.
Endpoint Reference
Verify Order Status
Check the current processing state of a buy or sell order. Pending buy orders verify the payment reference before returning the latest state. Pending sell orders verify the deposit on QuickSedis, using Tron checks for TRC20 and deposit matching for supported assets. Test keys simulate completion.
Status Lookup Path
GET /api/v1/merchant/orders/status?merchant_reference=ref-order-buy-24901
| Query | Required | Notes |
|---|---|---|
| merchant_reference | Recommended | Your unique order reference sent during Create Order. |
| reference | Optional fallback | QuickSedis platform reference returned as data.reference when the order was created. |
Buy Statuses
pending_payment, payment_received, completed, or failed. In live mode, confirmed payments trigger crypto release. In test mode, release is simulated.
Sell Statuses
pending_deposit, completed, or failed.
Endpoint Reference
List Orders
Fetch recent merchant orders using optional filters for type, status, search text, page, and limit. Use this for dashboards and reconciliation screens.
List Path
GET /api/v1/merchant/orders?status=pending_deposit&limit=10
Filters
Supported filters are type, status, search, page, and limit.
Sample Type Values
| Value | Use |
|---|---|
| buy | Customer pays local currency and receives crypto. |
| sell | Customer deposits crypto and receives local currency. |
Sample Status Values
| Value | Matches |
|---|---|
| pending_payment | Pending buy orders. |
| pending_deposit | Pending sell orders. |
| payment_received | Buy orders where local payment is confirmed. |
| completed | Completed buy or sell orders. Combine with type to narrow the result. |
| failed | Orders that could not be completed. |
| cancelled | Orders cancelled before confirmation. |
Endpoint Reference
Order Detail
Retrieve one order with the same verification behavior as the status endpoint. Prefer merchant_reference; use reference as a fallback for the QuickSedis platform reference.
Detail Path
GET /api/v1/merchant/orders/detail?merchant_reference=ref-order-buy-24901
Endpoint Reference
Submit Deposit Hash
For sell orders, submit the customer crypto transaction hash after they transfer funds. QuickSedis stores the hash and checks the deposit before returning the latest state.
Deposit Hash Path
POST /api/v1/merchant/orders/deposit-hash
Sample JSON Body
application/json{
"merchant_reference": "ref-order-sell-24901",
"tx_hash": "8b7f6c0a9e4d2f1b3c5a6d8e9f1023456789abcdef0123456789abcdef0123"
}
Allowed State
Only pending sell orders can accept a deposit hash.
Endpoint Reference
Cancel Order
Cancel a buy or sell order before any payment or crypto deposit has been confirmed. Completed, received, sent, failed, and already cancelled orders cannot be cancelled.
Cancel Path
POST /api/v1/merchant/orders/cancel
Sample JSON Body
application/json{
"merchant_reference": "ref-order-buy-24901"
}
Allowed State
Internally, only orders with raw status pending are cancellable.
Endpoint Reference
Retry Payment
Re-initiate QuickSedis payment collection for a pending buy order when the original payment prompt needs to be sent again.
Retry Path
POST /api/v1/merchant/orders/retry-payment
Sample JSON Body
application/json{
"merchant_reference": "ref-order-buy-24901",
"payment_channel_type": "1"
}
Allowed State
Only pending buy orders can retry payment. Sell orders and completed buy orders return an error.
Security Policies
Key Handling Rules
You must keep your keys safe. Always treat keys as sensitive authorization assets to prevent fraud and account balance leakage.
- Prefix Identification: Use prefix tokens `qs_test_` only for staging sandboxes, and prefix tokens `qs_live_` strictly inside production deployments.
- No Client exposure: Do not place your credentials in public repositories, frontend JavaScript codebases, or mobile device bundle structures.
- Revocation and Cycles: Immediately cycle your API keys in case they are disclosed. Keep access restricted by utilizing server-side environment variables.