callbackUrl que você mandou ao criar (ou na
URL da conta).
O paymentId muda a cada ciclo (psa_sub_…, psa_sub_…_c1, psa_sub_…_c2). O
subscriptionId é o mesmo em todos os eventos: é por ele que você acha o assinante.
subscription.authorized
O banco do cliente aprovou a recorrência. A partir daqui as renovações saem sozinhas.
O primeiro pagamento chega separado, como um
payment.paid normal do paymentId da
criação. Autorização e pagamento são atos diferentes no banco e podem chegar em qualquer
ordem.payment.paid de renovação
Cada ciclo pago é um payment.paid como outro qualquer, com dois campos a mais:
subscriptionCycle é 0 no primeiro pagamento e cresce a cada renovação. Renove o
acesso pelo subscriptionId, nunca pelo paymentId.
subscription.charge_failed
Uma cobrança recorrente não liquidou. A assinatura continua ativa: quando a política
permite, a retentativa é pedida sozinha (até 3 em 7 dias), e o ciclo seguinte é enviado
normalmente.
reason é rejeitada, expirada ou cancelada. detail traz o código e a descrição
que o banco devolveu, quando há.
subscription.cancelled
Acabou: pela loja (reason: "merchant"), pelo cliente ou pelo banco (cancelada),
recusada na autorização (rejeitada) ou vencida (expirada). Não haverá novas cobranças.
X-Webhook-Signature,
idempotência por X-Webhook-Id e reentrega com backoff. Veja
Validando a assinatura.
