Skip to content

fix(listen): show the resource ID for API v2 webhook events - #50

Merged
ChristoPy merged 1 commit into
mainfrom
fix/listen-event-id
Oct 4, 2026
Merged

ChristoPy merged 1 commit into
mainfrom
fix/listen-event-id

Conversation

@ChristoPy

Copy link
Copy Markdown
Contributor

Problema

O listen lia o ID do evento em data.id. Só que os payloads da API v2 aninham o recurso numa chave com o nome do prefixo do evento. Resultado: todo evento v2 aparecia com colchetes vazios no painel.

14:32:07  --> transparent.completed []
Evento Onde fica o ID
transparent.* data.transparent.id
checkout.* data.checkout.id
subscription.* data.subscription.id (o id do topo é o log_...)
transfer.* data.transfer.id
payout.* data.withdraw.id

Correção

  • Novo parseEnvelope (internal/webhook/envelope.go), usado por Listener e TailListener. A ordem de busca é:
    1. data.<prefixo>.id, com o alias payout → withdraw;
    2. data.id, para payloads antigos;
    3. id do topo.
  • Quando nenhum ID é encontrado, o painel não mostra os colchetes.
14:32:07  --> transparent.completed [char_xyz789]

Testes

🤖 Generated with Claude Code

The listener read the event ID from data.id, but API v2 payloads nest the
resource under a key named after the event prefix (data.transparent.id,
data.checkout.id, data.subscription.id, data.transfer.id, and
data.withdraw.id for payout.*). Every v2 event showed an empty "[]".

- add parseEnvelope, shared by Listener and TailListener, which tries the
  prefix key (plus the payout -> withdraw alias), then data.id, then the
  top-level id
- omit the brackets entirely when no ID is found

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ChristoPy added a commit to AbacatePay/documentation that referenced this pull request Oct 4, 2026
Acompanha AbacatePay/abacatepay-cli#50.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ChristoPy
ChristoPy merged commit a78eef0 into main Oct 4, 2026
4 checks passed
ChristoPy added a commit to AbacatePay/documentation that referenced this pull request Oct 4, 2026
* docs(cli): alinha a documentação da CLI com a v0.1.4

Remove comandos que não existem mais (whoami, status, profile, switch,
payments create/check, trigger, events, logs, verify, update, docs,
listen --mock) e documenta o que a CLI faz hoje.

- corrige o header de assinatura para X-Webhook-Signature com a chave
  HMAC pública (antes: X-Abacate-Signature com whsec_)
- corrige a instalação (install.sh, go install .../cmd/abacatepay)
- documenta `upgrade`, o painel interativo do `listen` e que o `listen`
  só recebe eventos de dev mode
- marca `-l/--local` como obsoleta e remove o IP do servidor de teste
- remove a menção a skills integradas na CLI e corrige o link da CLI
  na página de ecossistema

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(cli): documenta só a saída TUI

A CLI deixou de ter os formatos json e table (AbacatePay/abacatepay-cli#49).
Troca os exemplos JSON pela saída real do terminal, remove a flag
`-o/--output`, mostra o painel do `listen` e reescreve o caso de CI para
usar o código de saída em vez de interpretar JSON.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(cli): mostra o ID do recurso no painel do listen

Acompanha AbacatePay/abacatepay-cli#50.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant