# Fees and Disbursement


> Understand transaction amounts, fees, refunds, and disbursement.

Canonical: https://docs.chiwapay.com/fees-disbursement

## Amount Fields

| Field | Description |
| --- | --- |
| `amount` | Order amount from the merchant. |
| `fee_amount` | Payment fee. |
| `total_amount` | Amount the customer must pay. |
| `net_amount` | Amount recorded for the merchant. |

## Fee Example

| Fee payer | `amount` | `fee_amount` | `total_amount` | `net_amount` |
| --- | ---: | ---: | ---: | ---: |
| `buyer` | 100000 | 700 | 100700 | 100000 |
| `merchant` | 100000 | 700 | 100000 | 99300 |

## Refund Calculation

Provider refunds currently apply to GoPay transactions. The ShopeePay Partner SDK has no refund operation.

Refunds are sent to the provider for the customer-paid amount (`total_amount`).
The customer receives the full refund, while the merchant settlement balance is still reduced by `fee_amount` as the transaction service fee.

| Fee payer | Customer pays | Main refund amount | Notes |
| --- | --- | --- | --- |
| `buyer` | `amount + fee_amount` | `amount + fee_amount` | The customer-paid amount is refunded through the provider; `fee_amount` still reduces merchant settlement. |
| `merchant` | `amount` | `amount` | `fee_amount` remains the merchant's cost and reduces settlement. |

Possible refund statuses are `refund_processing`, `refund_failed`, and `refunded`.
Refunds with status `refund_processing` can be cancelled, returning the transaction to `paid`.
Refunds with status `refund_failed` or `refunded` cannot be cancelled.

## Disbursement

Fees and settlement policy are configured for each provider and channel pair in the admin catalog. A transaction captures its policy when created; settlement becomes available after the configured delay. The worker processes `automatic` policies, while `manual` policies require an admin action.

Disbursement is handled from the merchant dashboard after the settlement account is approved.
