# Especificações de Impressão de Recibos

As regras de conformidade exigem que dados específicos sejam impressos nos recibos com base no tipo de transação. Esta referência descreve os campos obrigatórios e as regras de formatação.

## 1. Recibo de Venda Padrão

Você deve imprimir os seguintes campos recebidos no payload de notificação:

1. **Cabeçalho:** Nome do Estabelecimento, Código do Estabelecimento (`comercio`), Número do Terminal (`terminal`).
2. **Detalhes do Cartão:** PAN Mascarado (`tarjetaClienteRecibo`).
3. **Transação:** Data, Hora, Valor, Moeda.
4. **Referências:** Código de Autorização (`Aut`), ID do Pedido (`Ped`).
5. **Caixa de Assinatura:** Obrigatório por padrão, a menos que sinalizadores (flags) de exceção específicos estejam presentes (veja abaixo).

## 2. Requisitos Específicos do Cartão

### AMEX (American Express)

Se o campo `marcaTarjeta` for `8` (AMEX), você deve incluir dados adicionais:

* **Data de Validade:** Você **deve** imprimir a data de validade do cartão (ex.: `Cad: 12/49`).
* **Logotipo:** Recomenda-se imprimir o logotipo da American Express no cabeçalho do recibo se a sua impressora suportar gráficos.

## 3. Requisitos EMV (Chip)

Se a resposta contiver tags EMV, elas deverão ser impressas no recibo para comprovar a verificação do chip:

* **Rótulo da Aplicação (`etiquetaApp`):** ex.: `VISA CLASSIC`
* **AID (`idapp`):** ex.: `A0000000031010`
* **Núm. Trans. (`conttrans`):** Contador de transação.
* **Cód. Resp. (`codrespauto`):** Código de resposta da autorização.

## 4. Exceções: Quando Ignorar a Assinatura

A linha de assinatura (e a Via do Estabelecimento do recibo) pode ser omitida **apenas** se sinalizadores específicos estiverem presentes na resposta.

### Condições

* **`reciboOpcional` = `TRUE`**:
    * **Significado:** O sistema indica que a impressão do recibo é opcional (ex.: fluxo de recibo digital).
    * **Ação:** Você pode pular totalmente a impressão de **ambas** as vias (Estabelecimento e Cliente).

* **`ReciboSoloCliente` = `TRUE`**:
    * **Significado:** O sistema recomenda imprimir apenas a via do Cliente.
    * **Ação:** **Não** imprima a caixa de assinatura. Opcionalmente, você pode pular totalmente a impressão da Via do Estabelecimento.

* **`autenticadoPorPin` = `TRUE`**:
    * **Significado:** O usuário verificou a transação via PIN.
    * **Ação:** **Não** imprima a caixa de assinatura. Em vez disso, imprima o texto fornecido no objeto `Literales` (ex.: `Literales.autenticadoPorPin`).

* **`operContactLess` = `TRUE`**:
    * **Significado:** O cartão foi aproximado (NFC).
    * **Ação:** Imprima o **Símbolo de Contactless**. Se a sua impressora não suportar gráficos, imprima o texto fornecido no objeto `Literales` ou um texto padrão como "Op. Contactless".

## 5. Dynamic Currency Conversion (DCC)

Se a transação envolveu conversão de moeda, você deve imprimir o **texto exato** fornecido no objeto `Literales` para cumprir as regulamentações financeiras.

**Layout Obrigatório:**

1. **Aviso Legal:** Imprima o bloco `Literales.literal` (ex.: "I accept that I have been offered a choice...").
2. **Detalhes do Câmbio:** Itere e imprima as linhas de `Literales.datosDCC`:
    * `linLitTrans`: "TRANSACTION CURRENCY"
    * `linLitDivisa`: Valor na Moeda Estrangeira (ex.: `USD 16.37`)
    * `linCambio`: Taxa de Câmbio (ex.: `1 USD = 0.85 EUR`)
    * `linMarkUp`: Texto do markup (ex.: `INCLUDES 2.0% MARK-UP`)

## 6. Recibos de Estorno

**Requisito Obrigatório:**

Ao contrário das vendas, **os Recibos de Estorno devem sempre incluir uma caixa de assinatura** na Via do Cliente.

* **Motivo:** O Estabelecimento deve assinar ou carimbar este recibo para reconhecer ao cliente que os fundos foram devolvidos.