> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cbpayapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fees

> How each service is charged and where to check your terms

Fees are configured by CBPay per **service, country and asset**. When
nothing is configured for a combination, the fee is **0**.

## How payouts and payins are charged

FX pricing lives in **your exchange rate**: the rates you see in
`GET /v1/rates` are your rates, and they are exactly the ones used at
execution — no separate percentages. Each country carries both sides:

* `rate` — the rate for your **payouts** (dispersals). If you disperse the
  equivalent of 100 USDT, you are debited **100 USDT plus the fixed fee**
  (when configured for your account).
* `payin_rate` — the rate for your **payins** (fiat collections/deposits).
  The credit is the local amount converted at that rate, **minus the fixed
  fee** (when configured for your account).

```
payout:  usdt_amount   = local_amount / rate
         total_debit   = usdt_amount + fixed_amount
payin:   usdt_gross    = local_amount / payin_rate
         usdt_credited = usdt_gross − fixed_amount
```

What the beneficiary receives (payout) or what you are credited (payin)
depends on your account's rates for that country. Quoted = charged, always.

## Services with fixed or percent fees

| Service                  | How it is charged                                                | When                                                                                                                                       |
| ------------------------ | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `payout`                 | Fixed per operation (FX pricing is already in your rate)         | At payout creation (included in `total_debit`)                                                                                             |
| `payin`                  | Fixed per operation (FX pricing is already in your `payin_rate`) | On credit (you receive `usdt_gross − fee`)                                                                                                 |
| `funding`                | `%` over the deposit + fixed                                     | When the on-chain deposit is credited                                                                                                      |
| `withdrawal`             | `%` over the withdrawal + fixed                                  | At creation (included in `total_debit`)                                                                                                    |
| `wallet_creation`        | Fixed per wallet                                                 | On every wallet creation (persons: 1 per network; companies: unlimited). Fetching existing wallets is always free                          |
| `wallet_import`          | Fixed per import                                                 | When importing an external wallet into a [segregated wallet](/en/guides/segregated-wallets) (`POST /v1/segregated-wallets/import`)         |
| `wallet_export`          | Fixed per export                                                 | When exporting a segregated wallet's private key (`POST /v1/segregated-wallets/{id}/export`)                                               |
| `wallet_send`            | Fixed per send                                                   | When sending on-chain from a segregated wallet (`POST /v1/segregated-wallets/{id}/sends`); network gas is on the client                    |
| `compliance_person`      | Fixed per call                                                   | When AML-screening a person (`POST /v1/aml/screenings`)                                                                                    |
| `compliance_company`     | Fixed per call                                                   | When AML-screening a company                                                                                                               |
| `compliance_rescreen`    | Fixed per call                                                   | When re-running an AML screening                                                                                                           |
| `compliance_monitoring`  | Fixed per activation                                             | When enabling continuous AML monitoring (disabling is free)                                                                                |
| `kyc_verification`       | Fixed per verification                                           | When creating a third-party KYC link or submission ([verification](/en/guides/kyc)); your own onboarding is free                           |
| `kyb_verification`       | Fixed per verification                                           | When creating a third-party KYB link or submission                                                                                         |
| `address_screening`      | Fixed per scan                                                   | When assessing a blockchain address' risk ([wallet screening](/en/guides/screenings)); the automatic withdrawal/deposit protection is free |
| `banking_customer`       | Fixed per profile                                                | When creating your banking profile ([banking](/en/guides/banking))                                                                         |
| `banking_account`        | Fixed per account                                                | When opening each bank account                                                                                                             |
| `banking_operation`      | Fixed per payment                                                | When sending each bank payment (quoting with `prepare` is free)                                                                            |
| `card_creation_virtual`  | Fixed per card                                                   | When issuing a virtual card ([cards](/en/guides/cards))                                                                                    |
| `card_creation_physical` | Fixed per card                                                   | When issuing a physical card                                                                                                               |
| `card_monthly`           | Fixed monthly                                                    | Monthly fee per active card (with no balance the card is frozen — no debt)                                                                 |
| `card_cancellation`      | Fixed per card                                                   | When cancelling a card                                                                                                                     |

For `%`-based services the formula is
`fee = ceil(amount × percent / 100) + fixed_amount` (rounded up to the
micro-USDT).

<Note>
  Standalone fixed charges (compliance, KYC/KYB verification, wallet creation
  and banking) are refunded automatically if the upstream operation fails
  (`compliance_refund` / `verification_fee_refund` / `wallet_creation_refund`
  / `wallet_service_refund` / `banking_fee_refund`).
</Note>

## Internal transfers: always free

Transfers between CBPay accounts (`POST /v1/transfers`) carry **no fee**,
regardless of the combination: person↔person, person↔company or
company↔company. The money moves inside the ecosystem.

## Your exchange rate

`GET /v1/rates` returns **your account's own exchange rate** for each
country — the same rates your operations execute at, no surprises: `rate`
for payouts and `payin_rate` for payins (`local_amount / rate = USDT`).

## Check your terms

`GET /v1/rates` returns, along with your rates, the fee configuration
currently applied to your account:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "base": "USD",
  "rates": { "chile": { "currency": "CLP", "rate": "950.25", "payin_rate": "955.10" } },
  "asset_prices": {
    "USDT": { "currency": "USD", "unit": "usdt", "price": "1" },
    "USDC": { "currency": "USD", "unit": "usdc", "price": "1" },
    "BTC": { "currency": "USD", "unit": "btc", "price": "109853.24" },
    "GOLD": { "currency": "USD", "unit": "gram", "price": "107.5341" }
  },
  "fees": [
    {
      "service": "payout",
      "country": "CL",
      "asset": "USDT",
      "percent": "0",
      "fixed_amount": "0.30"
    }
  ]
}
```

`asset_prices` is the **reference** USD price of each virtual balance (to
value them on screen) — it implies no conversion and no spread. The
response also includes a `settlement` block with the **effective price**
per asset if you pay operations from a balance other than USDT
([money model](/en/concepts/money-model#choose-which-balance-pays)): that
price already includes the conversion margin, so what you see is what
applies.

The charged fee is always explicit in each operation's response (`fee`
field) and in the ledger.

## Full example

A payout equivalent to 100 USDT with `fixed_amount: "0.30"`:

```
usdt_amount = 100 USDT           (local_amount / rate)
fee         = 0.30 USDT          (fixed)
total_debit = 100.30 USDT
```

The beneficiary receives the full local amount you specified; you are
debited the equivalent at your rate plus the fixed fee.

A payin equivalent to 100 USDT with `fixed_amount: "0.30"`:

```
usdt_gross    = 100 USDT         (local_amount / payin_rate)
fee           = 0.30 USDT        (fixed)
usdt_credited = 99.70 USDT
```

The payer pays the exact local amount you specified; you are credited the
equivalent at your `payin_rate` minus the fixed fee.
