# Creating Payouts

## Validate Addresses Before Making Requests

Before making an API call to create a payout, we highly recommend pre-validate the destination `address` format to reduce the number of errors.&#x20;

It is recommended because users sometimes submit wrong addresses e.g. xyz - in such a case, the API call will result in the following error message from our API:

```json
{
  "errorList": [
    {
      "parameter": "payOutInstruction",
      "code": "invalidPayout",
      "message": "Invalid Instruction for Payout"
    }
  ]
}
```

Please use the following endpoint to pre-validate addresses before making your `POST` `/api/v1/pay/summary` call:

{% content-ref url="/pages/-MlTixFNY\_crXdpGR3qn" %}
[Validate Address](/api/payouts/validate-address.md)
{% endcontent-ref %}

## Use Unique References

When creating payout transactions, make sure that you use a unique value in the reference field for your POST /api/pay/summary call. Otherwise, the API responds with a relevant error message:

```json
{
  "errorList": [
    {
      "parameter": "reference",
      "code": "unique",
      "message": "Duplicate Reference"
    }
  ]
}
```

## Examples

Below you can see Payout cURL examples for each one of the cryptocurrencies that Coindirect supports.

{% tabs %}
{% tab title="BTC" %}

```json
curl -X "POST" "https://api.sandbox.coindirect.com/api/v1/pay/summary" \
     -H 'Authorization: Hawk id="cs32OwgPsxZIB642vqiclSFGBClYJ9LjVpq7n8xFKoytc8Fn9xRZBAuUQ4uRvOMe", ts="1635329987", nonce="hUynKW", mac="NdMhfo+IKhSrkLEpH94WtEMtjL1YVq1+lRxDChSZXfU="' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "amount": 40,
  "currency": "EUR",
  "reference": "c0a1a9ce-ce38-4c6e-aafb-8eba2d9cd38e",
  "type": "OUT",
  "merchantId": "9a57c17a-1eef-48ff-83d0-b5892c99f767",
  "payOutDetails": {
    "address": "n35VHa8NZj7mtqQApxsyh1hiCjrGHkojwU",
    "currency": "BTC",
    "code": "crypto"
  }
}'
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="ETH" %}

```json
curl -X "POST" "https://api.sandbox.coindirect.com/api/v1/pay/summary" \
     -H 'Authorization: Hawk id="cs32OwgPsxZIB642vqiclSFGBClYJ9LjVpq7n8xFKoytc8Fn9xRZBAuUQ4uRvOMe", ts="1635330255", nonce="0T7Ynn", mac="WpvsRJmKIgS/2xaM5Sfj7U7Tr3cuRFHaxIcT/A4ugP8="' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "amount": 40,
  "currency": "EUR",
  "reference": "df58eff9-76bc-4fd7-b7a5-3bdfbb003c95",
  "type": "OUT",
  "merchantId": "9a57c17a-1eef-48ff-83d0-b5892c99f767",
  "payOutDetails": {
    "address": "0xc70a3deb2971346544c87e77c1736757e889619f",
    "currency": "ETH",
    "code": "crypto"
  }
}'
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="USDT ERC20" %}

```json
curl -X "POST" "https://api.sandbox.coindirect.com/api/v1/pay/summary" \
     -H 'Authorization: Hawk id="cs32OwgPsxZIB642vqiclSFGBClYJ9LjVpq7n8xFKoytc8Fn9xRZBAuUQ4uRvOMe", ts="1635330335", nonce="8rn3EW", mac="FSQBKhmNS2i7AHJwSseMN4xG9lBmHtL5vtJyplbBEoQ="' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "amount": 40,
  "currency": "EUR",
  "reference": "1cc36035-6003-4ce2-8bd0-1026eb529f1a",
  "type": "OUT",
  "merchantId": "9a57c17a-1eef-48ff-83d0-b5892c99f767",
  "payOutDetails": {
    "code": "crypto",
    "currency": "USDT",
    "protocol": "ERC20",
    "address": "0xc70a3deb2971346544c87e77c1736757e889619f"
  }
}'
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
When creating USDT payouts, please specify the `protool`. Sending USDT to the wrong network will result in a total loss of your funds.
{% endhint %}

{% tabs %}
{% tab title="USDT TRC20" %}

```json
curl -X "POST" "https://api.sandbox.coindirect.com/api/v1/pay/summary" \
     -H 'Authorization: Hawk id="cs32OwgPsxZIB642vqiclSFGBClYJ9LjVpq7n8xFKoytc8Fn9xRZBAuUQ4uRvOMe", ts="1635330425", nonce="nIzpGz", mac="QCSfAy0jAFChtAoGlW8TwfwtjYtcxpfkrABWXilLzVI="' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "amount": 40,
  "currency": "EUR",
  "reference": "458bc2d4-6930-4695-8a2a-98ed8cf5a15f",
  "type": "OUT",
  "merchantId": "9a57c17a-1eef-48ff-83d0-b5892c99f767",
  "payOutDetails": {
    "code": "crypto",
    "currency": "USDT",
    "protocol": "TRC20",
    "address": "TSs236UfPMeKzrjTdUarS6UzhfqEtmnc5N"
  }
}'
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
When creating USDT payouts, please specify the `protool`. Sending USDT to the wrong network will result in a total loss of your funds.
{% endhint %}

{% tabs %}
{% tab title="XRP" %}

```json
curl -X "POST" "https://api.sandbox.coindirect.com/api/v1/pay/summary" \
     -H 'Authorization: Hawk id="cs32OwgPsxZIB642vqiclSFGBClYJ9LjVpq7n8xFKoytc8Fn9xRZBAuUQ4uRvOMe", ts="1635330565", nonce="u7UlKG", mac="0JLDKASX1tuVVWGYSuvu7WAJZK9AuaGRoqo/Mfk+jT0="' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "amount": 40,
  "currency": "EUR",
  "reference": "7a3a3848-d63c-42bb-ac10-a414a6120091",
  "type": "OUT",
  "merchantId": "9a57c17a-1eef-48ff-83d0-b5892c99f767",
  "payOutDetails": {
    "address": "rh6X8bZXE49xZhNwVx47K6Q6px7nDhaAdy?dt=778415029",
    "currency": "XRP",
    "code": "crypto"
  }
}'
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
When creating XRP payouts, please specify a Destination Tag as well by appending to the "address" value via + "?dt=".

If a recipient has no destination tag, just pass `"?dt=0"`

Destination tags indicate the beneficiary or destination for a payment. For example, a payment to an exchange or gateway address can use a destination tag to indicate which customer to credit for the amount of the payment in that business's own systems. A payment to a merchant could indicate what item or cart the payment is buying.

{% endhint %}

{% tabs %}
{% tab title="LTC" %}

```json
curl -X "POST" "https://api.sandbox.coindirect.com/api/v1/pay/summary" \
     -H 'Authorization: Hawk id="cs32OwgPsxZIB642vqiclSFGBClYJ9LjVpq7n8xFKoytc8Fn9xRZBAuUQ4uRvOMe", ts="1635331929", nonce="PbUspr", mac="ygaoiyuVGgDAqbDcteuWhyzP9lotrWQVnjfM3+NWbsc="' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "amount": 40,
  "currency": "EUR",
  "reference": "348ed126-ef2e-4172-92cc-cac40346eb95",
  "type": "OUT",
  "merchantId": "9a57c17a-1eef-48ff-83d0-b5892c99f767",
  "payOutDetails": {
    "address": "n4G35xtFfQTr6SkoGytj2Hin9q5DSVjJWp",
    "currency": "LTC",
    "code": "crypto"
  }
}'
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="BCH" %}

```json
curl -X "POST" "https://api.sandbox.coindirect.com/api/v1/pay/summary" \
     -H 'Authorization: Hawk id="cs32OwgPsxZIB642vqiclSFGBClYJ9LjVpq7n8xFKoytc8Fn9xRZBAuUQ4uRvOMe", ts="1635332133", nonce="fqvmdC", mac="ocp7mmeb6I6RrfqCYlIsWqT9aWlriljqTKt9mqc1aGo="' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "amount": 40,
  "currency": "EUR",
  "reference": "1fe8f8a8-6b2c-4e7b-8cdf-9d3a9e8b3f09",
  "type": "OUT",
  "merchantId": "9a57c17a-1eef-48ff-83d0-b5892c99f767",
  "payOutDetails": {
    "address": "pqkx2ntjpuwcrg9k0lt2m9eud8chne7exu3g539wcs",
    "currency": "BCH",
    "code": "crypto"
  }
}'
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="DAI" %}

```json
curl -X "POST" "https://api.sandbox.coindirect.com/api/v1/pay/summary" \
     -H 'Authorization: Hawk id="cs32OwgPsxZIB642vqiclSFGBClYJ9LjVpq7n8xFKoytc8Fn9xRZBAuUQ4uRvOMe", ts="1635332323", nonce="wFn8YN", mac="zi150NTgWWmBYXobcTF//yoVQGmTkD/IUfAv7FBEwko="' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "amount": 40,
  "currency": "EUR",
  "reference": "ee0f73b2-3518-45cc-a0d2-880e3bdc41b4",
  "type": "OUT",
  "merchantId": "9a57c17a-1eef-48ff-83d0-b5892c99f767",
  "payOutDetails": {
    "address": "0x55b586e96fd4791d9c4e2cb44529e102cefb2a6c",
    "currency": "DAI",
    "code": "crypto"
  }
}'
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="DOGE" %}

```json
curl -X "POST" "https://api.coindirect.com/api/v1/pay/summary" \
     -H 'Authorization: Hawk id="lEHyAT9OIOzcplwnwDRTOZJu9BAG75Zuy82lzZzvh0jsxinXGho1mQJmO1Y50sKY", ts="1635332467", nonce="a1LLAL", mac="oqTXjLwv42Hz+0R4KTeQFHJ17VUrOuAXPhiEJSBCwbA="' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "amount": 40,
  "currency": "EUR",
  "reference": "9c362dd7-dbbf-4aca-8f4b-4aa1e8227c17",
  "type": "OUT",
  "merchantId": "82737577-ae9a-4305-a544-61bef6681f0c",
  "payOutDetails": {
    "address": "D5RKmdm6tjc1vCWMEu4qBwhffk5XdkGkry",
    "currency": "DOGE",
    "code": "crypto"
  }
}'
```

{% endtab %}
{% endtabs %}


---

# 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://developers.coindirect.com/guides/payouts-how-to/creating-payouts.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.
