Handling Payout Fees
Overview
When initiating a payout via the Payout API, you can control how fees are distributed between the merchant and the payout recipient using the feePaymentMode field.
feePaymentMode is an enum parameter that determines who bears each type of fee for a given payout. There are two types of fees involved in every payout:
- Processing fee (
processingFee) — Confirmo's PSP fee - Network fee (
computedNetworkFee) — the blockchain transaction fee
Available modes
MERCHANT — Merchant pays all fees (default)
- The merchant is charged the full requested amount plus all fees. The recipient receives exactly the requested amount.
RECIPIENT — Recipient pays all fees
- The merchant is only debited the requested amount. Both the processing fee and network fee are deducted from the amount sent to the recipient.
NETWORK_FEE_RECIPIENT — Split fees
- The merchant pays the processing fee, while the network (blockchain) fee is deducted from the amount sent to the recipient. This mode is useful when merchants want to absorb the predictable PSP cost but pass on the variable blockchain fee to the end user.
API Response
After a payout is created, the following fields in the API response reflect how fees were applied:
debitAmount: Total amount deducted from the merchant's Confirmo balance
processingFee: Confirmo PSP fee
computedNetworkFee: Blockchain network fee
fee: Total fee (processingFee + networkFee) — always shown regardless of mode
Reconciling fee payment modes with API response
MERCHANT: debitAmount = requestedAmount + processingFee + networkFee
- Sent amount = requested amount in payout
RECIPIENT: debitAmount = requestedAmount
- Sent amount = requested amount in payout -
processingFee-networkFee
NETWORK_FEE_RECIPIENT: debitAmount = requestedAmount + processingFee
- Sent amount = requested amount in payout -
networkFee
The
feePaymentModefield replaces the legacytreatAsGrossAmountboolean. Both fields are still supported, but we recommend usingfeePaymentModegoing forward as it offers more granular control. If both fields are sent in the same request,feePaymentModetakes precedence.
Updated about 2 hours ago
