Use cases

Author profile photo
Team Quickex
August 20, 2025
~2 min read

Below are practical integration scenarios with the Quickex API.
For new integrations, API v2 is recommended (request signing, IP whitelist).
For public storefront data and order tracking, convenient API v1 methods are available.
Do not mix rates obtained from one API version when creating transactions in another.

1) Integrating an exchange on your website

Goal

add an exchange form to the website with currency/network selection, address validation, and order creation.

Endpoints

  • v2: POST /api/v2/instruments/public/validate-address, POST /api/v2/instruments/public/one, GET /api/v2/instruments/public, POST /api/v2/orders/public/create, POST /api/v2/orders/public/set-email
  • v1 (additionally if statuses/storefront are needed): GET /api/v1/instruments/public, GET /api/v1/instruments/public/one, POST /api/v1/instruments/public/validate-address

Flow

  1. Load the catalog of active instruments (currency + network) to build the “Give/Receive” lists.
  2. Upon the user’s selection, request details for the “receive” instrument (precision, memo/tag, limits).
  3. Validate the destination address via validate-address.
  4. Create an order: POST /api/v2/orders/public/create (v2 is recommended). Save the orderId and display the depositAddress to the user.
  5. (Optional) add an email to the order: POST /api/v2/orders/public/set-email — for user notifications.
  6. Display a screen with payment instructions for the depositAddress and a timer.

Errors & Security

  • Block form submission until the address has been successfully validated.
  • Respect requiresMemo/tag — prompt the user to enter a memo/tag if required.
  • For v2 — sign every request and restrict IPs via a whitelist.

2) Fetching and displaying rates

Goal

show the user up-to-date rates for the selected pair.

Endpoints

  • v1: GET /api/v1/rates/public/one — public rate in JSON.

Flow

  1. When the user selects a pair, request the public rate via rates/public/one.
  2. Display the rate, minimum/maximum amounts (if returned), and the freshness timestamp.
  3. (Optional) apply visual “markup” to the showcased rate (see Scenario 4), but do not use the adjusted rate to actually create an order in a different API version.

Recommendations

  • Cache responses for 10–30 seconds to reduce load.
  • Show the last updated time and a “Refresh rate” button.

3) Creating and tracking orders

Goal

create an order and provide the user with a clear execution status.

Endpoints

  • v2: POST /api/v2/orders/public/create, POST /api/v2/orders/public/set-email
  • v1: POST /api/v1/orders/public/create, GET /api/v1/orders/public-info, GET /api/v1/orders/public/latest, POST /api/v1/orders/public/accept-rate-mode-change, POST /api/v1/orders/public/request-refund, GET /api/v1/orders/order-refund-info

Flow (v2 — recommended for creation)

  1. Validate input and the destination address.
  2. Create an order: v2/orders/public/create → obtain orderId, depositAddress.
  3. Offer “Add email”: v2/orders/public/set-email.
  4. Show the user deposit instructions.

Status tracking (storefront and user account)

  • Storefront “latest exchanges”: GET /api/v1/orders/public/latest.
  • Details of a specific order: GET /api/v1/orders/public-info?orderId=...&destinationAddress=... — arrays deposits/withdrawals, confirmations, txId, networkFee.
  • Change of rate mode on demand: POST /api/v1/orders/public/accept-rate-mode-change.
  • Refunds: POST /api/v1/orders/public/request-refund → details via GET /api/v1/orders/order-refund-info.

Notes

  • Store the orderId on your backend and bind it to the user session.
  • For authenticated users, use GET /api/v1/orders/public/list (auth tag) as the personal order dashboard.

4) Checking transaction status

Goal

give the user transparency on the progress of deposits and withdrawals.

Endpoints

  • v1: GET /api/v1/orders/public-info, GET /api/v1/orders/order-refund-info

Flow

  1. Poll public-info periodically by orderId and destinationAddress.
  2. In the deposits[0] block, analyze isPending, confirmations, txId, depositAddress.
  3. When the deposit is confirmed — display withdrawal information from the withdrawals array (amount, networkFee, txId).
  4. In case of a refund — get details via order-refund-info and show the status “Refund in progress/complete”.

Recommendations

  • Polling interval 5–15 seconds, with backoff on 429/5xx.
  • Show a link to a blockchain explorer by txId, if available.
  • Add visual warnings for addresses requiring a memo/tag.
Share this article: