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

# Simulador

> Regras do simulador Billing: valores e cartões de teste para PIX e crédito em sk_test.

Em ambiente de teste (`livemode: false`), use uma **chave de API de teste** para exercitar fluxos sem cobrança real. As regras abaixo definem o comportamento do simulador para **payment links (PIX)** e para **cartão de crédito**.

<Note>
  O simulador aplica-se apenas a integrações em modo de teste. Em produção, as transações seguem os provedores reais.
</Note>

## Simulador de PIX

Para **payment links** pagos com PIX, o valor do link (em **reais, BRL**) determina se o pagamento é **aprovado automaticamente** ou permanece **pendente**. O limite de **R\$ 101,00** é **inclusivo**: valores iguais a 101 reais ou superiores entram no cenário de aprovação automática.

| Valor do payment link (PIX)     | Cenário                                                                                                                                             |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Menor que R\$ 101,00**        | O pagamento permanece **pendente** (`pending`) até concluir o fluxo esperado no seu caso de uso; não há aprovação automática só pelo valor.         |
| **Maior ou igual a R\$ 101,00** | **Caso de sucesso automático:** qualquer operação com esse valor é tratada como aprovada pelo simulador (evolução para **`paid`**, conforme a API). |

## Simulador de cartão de crédito

O simulador normaliza o número do cartão (remove espaços e caracteres não numéricos) e aplica regras pelos **últimos quatro dígitos**. Qualquer PAN que **termine** em `1111`, `2222`, etc. dispara o mesmo cenário — os números abaixo são apenas **exemplos** copiáveis (prefixo de teste comum `424242424242`).

Use **data de validade futura**, **CVV** fictício e tipo `credit_card`, como no [fluxo completo de exemplo](./guides/quickstart).

| Número do cartão (exemplo)              | Cenário                         | Exemplo                                                                                                                                                                        |
| --------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `4242424242421111`                      | Recusa — saldo insuficiente     | Pagamento com **`status`** `failed` e **`refuseReason`** indicando saldo insuficiente (`insufficient_funds`).                                                                  |
| `4242424242422222`                      | Recusa — cartão bloqueado       | **`status`** `failed` e **`refuseReason`** indicando cartão bloqueado (`card_blocked`).                                                                                        |
| `4242424242423333`                      | Recusa — cartão expirado        | **`status`** `failed` e **`refuseReason`** indicando cartão expirado (`card_expired`).                                                                                         |
| `4242424242424444`                      | Recusa — suspeita de fraude     | **`status`** `failed` e **`refuseReason`** indicando suspeita de fraude (`fraud_suspected`).                                                                                   |
| `4242424242425555`                      | Em revisão (análise antifraude) | Pagamento segue em fluxo de **revisão** (análise antifraude); o **`status`** permanece adequado a operação ainda não finalizada (ex.: **`pending`**), até nova atualização.    |
| `4242424242426666`                      | Autorizado sem captura          | Autorização **sem captura automática**: o valor não é capturado como pago neste passo; **`status`** não reflete `paid` até haver captura explícita, se aplicável ao seu fluxo. |
| Outros finais (ex.: `4242424242424242`) | Padrão                          | Com **`capture: true`**: pagamento **aprovado** (**`status`** `paid`). Com **`capture: false`**: apenas **autorizado** (sem concluir como pago até captura).                   |

Para a lista completa de **`status`** e o campo **`refuseReason`**, consulte a [referência de pagamentos](./payments/reference).
