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

# Códigos QR

> Genera y decodifica códigos QR Pix vía BTG: BR Codes estáticos, cobros inmediatos COB y con vencimiento COBV, payloads EMV y el decodificador universal de códigos QR.

El Plugin Pix Indirecto (BTG) genera y gestiona códigos QR Pix (BR Codes) para que tus clientes puedan recibir pagos. El plugin admite cuatro tipos de código QR: BR Codes estáticos, cobros inmediatos (COB), cobros con vencimiento (COBV) y un decodificador para la iniciación de pagos.

Todos los códigos QR siguen la especificación EMV QCO e incorporan la clave Pix del receptor. Antes de crear un código QR, la clave receptora debe existir en DICT. La cuenta solicitante debe ser titular de la clave. Identificas la cuenta con el header `X-Account-Id`. Consulta la [guía de DICT](/es/interfaces/pix-btg/indirect-pix-dict) para el registro de claves.

# Elegir un tipo de código QR

***

| Tipo                       | Características                                                                                  | Mejor para                                                                             |
| -------------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- |
| **Estático**               | Reutilizable (varios pagos) · monto opcional (fijo o ingresado por el pagador) · sin vencimiento | Pantallas POS, material impreso, donaciones, comercio electrónico con montos variables |
| **Inmediato (COB)**        | Pago único · monto obligatorio · vencimiento en segundos                                         | Checkout, facturación, compras únicas                                                  |
| **Con vencimiento (COBV)** | Pago único · monto + cargos · fecha de vencimiento + período de gracia                           | Facturas, cuotas, suscripciones, facturación B2B (tipo boleto)                         |
| **Decodificar**            | Lee cualquier código QR escaneado                                                                | Iniciar un pago desde un código escaneado                                              |

# Códigos QR estáticos

***

Los BR Codes estáticos (`/v1/brcode/static`) son reutilizables. Distintos pagadores pueden pagar el mismo código muchas veces. Cada código se vincula a una clave Pix y, opcionalmente, a datos del comercio.

**Monto fijo frente a variable:**

* **Con monto**: el pagador escanea y confirma un valor predefinido. Útil para artículos de precio fijo.
* **Sin monto**: el pagador escanea e ingresa el valor manualmente. Útil para donaciones o checkout abierto.

Puedes agregar datos del comercio al código: `merchant.name`, `merchant.city`, `merchant.categoryCode` (MCC) y `merchant.postalCode`. También puedes agregar un `txId` opcional (alfanumérico, hasta 25 caracteres) para la conciliación. Si omites los datos del comercio, el plugin los completa con los datos del titular en el CRM.

```json theme={null}
POST /v1/brcode/static
X-Account-Id: 01989f9e-6508-79f8-9540-835be49fbd0d
{
  "receiverKey": "+5511999999999",
  "amount": "100.00",
  "description": "Payment for order #12345",
  "txId": "TX123ABC",
  "merchant": { "name": "Loja ABC", "city": "São Paulo", "categoryCode": "5411" }
}
→ 201 Created  { "id": "...", "emv": "00020126580014br.gov.bcb.pix..." }
```

Pasa `include_base64=true` para recibir también un PNG del código QR codificado en Base64. El plugin valida que la cuenta sea titular de la clave receptora antes de crear el código.

**Referencia:** [Crear un código QR estático](/es/reference/interfaces/pix-btg/create-a-static-qr-code) · [Listar](/es/reference/interfaces/pix-btg/list-static-qr-codes) · [Consultar](/es/reference/interfaces/pix-btg/retrieve-a-static-qr-code)

# Cobros inmediatos (COB)

***

Los cobros inmediatos (`/v1/collections/immediate`), o cobrança imediata, son códigos QR dinámicos de un solo uso. Cada cobro define un monto específico y una ventana de validez corta. Un `txId` obligatorio identifica cada cobro. Un pagador puede liquidar un cobro solo una vez.

**Campos obligatorios:** `amount`, `expirationSeconds`, `receiverKey` y `txId`. Los campos opcionales `debtorName` y `debtorDocument` identifican al pagador previsto.

**Ciclo de vida:**

| Estado      | Significado                       |
| ----------- | --------------------------------- |
| `ACTIVE`    | Creado y disponible para el pago  |
| `COMPLETED` | Pago recibido con éxito           |
| `EXPIRED`   | La ventana de validez transcurrió |
| `DELETED`   | Cancelado por el comercio         |

Cuando creas un cobro, el plugin programa una tarea de vencimiento. Después de que transcurre `expirationSeconds`, el cobro pasa a `EXPIRED` y ningún pagador puede liquidarlo. Puedes actualizar (`PUT`) o eliminar (`DELETE`) un cobro solo mientras esté en `ACTIVE`.

**Confirmación del pago:** cuando un Pix entrante liquida el cobro, el plugin lo pasa a `COMPLETED`. Luego el plugin emite un webhook para notificar a tu sistema en tiempo real. Consulta la [guía de Webhooks](/es/interfaces/pix-btg/indirect-pix-webhooks) y la [guía de Cobros](/es/interfaces/pix-btg/indirect-pix-collections) para el flujo de pago completo.

**Referencia:** [Crear un cobro inmediato](/es/reference/interfaces/pix-btg/create-an-immediate-charge) · [Listar](/es/reference/interfaces/pix-btg/list-immediate-charges) · [Consultar](/es/reference/interfaces/pix-btg/retrieve-immediate-charge-details) · [Actualizar](/es/reference/interfaces/pix-btg/update-an-immediate-charge) · [Eliminar](/es/reference/interfaces/pix-btg/delete-an-immediate-charge)

# Cobros con vencimiento (COBV)

***

Los cobros con vencimiento (`/v1/collections/duedate`), o cobrança com vencimento, son códigos QR dinámicos para facturación con fecha de vencimiento, como un boleto. Admiten reglas de monto complejas. Requieren datos completos del deudor y del receptor.

**Campos principales:** `dueDate`, `validAfterDue`, un `debtor` obligatorio y un objeto `amount`. El campo obligatorio `validAfterDue` define los días que el cobro sigue siendo pagable después del vencimiento. El `debtor` necesita un nombre y un CPF o CNPJ. También acepta email, address, city, state y zipCode opcionales. El objeto `amount` contiene el valor `original` y componentes de cargo opcionales:

| Componente  | Modalidad                                                  | Aplicación                         |
| ----------- | ---------------------------------------------------------- | ---------------------------------- |
| `fine`      | `FIXED_VALUE` o `PERCENT`                                  | Penalización por pago atrasado     |
| `interest`  | por ejemplo, `PERCENTAGE_PER_MONTH_CALENDAR_DAYS`          | Se acumula después del vencimiento |
| `discount`  | una modalidad con un valor, o un array `discountDateFixed` | Beneficio por pago anticipado      |
| `abatement` | `FIXED_VALUE` o `PERCENT`                                  | Reducción sobre el monto           |

El momento del pago determina el valor final. Antes del vencimiento, el pagador recibe el descuento que corresponda. En la fecha de vencimiento, se aplica el monto `original`. Después del vencimiento, el plugin suma la multa y los intereses, y luego resta la reducción que corresponda. Un descuento con fecha (`discountDateFixed`) necesita una `date` anterior a `dueDate`.

El plugin requiere un documento válido del deudor (CPF o CNPJ). Mantiene el cobro pagable hasta la fecha de vencimiento más `validAfterDue` días.

**Referencia:** [Crear un cobro con vencimiento](/es/reference/interfaces/pix-btg/create-a-dynamic-charge-with-due-date) · [Listar](/es/reference/interfaces/pix-btg/list-dynamic-charges-with-due-date) · [Consultar](/es/reference/interfaces/pix-btg/retrieve-dynamic-charge-with-due-date-details) · [Actualizar](/es/reference/interfaces/pix-btg/update-a-dynamic-charge-with-due-date)

# Decodificar códigos QR

***

El decodificador (`POST /v1/qrcodes/decode`) analiza cualquier código QR Pix escaneado. Devuelve los datos de pago incorporados. Úsalo en flujos de iniciación de pago. Un cliente escanea un código QR, y tú lees el receptor, el monto y los detalles del cobro antes de confirmar el pago.

El plugin detecta automáticamente el tipo de código QR y devuelve una respuesta tipada:

* **STATIC**: clave receptora, monto/descripción opcionales, información del comercio, `txId`.
* **IMMEDIATE (COB)**: todos los campos estáticos más monto obligatorio, vencimiento, estado y número de revisión.
* **DUE\_DATE (COBV)**: todos los campos inmediatos más fecha de vencimiento, `validAfterDue`, deudor, receptor y la estructura completa de multa/intereses/descuento.

Para los códigos dinámicos, el plugin resuelve el payload desde BTG antes de responder. La respuesta refleja el estado actual del cobro.

```json theme={null}
POST /v1/qrcodes/decode
X-Account-Id: 01989f9e-6508-79f8-9540-835be49fbd0d
{ "emv": "00020126580014br.gov.bcb.pix..." }
→ 200 OK  { "type": "IMMEDIATE", "amount": "100.00", "receiverKey": "...", "status": "ACTIVE" }
```

**Referencia:** [Decodificar un código QR Pix](/es/reference/interfaces/pix-btg/decode-a-pix-qr-code)

# Próximos pasos

***

* [Cobros](/es/interfaces/pix-btg/indirect-pix-collections): Ciclo de vida del cobro, vinculación de pagos y eventos de webhook
* [DICT](/es/interfaces/pix-btg/indirect-pix-dict): Registrar las claves Pix con las que reciben tus códigos QR
* [Webhooks](/es/interfaces/pix-btg/indirect-pix-webhooks): Notificaciones de pago y de estado
