# White Label API Integration - SELL Flow

### Business Integration Manual — Sell Flow

**Prod Environment:** `https://api.coindisco.com`<br>

**Sandbox Environment:** `https://api-staging.coindisco.com`<br>

**API Key Example:** `YOUR_API_KEY`

All requests require your **partner API key** in the header:

```
partner-api-key: YOUR_API_KEY
```

***

## 1. Introduction

This guide explains how to integrate Coindisco’s **White-Label API** to enable a fully branded “Sell Crypto” experience within your own product. The integration allows partners to control user experience, while Coindisco handles provider connections, quotes, and purchase flows behind the scenes.

***

## 2. Detailed Integration Flow

The Sell flow is the same as the Buy flow. Each step below explains the **business logic** followed by the **API request** required to implement it.

{% stepper %}
{% step %}

### Retrieve Active Providers

Partners begin by fetching a list of currently active fiat-to-crypto providers supported by Coindisco. Display this list in your UI to allow users to see available onramp providers.

```bash
curl --location 'https://api.coindisco.com/api/white-label/v1/active-providers/' --header 'partner-api-key: YOUR_API_KEY'
```

Response example:

```bash
[
    {
       "id": 1, // service_id
       "name": "MoonPay", // service name
       "slug_name": "moonpay", // service slug name
       "icon": "https://api-staging.coindisco.com/media/service_integration/Service/moonpay.png",
       "url_for_transaction_details": "https://buy-sandbox.moonpay.com/transaction_receipt?transactionId=", // service transaction details
       "url_for_support": "https://support.moonpay.com/hc/en-gb/requests/new", // service support link
       "domain": "buy.moonpay.io", // service domain
       "privacy": "https://www.moonpay.com/legal/privacy_policy", // service privacy page
       "terms": "https://www.moonpay.com/legal/terms_of_use", // service terms page
       "sell_available": true // service sell available
   }
]
```

{% endstep %}

{% step %}

### Retrieve Available Regions

Use this endpoint to display or automatically detect the user’s region. You can pre-select the region using the user’s IP or browser settings.

```bash
curl --location 'https://api.coindisco.com/api/white-label/v1/regions/' --header 'partner-api-key: YOUR_API_KEY'
```

Response example:

```bash
[
   {
       "id": 264, // region id
       "letter_id": "aland-islands", // unique code
       "kind": "country", // region kind
       "name": "Åland Islands", // region name
       "alpha2_code": "AX", // ISO 3166-1 code for countries
       "alpha3_code": "ALA", // ISO 3166-1 code for countries
       "icon": "https://api-staging.coindisco.com/media/service_integration/Region/AX.png", // icon
       "parent_region": null, // parent region
       "child_exists": false, // nested regions exists
       "default": false, // is default
       "states": [] // nested regions
   }
]
```

{% endstep %}

{% step %}

### Retrieve Payment Methods

Once the region is known, retrieve payment methods available in that region. Optionally, filter methods by a specific provider using `service_id`.

```bash
curl --location 'https://api.coindisco.com/api/white-label/v1/regions/{{region_id}}/payment-methods/?service_id={{service_id}}' --header 'partner-api-key: YOUR_API_KEY'
```

Display these methods to the user (e.g., card, bank transfer, Apple Pay).

Response example:

```bash
[
   {
       "id": 147, // payment method id
       "letter_id": "bank_transfer", // payment method unique alphabetical code
       "code": "bank_transfer", // payment method code
       "name": "Bank Transfer", // payment method name
       "icon": "https://api-staging.coindisco.com/media/service_integration/PaymentMethod/bank_transfer.png",
       "sell_available": true // is payment method available for sell
   }
]
```

{% endstep %}

{% step %}

### Retrieve Fiat Currencies

Get the list of supported fiat currencies for the selected region and provider. This determines what base currencies (USD, EUR, GBP, etc.) the user can use.

```bash
curl --location 'https://api.coindisco.com/api/white-label/v1/regions/{{region_id}}/currencies/?service_id={{service_id}}' --header 'partner-api-key: YOUR_API_KEY'
```

Response example:

```bash
[
   {
       "id": 1,
       "name": "EUR",
       "symbol": "€",
       "icon": "https://api-staging.coindisco.com/media/currencies/icons/EUR.png",
       "is_popular": true,
       "full_name": "Euro",
       "rate": 0.8574000865,
       "default": false
   }
]
```

{% endstep %}

{% step %}

### Retrieve Cryptocurrencies

Fetch the list of cryptocurrencies available for purchase and their supported networks. Display them as user options in your Buy screen.

```bash
curl --location 'https://api.coindisco.com/api/white-label/v1/cryptocurrency/?service_id={{service_id}}' --header 'partner-api-key: YOUR_API_KEY'
```

Response example:

```bash
{
   "next": "https://api-staging.coindisco.com/api/white-label/v1/cryptocurrency/?cursor=cD0xMA==&favorites=false&ordering=rank&service_id=1", // link for the next page
   "previous": null, // link for the prev page
   "results": [
       {
            "id": 1, // cryptocurrency id
            "letter_id": "bitcoin", // cryptocurrency unique alphabetical code
            "name": "Bitcoin", // cryptocurrency name
            "symbol": "BTC", // cryptocurrency symbol
            "code": "btc", // cryptocurrency code
            "rank": 1, // cryptocurrency rank
            "logo": "https://s3.amazonaws.com/cdn-staging.coindisco.com/currencies/logo/btc_bitcoin.png",
            "issuer": null, // cryptocurrency issuer or smart contract
            "home_domain": null, // cryptocurrency home domain
            "networks": [] // available networks
        }
    ]
}
```

{% endstep %}

{% step %}

### Request Sell Quotes

Once the user selects all parameters (region, payment method, currency, crypto, amount), request a quote to calculate estimated crypto amount and fees.

```bash
curl 'https://api.coindisco.com/api/white-label/v1/search-sell-quotes/' \
  -X POST \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'partner-api-key: pk_prod_XXXXXXXXX' \
  --data-raw '{"region":157,"currency":3,"network":7,"payment_method":39,"cryptocurrency":1,"cryptocurrency_amount":"0.05"}'
```

Response example:

```json
{"search_id":"12312312-1231-1231-1231-123123123123"}
```

{% endstep %}

{% step %}

### Retrieve Search Results and Display Offers

Poll for search results every few seconds using the `search_id`. When the status becomes `completed`, present the list of available offers to the user for comparison.

```bash
curl 'https://api.coindisco.com/api/white-label/v1/search-sell-quotes/e0070884-d502-44ba-93c2-ee77101897cb/' \
  --compressed \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'partner-api-key: pk_prod_XXXXXXXXX' \
```

Response example:

```json
{
  "status": "completed",
  "progress": {
    "objects_done": 1,
    "objects_total": 1
  },
  "data": [
    {
      "is_kyc_ready": false,
      "is_recommended": false,
      "is_best_success_rate": false,
      "has_been_used_before": false,
      "currency_amount": "94.05",
      "cryptocurrency_amount": "0.05",
      "total_fee": "4.94",
      "payment_method": {
        "id": 39,
        "letter_id": "debit_card",
        "code": "debit_card",
        "name": "Debit card",
        "icon": "https://s3.amazonaws.com/cdn.coindisco.com/media/service_integration/PaymentMethod/debit_card.png",
        "category": "Cards",
        "category_display_name": "Cards",
        "category_code": "credit_debit_card",
        "category_icon": "https://s3.amazonaws.com/cdn.coindisco.com/static/service_integration/categories_pm/credit_debit_card.png",
        "category_description": "Popular choice"
      },
      "currency": {
        "id": 3,
        "name": "USD",
        "symbol": "$",
        "icon": "https://s3.amazonaws.com/cdn.coindisco.com/media/currencies/icons/USD.png",
        "is_popular": true,
        "full_name": "United States Dollar",
        "rate": null
      },
      "cryptocurrency": {
        "id": 2,
        "letter_id": "eth",
        "name": "Ethereum",
        "symbol": "ETH",
        "rank": 2,
        "logo": "https://s3.amazonaws.com/cdn.coindisco.com/currencies/logo/eth_ethereum.png"
      },
      "region": {
        "id": 157,
        "letter_id": "poland",
        "kind": "country",
        "name": "Poland",
        "alpha2_code": "PL",
        "alpha3_code": "POL",
        "icon": "https://s3.amazonaws.com/cdn.coindisco.com/media/service_integration/Region/PL.png",
        "parent_region": null,
        "child_exists": false
      },
      "service": {
        "id": 1,
        "name": "MoonPay",
        "slug_name": "moonpay",
        "icon": "https://s3.amazonaws.com/cdn.coindisco.com/media/service_integration/Service/moonpay.png",
        "main_color_1": "#AB6AFF",
        "main_color_2": "#7715F5",
        "url_for_transaction_details": "https://buy.moonpay.com/transaction_receipt?transactionId=",
        "url_for_support": "https://support.moonpay.com/hc/en-gb/requests/new",
        "domain": "buy.moonpay.io",
        "privacy": "https://www.moonpay.com/legal/privacy_policy",
        "terms": "https://www.moonpay.com/legal/terms_of_use",
        "sell_available": true,
        "discount_percent": null,
        "discount_percent_sell": null,
        "is_sumsub_enabled": true,
        "is_sumsub_ready": true,
        "proxy_of_service": null
      },
      "base_currency": {
        "id": 3,
        "name": "USD",
        "symbol": "$",
        "icon": "https://s3.amazonaws.com/cdn.coindisco.com/media/currencies/icons/USD.png",
        "is_popular": true,
        "full_name": "United States Dollar",
        "rate": null
      },
      "profit_rate": 1881,
      "true_fee": 8.378875997311278,
      "quote_id": null,
      "nokyc": false,
      "is_best_rate": false
    }
  ],
  "search_id": "e0070884-d502-44ba-93c2-ee77101897cb",
  "amount_suggestions": {}
}
```

Each offer includes details about provider, total amount, fee, and whether KYC is required.
{% endstep %}

{% step %}

### Generate the Sell Link

Once the user chooses a provider, request a buy link to redirect them to the provider’s payment flow. You must include all previously selected parameters in the request.

```bash
curl 'https://api.coindisco.com/api/white-label/v1/retrieve-sell-link/' \
  -X POST \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'partner-api-key: pk_prod_XXXXXXXXX' \
  --data-raw '{"region":157,"service":14,"currency":3,"cryptocurrency":2,"network":5,"payment_method":39,"cryptocurrency_amount":"0.05"}'
```

Response example:

```json
{
"link":"https://api.coindisco.com/api/service-integration/retrieve-redirect-link/?transaction-id=12312312-1231-1231-1231-123123123123",
"transaction_id":"12312312-1231-1231-1231-123123123123"}
}
```

Redirect the user to this link to complete the transaction.
{% endstep %}
{% endstepper %}

***

## 3. Best Practices

* Always validate user inputs before calling API.
* Cache provider and region data for faster UI loading.
* Detect region automatically when possible.
* Poll quote results until `status = completed`.
* Use official provider URLs only — never construct links manually.
* For production, ensure secure key storage and HTTPS communication.

***

## 4. Summary of Endpoints

<table><thead><tr><th width="65">#</th><th>Purpose</th><th width="375">Endpoint</th><th>Method</th></tr></thead><tbody><tr><td>1</td><td>Get active providers</td><td><code>/api/white-label/v1/active-providers/</code></td><td>GET</td></tr><tr><td>2</td><td>Get regions</td><td><code>/api/white-label/v1/regions/</code></td><td>GET</td></tr><tr><td>3</td><td>Get payment methods</td><td><code>/api/white-label/v1/regions/{region_id}/payment-methods/</code></td><td>GET</td></tr><tr><td>4</td><td>Get currencies</td><td><code>/api/white-label/v1/regions/{region_id}/currencies/</code></td><td>GET</td></tr><tr><td>5</td><td>Get cryptocurrencies</td><td><code>/api/white-label/v1/cryptocurrency/</code></td><td>GET</td></tr><tr><td>6</td><td>Search buy quotes</td><td><code>/api/white-label/v1/search-buy-quotes/</code></td><td>POST</td></tr><tr><td>7</td><td>Retrieve search results</td><td><code>/api/white-label/v1/search-buy-quotes/{search_id}/</code></td><td>GET</td></tr><tr><td>8</td><td>Retrieve buy link</td><td><code>/api/white-label/v1/retrieve-buy-link/</code></td><td>POST</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coindisco.gitbook.io/coindisco/api-integration/white-label-api-integration-sell-flow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
