POST na callbackUrl informada na criação. Se
você não mandou nenhuma, o evento vai pras URLs da conta. O nome do
evento depende do recurso:
O corpo é o mesmo nos dois eventos. No pagamento em cripto não há pagador, CPF nem banco:
o
txId é o hash da transação na blockchain, e amountReais é o valor em reais do que
chegou de fato.
Campos
O que foi entregue automaticamente, quando o produto tem entrega automática. Veja
Entrega.
Presente quando a cobrança foi criada com subconta. O ledger dela
já foi creditado quando este evento chega.
Dados do pagador
Vêm do banco, não de você. Chegam nos dois eventos, e só quando o banco de origem informa: PIX pago por certas instituições não traz o documento, e alguns não trazem nem o nome.CPF ou CNPJ de quem pagou, só com os dígitos:
12345678909. Sem pontuação, para bater
direto com o que você guarda do seu lado. Use para conciliar com o extrato bancário e
para responder disputa.Alguns bancos de origem mandam o documento censurado. Nesse caso ele vai como veio,
com os asteriscos na posição em que o banco os pôs (***456789**), e cpfMasked
chega junto. Nunca chega um pedaço do número passando por número inteiro.true quando o cpf veio censurado do banco de origem. Ausente quando o número chegou
completo.Identificador end-to-end da transação no Bacen. Serve para conciliação bancária e para
responder disputa.
Campo opcional é omitido quando não se aplica, e não enviado como
null.Cobrança com split
Cobrança criada emPOST /v1/split-charges avisa pelo mesmo evento, charge.paid. É o
mesmo fato, um PIX foi pago, e o handler que você já tem continua valendo. O que muda vem
no corpo: o paymentId começa com psplit_ e chegam três campos a mais.
A taxa retida, em centavos. Sai da sua fatia, não da dos beneficiários. A conta
inteira está em Splits.
A repartição de fato, já creditada. Cada item traz
recipientEmail (mascarado),
percentage, amountCents e isOwner. Você entra na lista com isOwner: true e fica
com o resto: a soma dos beneficiários é sempre menor que 100%.Se o seu handler precisa distinguir os dois casos, use o prefixo do
paymentId
(psplit_) ou a presença de splits. O campo event é o mesmo de propósito: é o mesmo
fato do domínio, e o handler que você já tem continua valendo.Split não aceita metadata, então esse campo não aparece neste corpo.Em sandbox
Osimulate-paid sempre envia event: "payment.paid", inclusive ao simular uma cobrança
psc_. O corpo é enxuto: event, paymentId, amountCents, status, paidAt,
customer, metadata e sandbox: true.
Tratando
Pagou com cartão?
O evento é outro e a forma do corpo muda. Vale a leitura antes de escrever um handler
genérico.

