payment.completed
Enviado quando uma transação de pagamento é concluída.
Request
{
"id": "d3skor3r425c54fi9frg",
"type": "payment.completed",
"data": {
"id": "d3skoqrr425c54fi9fr0",
"processedAt": "2025-10-22T21:28:11.436914699Z",
"acquirer": "pagseguro",
"transactionType": "pre_authorization",
"transactionStatus": "denied",
"terminalId": "d3e7s9br425c0klkg9r0",
"merchantId": "d3e7s2br425c0klkg8q0",
"merchantCategoryCode": "5691",
"merchantTaxId": "00.000.000/0001-00",
"acquirerMerchantIdentifier": "CF20251125",
"acquirerTerminalIdentifier": "TL1534",
"currency": "BRL",
"amount": {
"amount": 123,
"scale": 2
},
"paymentMethod": "credit_card",
"processingMode": "credit",
"installments": 12,
"installmentInterest": false,
"authorizationCode": "AUH000",
"retrievalReferenceNumber": "221022182812",
"responseCode": "51",
"cardData": {
"entryMode": "typed",
"holderName": "Jose Matias",
"brand": "visa",
"firstDigits": "424242",
"lastDigits": "3456",
"productAid": "A0000000041010000000000000000000"
},
"deviceData": {
"manufacturer": "Positivo",
"model": "L400",
"serialNumber": "PST09732089",
"type": "smart-pos",
"communicationType": "WIFI",
"fingerprintId": "a3f1c9d8e2b04567",
"ipAddress": "10.12.34.56",
"geolocation": [-23.55052, -46.63331]
}
}
}
Campos do Payload
| Campo | Tipo | Descrição |
|---|---|---|
id | string | Identificador único do evento de webhook |
type | string | Tipo do evento (ex: payment.completed) |
data | object | Dados da transação |
Campos do Objeto data
| Campo | Tipo | Descrição |
|---|---|---|
id | string | Identificador da transação |
processedAt | string | Timestamp de processamento (ISO 8601) |
acquirer | string | Nome do adquirente/provedor, ex: pagseguro, btg_pactual |
transactionType | string | Um dos seguintes: authorization, pre_authorization, capture, void, reversal |
transactionStatus | string | Um dos seguintes: pending, approved, denied |
terminalId | string | Identificador do terminal |
merchantId | string | Identificador do estabelecimento |
merchantCategoryCode | string | Código de categoria do comerciante (MCC, ex.: 5347) |
merchantTaxId | string | Documento fiscal do estabelecimento |
acquirerMerchantIdentifier | string | Identificador do estabelecimento no adquirente |
acquirerTerminalIdentifier | string | Identificador do terminal no adquirente |
currency | string | Código de moeda ISO 4217 (ex: BRL) |
amount | object | Valor da transação como objeto decimal (ver Objeto amount) |
paymentMethod | string | Um dos seguintes: credit_card, debit_card, voucher, pix |
processingMode | string | Modo em que a transação foi processada pelo adquirente, que pode diferir de paymentMethod: credit, debit, voucher, pre-paid. Ausente quando não informado pelo adquirente |
installments | integer | Número de parcelas; pode ser null para pagamentos sem parcelamento |
installmentInterest | boolean | Se as parcelas cobram juros; pode ser null se não aplicável |
authorizationCode | string | Código de autorização do adquirente; pode ser null para status pending/denied |
retrievalReferenceNumber | string | RRN/NSU do adquirente; pode ser null dependendo do provedor/estado |
responseCode | string | Código de resposta ABECS; pode ser null quando não fornecido |
cardData | object | Detalhes do cartão para pagamentos com cartão; null para pix (ver Objeto cardData) |
deviceData | object | Informações do dispositivo (ver Objeto deviceData) |
O campo amount é um objeto decimal {amount, scale} neste evento. Os endpoints Consultar Transação e Listar Transações representam o mesmo conceito como string decimal (ex.: 150.00).
Campos do Objeto amount
O valor é representado como um objeto decimal para suportar diferentes moedas e precisões, incluindo criptomoedas.
| Campo | Tipo | Descrição |
|---|---|---|
amount | integer | Valor inteiro, sem ponto decimal |
scale | integer | Quantidade de casas decimais aplicada ao valor |
Para obter o valor real, divida amount por 10 elevado a scale. Exemplo: amount: 123 com scale: 2 equivale a 1.23.
Campos do Objeto cardData
| Campo | Tipo | Descrição |
|---|---|---|
entryMode | string | Ver Modos de Entrada |
holderName | string | Nome do titular; pode ser null se indisponível |
brand | string | ex: visa, mastercard; pode ser null |
firstDigits | string | Primeiros 6-8 dígitos; pode ser null |
lastDigits | string | Últimos 4 dígitos; pode ser null |
productAid | string | EMV Application Identifier (AID); null para métodos não-EMV ou não-cartão |
Campos do Objeto deviceData
| Campo | Tipo | Descrição |
|---|---|---|
manufacturer | string | Fabricante do dispositivo (ex: Positivo) |
model | string | Modelo do dispositivo (ex: L400) |
serialNumber | string | Número de série do dispositivo |
type | string | Tipo do dispositivo (ex: smart-pos) |
communicationType | string | Meio de comunicação usado na transação (ex: WIFI, 4G, ETHERNET); pode ser null |
fingerprintId | string | Identificador de fingerprint do dispositivo; pode ser null |
ipAddress | string | Endereço IP do dispositivo; pode ser null |
geolocation | array | Coordenadas [latitude, longitude]; pode ser null |
Modos de Entrada
typed- Cartão digitado manualmentemagstripe- Leitura de tira magnéticachip- Cartão com chip EMVtyped_fallback_791- Fallback digitado (erro 791)typed_fallback_821- Fallback digitado (erro 821)magstripe_fallback_801- Fallback de tira magnética (erro 801)magstripe_fallback_811- Fallback de tira magnética (erro 811)contactless_chip- Chip sem contatocontactless_magstripe- Tira magnética sem contatotyped_for_recurrence- Digitado para pagamento recorrente