# Confirming payout draft

<mark style="color:green;">`PUT`</mark> `/api/public/v1/payouts/:id`

This endpoint confirms a payout draft by its ID and sends the funds to the network.

***

{% hint style="info" %}
It takes a few seconds to build and broadcast a transaction upong your payout draft confirmation, so please expect some delay before a `txId` value appears. We advise polling the [GET /api/public/v1/payouts/:id](https://docs.txn.io/payouts/reading-payout) endpoint to monitor both the payout status and the txId.
{% endhint %}

***

**cURL**

{% code overflow="wrap" %}

```json
## Confirm payout draft

curl -X "PUT" "https://api.sandbox.txn.io/api/public/v1/payouts/6ecebf80-b210-413b-b396-df4760d142c5" \
     -H 'Content-Type: application/vnd.api+json' \
     -H 'Authorization: Bearer '
```

{% endcode %}

**Headers**

<table><thead><tr><th width="320">Name</th><th>Value</th></tr></thead><tbody><tr><td>Content-Type</td><td><code>application/vnd.api+json</code></td></tr><tr><td>Authorization</td><td><code>Bearer &#x3C;api_key></code></td></tr></tbody></table>

**Response Body**

<table><thead><tr><th>Name</th><th width="96">Type</th><th>Description</th></tr></thead><tbody><tr><td>data.id</td><td>string</td><td>Payout ID.</td></tr><tr><td>data.type</td><td>string</td><td>Aways <code>payouts</code>.</td></tr><tr><td>data.attributes.reference</td><td>string</td><td>The custom reference ID to tie the payout to end-user who gets paid. This can be anything you choose.</td></tr><tr><td>data.attributes.status</td><td>string</td><td>Payout status. Refer to <a href="payout-status-flow">Payout Status Flow</a>.</td></tr><tr><td>data.attributes.address</td><td>string</td><td>Wallet address of a payout recipient.</td></tr><tr><td>data.attributes.createdAt</td><td>string</td><td>Payout creation timestamp.</td></tr><tr><td>data.attributes.absorbFees</td><td>boolean</td><td>This parameter is deprecated. Use both <code>absorbPayoutFees</code> and <code>absorbNetworkFee</code> instead.</td></tr><tr><td>data.attributes.absorbPayoutFee</td><td>boolean</td><td>If false, the payout  fee is deducted from the transaction amount. If true, the payout fee is deducted from the merchant account balance.</td></tr><tr><td>data.attributes.absorbNetworkFee</td><td>boolean</td><td>If false, the network  fee is deducted from the transaction amount. If true, the network fee is deducted from the merchant account balance.</td></tr><tr><td>data.attributes.amount</td><td>number</td><td>Payout amount.</td></tr><tr><td>data.attributes.currency</td><td>string</td><td>Payout amount currency code.</td></tr><tr><td>data.attributes.payCurrency</td><td>string</td><td>The code of a token or cryptocurrency transferred to the receiving address.</td></tr><tr><td>data.attributes.payAmount</td><td>string</td><td>The amount of tokens or cryptocurrency transferred to the receiving address.</td></tr><tr><td>data.attributes.txid</td><td>string</td><td>The token or cryptocurrency transaction hash. This is effectively a unique identifier of a transaction on a relevant blockchain. You can share it with the receipient as a proof of payment.</td></tr><tr><td>data.attributes.payNetwork</td><td>string</td><td>Refer to <a href="../api-basics/supported-currencies">Supported Currencies</a>.</td></tr><tr><td>data.attributes.payNetworkName</td><td>string</td><td>Network name. E.g. Tron (TRC20).</td></tr><tr><td>data.attributes.networkFee</td><td>string</td><td>Network fee amount.</td></tr><tr><td>data.attributes.networkFeeCurrency</td><td>string</td><td>Network fee currency.</td></tr><tr><td>data.attributes.payoutFee</td><td>string</td><td>Payout fee amount.</td></tr><tr><td>data.attributes.payoutFeeCurrency</td><td>string</td><td>Payout fee currency.</td></tr><tr><td>data.attributes.displayFee</td><td>string</td><td>Fee associated with the payout represented in data.attributes.currency. For example, if the payout currency is TRY, the fee is also expressed in TRY.</td></tr><tr><td>data.attributes.displayFeeCurrency</td><td>string</td><td>Fee associated with the payout represented in data.attributes.currency. For example, if the payout currency is TRY, the fee is also expressed in TRY.</td></tr><tr><td>data.attributes.amountCharged</td><td>string</td><td>The amount deducted from the merchant's account.</td></tr><tr><td>data.attributes.amountChargedCurrency</td><td>string</td><td>The amount deducted from the merchant's account.</td></tr><tr><td>data.attributes.payChargeRate</td><td>string</td><td>Pay currency to charge currency exchange rate applied by Txn. E.g., XRP/EUR.</td></tr><tr><td>data.attributes.payChargeRateCurrency</td><td>string</td><td>Pay currency to charge currency exchange rate applied by Txn.</td></tr><tr><td>data.attributes.exchangeRate</td><td>string</td><td>Pay currency to currency exchange rate applied by Txn. E.g., XRP/TRY.</td></tr><tr><td>data.attibutes.paymentMethod</td><td>string</td><td>Payment method used for the payout.</td></tr><tr><td>data.attibutes.receiverBinanceId</td><td>string</td><td>Recipient's Binance ID.</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="HTTP 201" %}

```json
{
  "data": {
    "id": "6ecebf80-b210-413b-b396-df4760d142c5",
    "type": "payouts",
    "attributes": {
      "address": "rLsBa2vWV2uuPx2UKbocAZG2WHXoaGyMPf?dt=61",
      "expiresAt": "2026-04-01T07:00:21.932Z",
      "createdAt": "2026-04-01T06:59:51.932Z",
      "absorbFees": null,
      "absorbPayoutFee": true,
      "absorbNetworkFee": false,
      "paymentMethod": "on_chain",
      "receiverBinanceId": null,
      "binanceStatus": null,
      "approvalStatus": null,
      "reference": "c5d423bb-3b08-44ba-9816-0ac633ef6081",
      "status": "processing",
      "amount": "1000.00",
      "currency": "TRY",
      "payCurrency": "XRP",
      "payAmount": "15.022334",
      "payNetwork": "txrp",
      "payNetworkName": "Ripple",
      "txid": null,
      "networkFee": "1.000000",
      "networkFeeCurrency": "XRP",
      "payoutFee": "0.22",
      "payoutFeeCurrency": "USD",
      "displayFee": "10.00",
      "displayFeeCurrency": "TRY",
      "exchangeRate": "62.412880924926",
      "amountCharged": "22.70",
      "amountChargedCurrency": "USD",
      "payChargeRate": "1.403066",
      "payChargeRateCurrency": "USD"
    },
    "relationships": {
      "accountCharged": {
        "data": {
          "type": "accounts",
          "id": "80b8dd61-35bc-49cc-9e04-f2c0f741a096"
        }
      },
      "author": {
        "data": {
          "type": "apiKeys",
          "id": "b56961f4-46cf-4e60-bb32-b36addb09f66"
        }
      }
    }
  },
  "included": [
    {
      "id": "80b8dd61-35bc-49cc-9e04-f2c0f741a096",
      "type": "accounts",
      "attributes": {
        "master": true,
        "currencyCode": "USD",
        "label": "master",
        "bankReference": "BDR3455470827278341",
        "balance": "423.98",
        "totalBalance": null,
        "bankWithdrawalAvailable": false,
        "bankDepositAvailable": true,
        "transferAvailable": true,
        "currencyType": "fiat"
      },
      "relationships": {
        "company": {
          "meta": {
            "included": false
          }
        },
        "networks": {
          "meta": {
            "included": false
          }
        },
        "txnBankCredentials": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "b56961f4-46cf-4e60-bb32-b36addb09f66",
      "type": "apiKeys",
      "attributes": {
        "name": "Test API key",
        "createdAt": "2024-06-17T19:41:33.398Z"
      }
    }
  ],
  "meta": {},
  "jsonapi": {
    "version": "1.0"
  }
}
```

{% endtab %}

{% tab title="HTTP 422" %}

```json
{
  "errors": [
    {
      "status": 422,
      "title": "amount is below minimum",
      "detail": "amount: 10.0, minimum: 50.00",
      "code": "amount_below_minimum"
    }
  ]
}

// Amount too low.
```

{% endtab %}

{% tab title="HTTP 422" %}

```json
{
  "errors": [
    {
      "status": 422,
      "title": "amount is above maximum",
      "detail": "amount: 500000.0, maximum: 100000.00",
      "code": "amount_above_maximum"
    }
  ]
}

// Amount too high.
```

{% endtab %}

{% tab title="HTTP 422" %}

```json
{
  "errors": [
    {
      "status": 422,
      "title": "Invalid address",
      "code": "invalid_address"
    }
  ]
}

// Invalid address format.
```

{% endtab %}

{% tab title="HTTP 422" %}

```json
{
  "errors": [
    {
      "status": 422,
      "title": "Invalid attribute",
      "detail": "Reference has already been taken",
      "code": "payout_invalid",
      "source": {
        "pointer": "/data/attributes/externalId"
      }
    }
  ]
}

// Duplicate reference.
```

{% endtab %}

{% tab title="HTTP 422" %}

```json
{
  "errors": [
    {
      "status": 422,
      "title": "account has insufficient balance",
      "code": "account_has_insufficient_balance"
    }
  ]
}

// Your source account has insufficient funds.
```

{% endtab %}

{% tab title="HTTP 422" %}

```json
{
  "errors": [
    {
      "status": 422,
      "title": "We couldn’t send funds to this address, please try another address",
      "code": "address_has_high_risk_score"
    }
  ]
}

// Destination wallet address risk profile is too high.
```

{% endtab %}
{% endtabs %}
