pix.out.completed

PIX enviado com sucesso Enviado quando uma transferência PIX de saída é concluída com sucesso. O POST na sua URL é o **envelope** (`id`, `type`, `occurredAt`, `schemaVersion`, `environment`, `tenantId`, `accountId`, `data`). No painel do integrador, o JSON de "webhook entregue" mostra só o conteúdo de `data` (às vezes rotulado `deliveredData`) — não é o body HTTP. **Campos sempre presentes em `data`:** - `paymentId`: ID da ordem (o mesmo da resposta `202` do POST async). O `id` do envelope é `pix-out-{paymentId}`. - `tenantId`, `accountId`: repetidos dentro de `data` (também estão no envelope). - `status`: `"SUCCESS"`. - `endToEnd`: ID E2E do BACEN (string vazia se o liquidante ainda não emitiu). - `transactionId`: ID da transação no liquidante, quando houver. - `amount`: valor em reais. - `currency`: sempre `"BRL"`. - `description`: descrição enviada no POST (pode ser string vazia). - `identifier`: sua chave de conciliação. - `originalTransactionId`: ID da transação original em devoluções; string vazia no PIX out comum. - `initiatedAt` / `completedAt`: RFC 3339 UTC (`Z`), com fração de segundo (até nanossegundos). **Campos condicionais:** - `key`: `{ "type", "key" }` quando o envio foi por chave PIX. - `payee`: destinatário. Só entram chaves com valor: `name`, `document`, `bankCode`, `bankIspb`, `branch`, `accountNumber`, `pixKey`, `accountType`. - `payer`: conta origem. Só entra quando o webhook do banco liquidante trouxe esses dados — não presuma que sempre vem. - `late`: `true` apenas quando a confirmação chegou **depois** de um [`pix.out.timeout`](#13-pixouttimeout) para o mesmo `paymentId`. Ausente no caso normal. Ver [Confirmação tardia](#confirmação-tardia-late-true). Este evento **não** envia `reconciliationId`, `method` nem um objeto `payment`.