> For a complete page index, fetch https://docs.transak.com/llms.txt

# Get Sell Redirect

GET https://api-stg.transak.com/ledger/v1/sell-redirect

Fetch the Transak widget redirect URL using the parameters supplied in Ledger's format.

Use this endpoint after quote generation when you are ready to send the user
into the hosted sell flow.

Reference: https://docs.transak.com/api/ledger-off-ramp/get-sell-redirect

## Servers

- `https://api-stg.transak.com/ledger/v1` (Staging, default)
- `https://api.transak.com/ledger/v1` (Production)

## Request

### Query parameters

- `accountId` (string, required) — Ledger account ID.
- `cryptoCurrency` (string, required) — Ledger ID for the selected crypto currency.
- `fiatCurrency` (string, required) — Selected fiat currency code.
- `cryptoAmount` (string, required) — Selected crypto amount.
- `paymentMethod` (string, required) — Selected Ledger payment method.
- `mode` (string, required) — Selected mode (`buy` or `sell`).
- `bankResidency` (string, required) — User country code in ISO 3166-1 alpha-2 format.
- `ledgerTransactionId` (string, required) — User's Ledger transaction identifier (order ID).

### Headers

- `x-api-key` (string, required) — Transak API key available from the Transak Dashboard.

## Response

### 200

Redirect URL generated successfully.

- `rampRedirectUrl` (string, required) — Redirect URL for launching the Transak sell flow.

## Errors

### 400 Bad Request Error

Missing or invalid request.

- `error` (ErrorResponseError, required)

### 500 Internal Server Error

Internal server error.

- `error` (ErrorResponseError, required)

## Types

### ErrorResponseError

- `messageKey` (string, required)
- `message` (string, required)

## Examples

**Response**

```json
{
  "rampRedirectUrl": "https://global-stg.transak.com/?apiKey=YOUR_API_KEY&environment=staging&productsAvailed=SELL&cryptoAmount=20&fiatCurrency=GBP&network=polygon&paymentMethod=credit_debit_card&cryptoCurrencyCode=USDC&countryCode=GB&partnerOrderId=test-order-id&partnerCustomerId=test-account-id"
}
```

**SDK Code**

```python success
import requests

url = "https://api-stg.transak.com/ledger/v1/sell-redirect"

querystring = {"accountId":"","bankResidency":"","cryptoAmount":"","cryptoCurrency":"","fiatCurrency":"","ledgerTransactionId":"","mode":"","paymentMethod":""}

headers = {"x-api-key": ""}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript success
const url = 'https://api-stg.transak.com/ledger/v1/sell-redirect?accountId=&bankResidency=&cryptoAmount=&cryptoCurrency=&fiatCurrency=&ledgerTransactionId=&mode=&paymentMethod=';
const options = {method: 'GET', headers: {'x-api-key': ''}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go success
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api-stg.transak.com/ledger/v1/sell-redirect?accountId=&bankResidency=&cryptoAmount=&cryptoCurrency=&fiatCurrency=&ledgerTransactionId=&mode=&paymentMethod="

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby success
require 'uri'
require 'net/http'

url = URI("https://api-stg.transak.com/ledger/v1/sell-redirect?accountId=&bankResidency=&cryptoAmount=&cryptoCurrency=&fiatCurrency=&ledgerTransactionId=&mode=&paymentMethod=")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = ''

response = http.request(request)
puts response.read_body
```

```java success
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api-stg.transak.com/ledger/v1/sell-redirect?accountId=&bankResidency=&cryptoAmount=&cryptoCurrency=&fiatCurrency=&ledgerTransactionId=&mode=&paymentMethod=")
  .header("x-api-key", "")
  .asString();
```

```php success
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api-stg.transak.com/ledger/v1/sell-redirect?accountId=&bankResidency=&cryptoAmount=&cryptoCurrency=&fiatCurrency=&ledgerTransactionId=&mode=&paymentMethod=', [
  'headers' => [
    'x-api-key' => '',
  ],
]);

echo $response->getBody();
```

```csharp success
using RestSharp;

var client = new RestClient("https://api-stg.transak.com/ledger/v1/sell-redirect?accountId=&bankResidency=&cryptoAmount=&cryptoCurrency=&fiatCurrency=&ledgerTransactionId=&mode=&paymentMethod=");
var request = new RestRequest(Method.GET);
request.AddHeader("x-api-key", "");
IRestResponse response = client.Execute(request);
```

```swift success
import Foundation

let headers = ["x-api-key": ""]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-stg.transak.com/ledger/v1/sell-redirect?accountId=&bankResidency=&cryptoAmount=&cryptoCurrency=&fiatCurrency=&ledgerTransactionId=&mode=&paymentMethod=")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```