> For the complete documentation index, see [llms.txt](https://docs.loomgate.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.loomgate.io/en/concepts/amounts-and-fees.md).

# Amounts, currencies and fees

Money units, currencies, amount limits, processing fees, bank fees and who pays the fees.

## Units and currencies

* Every amount is an **integer in the currency's smallest unit** (cents): `10000` = 100.00 USD, `125` = 1.25 EUR. Don't use decimals.
* Supported currencies: `usd` and `eur` (lowercase). Any other currency returns `unsupported_currency`.
* The amount the buyer pays (`amount_total`) must be between **100** (1.00) and **99,999,999** (999,999.99). Below that returns `amount_too_small`, above returns `amount_too_large`.

## Fees on a payment

Each payment has two fees, calculated on `amount` according to your fee schedule:

| Field            | Meaning                   |
| ---------------- | ------------------------- |
| `processing_fee` | Payment processing fee    |
| `bank_fee`       | Bank fee, per transaction |

Each fee is either a **percentage** (optionally with a minimum and a maximum) or a **fixed** amount, set separately for each currency. Your fee schedule is set by Loomgate (or your reseller); see it in the **Phí** (Fees) section of the dashboard. Fees are calculated when the payment is created and stay fixed on that payment: later changes to the fee schedule don't affect payments already created.

## Who pays the fees

You choose in the **Cài đặt** (Settings) section of the dashboard (`fee_bearer`). Both fees are always paid by the same party.

{% tabs %}
{% tab title="Buyer pays (buyer)" %}
The fees are added to the amount the buyer pays:

| Field                                | Example                           |
| ------------------------------------ | --------------------------------- |
| `amount`                             | 10000                             |
| `processing_fee`                     | 290                               |
| `bank_fee`                           | 30                                |
| `fee_buyer` = processing + bank      | 320                               |
| `amount_total` = amount + fee\_buyer | **10320** (the buyer pays 103.20) |
| You receive                          | 10000                             |

Show the fee line to the buyer before they pay. The name of the fee line (`label`, default "Processing fee") is set in the **Cài đặt** section. Use [Fee quotes](/en/api-reference/fee-quotes.md) to know the fees before you create a payment (for example on the cart page).

{% hint style="info" %}
Adding fees for the buyer (card surcharging) may be restricted in some markets. You are responsible for complying with the rules where you sell. This fee line is not refunded when you refund (see [Refunds](/en/concepts/refunds.md)).
{% endhint %}
{% endtab %}

{% tab title="You pay (merchant)" %}
The buyer pays exactly `amount`; the fees are deducted from what you receive:

| Field                         | Example                           |
| ----------------------------- | --------------------------------- |
| `amount`                      | 10000                             |
| `fee_buyer`                   | 0                                 |
| `amount_total`                | **10000** (the buyer pays 100.00) |
| `processing_fee` + `bank_fee` | 290 + 30                          |
| You receive                   | 9680                              |

If the total fees are equal to or greater than `amount`, the API returns `amount_too_small`.
{% endtab %}
{% endtabs %}

The numbers above are examples only; actual fees depend on your fee schedule.

## Other fees

* **Refund fee** (`refund_fee`): charged to you for each refund and deducted from your balance. See [Refunds](/en/concepts/refunds.md).
* **Adjustments** (for example when a buyer disputes a payment with their bank): Loomgate records a negative or positive `adjustment` on your balance and sends an `adjustment.created` webhook. See [Balance and unlock times](/en/concepts/balance.md).


---

# 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.loomgate.io/en/concepts/amounts-and-fees.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.
