# Payouts concept

## General

Payouts refer to sending cryptocurrency and token transactions from either your fiat or cryptocurrency accounts on the Txn platform to external wallets and recipients. Payouts typically include the amount, currency, payment network, and receiving wallet address of a payout recipient. Txn processes each payout request immediately to broadcast a cryptocurrency or token transaction on the relevant network as soon as possible, meaning we do not batch multiple payout requests to process them at once.

When sending payout requests, merchants need to consider the fees deducted either from the payout amount or the merchant account balance before a transaction gets broadcast - the **payout fees** and **network fees**.

* The **payout fee** is the platform fee that the Txn platform charges for providing services
* The **network fee** is a fee taken by the Txn platform to cover blockchain fees. Txn doesn't control the blockchain fees required by miners; hence, we can only update the network fee settings on our side in a timely manner to keep it around the average blockchain fee necessary for including transactions in the next block. Please expect network fees to update over time without prior notification

## Fees

Merchants can use the `absorbPayoutFee` and `absorbNetworkFee` boolean parameters in their payout requests to control how both the payout fee and network fee are deducted.&#x20;

Fees can either be:

* **Absorbed by the merchant** (deducted from their account balance), or
* **Deducted from the payout amount**, reducing the amount the recipient receives.

### Examples

#### **Case 1**

`absorbPayoutFee = true`  and  `absorbNetworkFee = true`

Both fees are absorbed by the merchant, ensuring the recipient receives the full intended payout amount.

Formul&#x61;**:**

```ini
amountCharged = payoutAmount + payoutFee + networkFee * rate
paidAmount = payoutAmount / rate
```

#### **Case 2**

`absorbPayoutFee = false`  and  `absorbNetworkFee = false`

Both fees are deducted from the payout amount. The recipient receives less cryptocurrency by the combined impact of both fees.

Formula:

```ini
amountCharged = payoutAmount
paidAmount = (payoutAmount - payoutFee) / rate - networkFee
```

**Case 3**

`absorbPayoutFee = true`  and  `absorbNetworkFee = false`

The merchant absorbs the payout fee, but the network fee is deducted from the payout amount.

Formula:

```ini
amountCharged = payoutAmount + payoutFee
paidAmount = payoutAmount / rate - networkFee
```

#### **Case 4**

`absorbPayoutFee = false`  and  `absorbNetworkFee = true`

The payout fee is deducted from the payout amount, reducing the payout amount. The merchant absorbs the network fee.

Formula:

```ini
amountCharged = payoutAmount + networkFee * rate
paidAmount = (payoutAmount - payoutFee) / rate
```

Regardless of the selected option, we strongly encourage merchants to thoroughly test payouts in our Sandbox environment before going live. Additionally, it’s advisable to cross-check transaction data from an accounting and reconciliation perspective to ensure your Finance and Reconciliation teams understand how transactions and fees are processed.

Here’s a concise comparison table summarizing all combinations of `absorbPayoutFee` and `absorbNetworkFee`, including who pays which fee and how it affects the recipient:

<table data-header-hidden data-full-width="true"><thead><tr><th></th><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>absorbPayoutFee</strong></td><td><strong>absorbNetworkFee</strong></td><td><strong>Who Pays Payout Fee</strong></td><td><strong>Who Pays Network Fee</strong></td><td><strong>amountCharged</strong></td><td><strong>paidAmount</strong></td></tr><tr><td><strong>true</strong></td><td><strong>true</strong></td><td>Merchant (account balance)</td><td>Merchant (account balance)</td><td><code>payoutAmount + payoutFee + networkFee * rate</code></td><td><code>payoutAmount / rate</code></td></tr><tr><td><strong>false</strong></td><td><strong>false</strong></td><td>Recipient (deducted from payout)</td><td>Recipient (deducted from crypto)</td><td><code>payoutAmount</code></td><td><code>(payoutAmount - payoutFee) / rate - networkFee</code></td></tr><tr><td><strong>true</strong></td><td><strong>false</strong></td><td>Merchant (account balance)</td><td>Recipient (deducted from crypto)</td><td><code>payoutAmount + payoutFee</code></td><td><code>payoutAmount / rate - networkFee</code></td></tr><tr><td><strong>false</strong></td><td><strong>true</strong></td><td>Recipient (deducted from payout)</td><td>Merchant (account balance)</td><td><code>payoutAmount + networkFee * rate</code></td><td><code>(payoutAmount - payoutFee) / rate</code></td></tr></tbody></table>

## Payout Limits

Another thing to consider is the minimum and maximum limits for payout amounts. You can refer to [Payout Limitations](https://docs.txn.io/payouts/payout-limitations).

## Address Validation

Upon receiving a payout request, the Txn platform automatically validates the receiving wallet address format and also evaluates its risk level to ensure a payout will not be sent to a wallet connected to illegal activities or involves any sanctions-related risks for the Txn merchant. In either case, the payout request is rejected by the Txn platform straight away.

To make the customer experience even smoother for your end-users, we recommend using the [Validate Address](https://docs.txn.io/payouts/validating-addresses) endpoint before creating crypto payouts.

Quick example:

1. Collect a wallet address from your customer
2. Make a call to [validate](https://docs.txn.io/payouts/validating-addresses) the wallet address upfront to ensure your Create Payout call will pass without errors
3. Make a call to [create a payout](https://docs.txn.io/payouts/creating-payout)
