# Moedas e limites

> As 48 moedas aceitas, o mínimo e o máximo por moeda, como a cotação do dia muda os limites e como o seu saldo é creditado.

Fonte: https://app.thronecorporate.com/docs/cartao/moeda

## Como funciona

Você cria a venda **na moeda do comprador** e ele paga nessa moeda: o checkout mostra o valor só nela, e você não mexe no valor no seu site. O saldo da sua conta no Throne é em reais. Por isso, na criação da venda, o Throne fixa a cotação que vai creditar o seu saldo e **não muda mais essa cotação**, mesmo que o comprador pague horas depois. Ela volta como `fx_rate` quando a venda é paga.

Vale igual para Sterling, Imperium, NovaCorp, Eminence, Apex, ShadowBank e Vortex.

## Moedas aceitas

São **48 moedas**:

```text
brl usd eur gbp chf aud cad nzd jpy sgd hkd mxn ars clp cop pen uyu pyg bob dop gtq crc pab aed sar zar
nok sek dkk pln czk huf ron try ils krw inr cny thb myr idr php twd vnd ngn egp kes mad
```

- `currency` aceita maiúsculas ou minúsculas.
- Moedas **sem casa decimal**: JPY, KRW, VND, CLP, HUF, TWD e PYG. Nelas, `amount_cents` é a unidade inteira (¥ 5000 = `5000`), sem multiplicar por 100.
- Moeda fora da lista: `422 currency_not_supported`.
- Cotação momentaneamente indisponível: `422 fx_unavailable`, com o header `Retry-After: 60`. Nada foi criado; espere e tente de novo com uma `Idempotency-Key` nova.

## Mínimo e máximo

O mínimo e o máximo de uma venda dependem da adquirente e **variam com a moeda e com a cotação do dia**: o mesmo limite fica um pouco diferente de um dia para o outro na moeda do comprador.

- **Mínimo**: baixo, e algumas adquirentes têm um mínimo próprio, maior. Abaixo dele, `422 invalid_amount` com o mínimo já escrito na moeda que você mandou (por exemplo, "Valor abaixo do mínimo aceito: CHF 0,80.") e no campo `min_amount_cents`.
- **Máximo**: depende da adquirente. Acima dele, `422 invalid_amount` com `max_amount_cents` na moeda que você mandou e `alternatives` com as outras adquirentes habilitadas que aceitam o valor.
- **Limite do campo**: `amount_cents` vai de 50 a 100.000.000 na menor unidade da moeda. Fora disso, erro de campo (`422` com `errors.amount_cents`). Em moedas de valor baixo (como IDR, COP, VND e ARS), esse limite do campo pode chegar antes do máximo da adquirente.

Para saber o mínimo e o máximo de hoje, já na moeda do seu público:

```bash
curl "https://app.thronecorporate.com/api/v1/elements/acquirers?currency=chf" \
  -H "Authorization: Bearer $THRONE_PK:$THRONE_SK" \
  -H "Accept: application/json"
```

Cada adquirente da lista traz `limits.min_amount_cents` e `limits.max_amount_cents` em francos. Detalhes em [Escolher a adquirente](/docs/cartao/escolher#adquirentes-habilitadas-e-limites).

## Como a cotação muda o máximo

O máximo de cada adquirente acompanha a cotação do dia. Na moeda do comprador, ele sobe ou desce um pouco de um dia para o outro. Na prática:

- Um produto de CHF 300,00 pode ficar abaixo do máximo de uma adquirente numa semana e acima dele na outra, sem você mudar nada.
- Preços longe do máximo não sentem a diferença.
- Para tíquetes altos, consulte `GET /elements/acquirers?currency=` uma vez por dia, ou trate o `422 invalid_amount` criando com o `acquirer` de uma das `alternatives`.

## Exemplo em franco suíço

O comprador paga CHF 49,90: você manda `amount_cents: 4990` e `currency: "chf"`, e é esse valor, em francos, que ele vê no botão de pagar. Na venda paga você recebe:

| Campo | Valor | O que é |
|---|---|---|
| `currency` | `"CHF"` | A moeda da venda, a do comprador |
| `native_amount_cents` | `4990` | A venda na moeda do comprador |
| `amount_cents` | `31237` | O valor bruto creditado no seu saldo, em reais (a moeda da sua conta) |
| `fx_rate` | `"6.26000000"` no webhook, `6.26` no `GET` | A cotação usada para creditar o seu saldo, fixada na criação: reais por 1 unidade da moeda da venda |

`net_amount_cents` é o que entra de fato, já descontada a taxa de cartão da sua conta.

## O que o comprador vê e paga

- O checkout mostra o valor só na moeda do comprador (por exemplo, em francos no botão de pagar), e é nessa moeda que ele paga.
- Na fatura do cartão, a compra aparece sem o nome da sua loja.
- Na NovaCorp e na Eminence, o banco do comprador pode pedir uma confirmação da compra (código por SMS, aplicativo do banco). Na NovaCorp ela abre numa página segura; na Eminence, dentro do próprio elemento.

Vale avisar isso ao lado do botão de pagar, para o comprador não estranhar. Textos sugeridos estão nos guias da [NovaCorp](/docs/cartao/novacorp#o-que-o-comprador-ve) e da [Eminence](/docs/cartao/eminence#o-que-o-comprador-ve).

## No seu saldo

A venda entra no seu saldo em reais, como saldo a liberar, já descontada a taxa de cartão da sua conta. A resposta `201` só repete a moeda e o valor que você mandou (`display`). `amount_cents`, `net_amount_cents` e `fx_rate` aparecem quando a venda é paga, no webhook `transaction.paid` e em `GET /transactions/{id}`.
