> For the complete documentation index, see [llms.txt](https://docs.txn.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.txn.io/payouts/confirming-payout-draft-optional.md).

# Confirming payout draft (Optional)

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

Confirms a payout draft and queues it for broadcast. The draft transitions from `draft` to `processing` — the same end state as the [direct create endpoint](/payouts/creating-payout.md). Once confirmed, the payout cannot be recalled.

{% hint style="info" %}
The `txid` field is `null` immediately after confirmation and is populated once the transaction is broadcast. Poll [Read Payout](/payouts/reading-payout.md) to track progress.
{% endhint %}

**cURL**

{% code overflow="wrap" %}

```bash
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 <api_key>'
```

{% 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>Always <code>payouts</code>.</td></tr><tr><td>data.attributes.reference</td><td>string</td><td>Your internal correlation key, as set at creation.</td></tr><tr><td>data.attributes.status</td><td>string</td><td>Always <code>processing</code> after confirmation. See <a href="/pages/ISxxub0HyhX1k8q53l50">Payout Status Flow</a>.</td></tr><tr><td>data.attributes.address</td><td>string</td><td>Recipient's wallet address.</td></tr><tr><td>data.attributes.createdAt</td><td>string</td><td>ISO 8601 timestamp of when the draft was created.</td></tr><tr><td>data.attributes.expiresAt</td><td>string</td><td>ISO 8601 timestamp of when the draft rate lock expired.</td></tr><tr><td>data.attributes.absorbFees</td><td>boolean</td><td>Deprecated. Use <code>absorbPayoutFee</code> and <code>absorbNetworkFee</code> instead.</td></tr><tr><td>data.attributes.absorbPayoutFee</td><td>boolean</td><td>If <code>false</code>, the payout fee was deducted from the amount the recipient received. If <code>true</code>, the fee was charged to your account balance.</td></tr><tr><td>data.attributes.absorbNetworkFee</td><td>boolean</td><td>If <code>false</code>, the network fee was deducted from the amount the recipient received. If <code>true</code>, the fee was charged to your account balance.</td></tr><tr><td>data.attributes.amount</td><td>number</td><td>Payout amount in <code>currency</code>.</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>Currency code of the cryptocurrency sent to the recipient.</td></tr><tr><td>data.attributes.payAmount</td><td>string</td><td>Amount of cryptocurrency sent to the recipient.</td></tr><tr><td>data.attributes.txid</td><td>string</td><td>On-chain transaction hash. <code>null</code> immediately after confirmation — populated once the transaction is broadcast.</td></tr><tr><td>data.attributes.payNetwork</td><td>string</td><td>Network code of the cryptocurrency sent. See <a href="/pages/SA7q0b6VrvXO3W09TQfS">Supported Currencies</a>.</td></tr><tr><td>data.attributes.payNetworkName</td><td>string</td><td>Human-readable network name, e.g. <code>Ripple</code>.</td></tr><tr><td>data.attributes.networkFee</td><td>string</td><td>Network fee amount in <code>networkFeeCurrency</code>.</td></tr><tr><td>data.attributes.networkFeeCurrency</td><td>string</td><td>Currency of the network fee.</td></tr><tr><td>data.attributes.payoutFee</td><td>string</td><td>Txn service fee amount in <code>payoutFeeCurrency</code>.</td></tr><tr><td>data.attributes.payoutFeeCurrency</td><td>string</td><td>Currency of the Txn service fee.</td></tr><tr><td>data.attributes.displayFee</td><td>string</td><td>Payout fee expressed in <code>currency</code>.</td></tr><tr><td>data.attributes.displayFeeCurrency</td><td>string</td><td>Currency of <code>displayFee</code>. Always matches <code>currency</code>.</td></tr><tr><td>data.attributes.amountCharged</td><td>string</td><td>Total amount debited from your account, including all fees, in <code>amountChargedCurrency</code>.</td></tr><tr><td>data.attributes.amountChargedCurrency</td><td>string</td><td>Currency of <code>amountCharged</code>. Matches <code>chargeCurrency</code>.</td></tr><tr><td>data.attributes.payChargeRate</td><td>string</td><td>Exchange rate between <code>payCurrency</code> and <code>amountChargedCurrency</code> applied by Txn.</td></tr><tr><td>data.attributes.payChargeRateCurrency</td><td>string</td><td>Quote currency of <code>payChargeRate</code>.</td></tr><tr><td>data.attributes.exchangeRate</td><td>string</td><td>Exchange rate between <code>payCurrency</code> and <code>currency</code> applied by Txn.</td></tr><tr><td>data.attributes.paymentMethod</td><td>string</td><td>Payment method used: <code>on_chain</code> or <code>binance_pay</code>.</td></tr><tr><td>data.attributes.receiverBinanceId</td><td>string</td><td>Recipient's Binance ID. Present only for <code>binance_pay</code> payouts.</td></tr><tr><td>data.attributes.approvalStatus</td><td>string</td><td>Approval workflow status. Always <code>null</code> for API-created payouts.</td></tr><tr><td>data.attributes.binanceStatus</td><td>string</td><td>Binance Pay processing status. Present only for <code>binance_pay</code> payouts.</td></tr></tbody></table>

**Response**

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

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.txn.io/payouts/confirming-payout-draft-optional.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
