> ## 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.

# Eventos de Pix Directo vía JD

> CloudEvents emitidos por la integración de Pix Directo vía JD para los ciclos de transacciones, claves DICT y Pix Automático.

La integración de Pix Directo vía JD emite 21 hechos de negocio JSON como CloudEvents 1.0 en modo de contenido binario sobre Kafka. El streaming es opcional. Cuando está habilitado, la integración escribe el estado de negocio y el sobre del evento en el outbox de PostgreSQL dentro de la misma transacción; el relay del outbox es el único publicador al broker.

## Contrato de transporte

| Campo                 | Valor                                             |
| --------------------- | ------------------------------------------------- |
| `ce-source`           | `plugin-br-pix-jd`                                |
| Tópico                | `lerian.streaming.plugin-br-pix-jd`               |
| Versión de esquema    | `1.0.0` para cada evento                          |
| Tipo de contenido     | `application/json`                                |
| Entrega               | Al menos una vez mediante el outbox transaccional |
| Tópico de comandos    | Ninguno                                           |
| Manifiesto en runtime | No expuesto                                       |

Configura `STREAMING_ENABLED=true` y `OUTBOX_ENABLED=true` juntos. Si configuras `STREAMING_CLOUDEVENTS_SOURCE`, su valor debe ser exactamente `plugin-br-pix-jd`. Cuando el streaming está deshabilitado, la integración no escribe eventos de ciclo de vida en el outbox de streaming.

<Warning>
  Esta integración todavía no expone un endpoint de manifiesto de streaming. Su catálogo de bootstrap contiene solo la definición estructural `transaction.created`, mientras que los caminos de emisión en producción publican los 21 hechos siguientes. Usa esta página—no el catálogo incompleto del runtime—como inventario actual de eventos.
</Warning>

Deduplica por `(ce-source, ce-id)` y mantén los consumidores idempotentes. La integración no aprovisiona un tópico de comandos.

## Catálogo de eventos

Cada `ce-type` usa `studio.lerian.plugin-br-pix-jd.<event-key>`.

### Transacciones

| Clave de evento        | Cuándo se emite                                                                                                              |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `transaction.created`  | Un cash-out externo queda pendiente, existe su asiento pendiente en Midaz y el envío a JDPI finaliza correctamente.          |
| `transaction.executed` | Una transferencia interna se completa de forma síncrona, se aplica un cash-in o la conciliación liquida un cash-out externo. |
| `transaction.refunded` | La transacción de devolución se persiste y queda vinculada a la transacción original.                                        |
| `transaction.failed`   | La conciliación mueve un cash-out externo pendiente a su estado terminal de error y cancela el asiento pendiente.            |

### Claves y reclamos DICT

| Clave de evento            | Cuándo se emite                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------ |
| `key.registered`           | Una clave se registra en DICT y se persiste como activa.                             |
| `key.validation-requested` | La integración almacena y envía un desafío de validación de titularidad.             |
| `key.confirmed`            | El desafío enviado se verifica y la clave sale del estado de espera de confirmación. |
| `key.deleted`              | Una clave se elimina en DICT y se marca como eliminada localmente.                   |
| `key.claimed`              | Se abre un reclamo en DICT y se persiste su identificador.                           |
| `key.claim-confirmed`      | El donante confirma el reclamo.                                                      |
| `key.claim-concluded`      | El reclamante concluye el reclamo.                                                   |
| `key.claim-cancelled`      | El reclamo se cancela.                                                               |

### Autorizaciones de Pix Automático

| Clave de evento           | Cuándo se emite                                                                         |
| ------------------------- | --------------------------------------------------------------------------------------- |
| `authorization.requested` | El PSP receptor solicita una autorización y la integración la persiste como solicitada. |
| `authorization.accepted`  | El pagador acepta la autorización.                                                      |
| `authorization.rejected`  | La autorización pasa al estado rechazado.                                               |
| `authorization.activated` | La autorización se confirma correctamente y pasa al estado activo.                      |
| `authorization.cancelled` | La autorización se cancela y se marca como eliminada.                                   |

### Agendamientos de Pix Automático

| Clave de evento      | Cuándo se emite                                                                        |
| -------------------- | -------------------------------------------------------------------------------------- |
| `schedule.requested` | El PSP receptor solicita un agendamiento y la integración lo persiste como solicitado. |
| `schedule.accepted`  | El agendamiento pasa al estado aceptado.                                               |
| `schedule.rejected`  | El agendamiento pasa al estado rechazado.                                              |
| `schedule.cancelled` | El agendamiento se cancela y se marca como eliminado.                                  |

## Contratos de payload

Todas las marcas de tiempo son cadenas RFC 3339 en UTC. Los importes de transacciones y Pix Automático son centavos enteros, no cadenas decimales ni números de punto flotante. Los campos marcados con `?` se pueden omitir.

<Warning>
  El contrato wire codifica `amount`, `value` y `payerMaxValue` como tokens numéricos JSON `int64`. Los consumidores JavaScript que acepten todo el rango `int64` deben usar un parser JSON sin pérdida y compatible con BigInt, o rechazar valores superiores a `Number.MAX_SAFE_INTEGER`; `JSON.parse` puede redondear enteros mayores.
</Warning>

```typescript theme={null}
interface TransactionEventData {
  id: string
  jdpiRequestId?: string
  indirectId?: string
  endToEndId?: string
  status: string
  flow: number
  type: number
  amount: number // int64 centavos
  accountId: string
  isRefund: boolean
  isInternal: boolean
  refundType?: number
  refundAccountId?: string
  refundEndToEndId?: string
  refundCode?: string
  createdAt: string
  updatedAt: string
}

interface KeyEventData {
  id: string
  key: string
  accountId: string
  status: number
  keyType: number
  claimId?: string
  claimType?: number
  createdAt: string
  updatedAt: string
}

interface AuthorizationEventData {
  id: string
  idRecorrencia: string
  idReqJdPi?: string
  idCancelamento?: string
  tenantId?: string
  status: number
  frequency: number
  value?: number // int64 centavos
  payerMaxValue?: number // int64 centavos
  recipientIspb?: string
  recipientCnpj?: string
  payerCpfCnpj?: string
  contractNumber?: string
  createdAt: string
  updatedAt: string
}

interface ScheduleEventData {
  id: string
  endToEndId: string
  idRecorrencia: string
  idConciliacaoRecebedor?: string
  idCancelamento?: string
  tenantId?: string
  status: number
  finalidadeAgendamento: number
  dtVencimento?: string
  value?: number // int64 centavos
  recipientIspb?: string
  recipientCnpj?: string
  payerCpfCnpj?: string
  createdAt: string
  updatedAt: string
}
```
