Referência de Webhooks
Esta referência fornece uma visão geral do sistema de Webhook da Getnet, incluindo métodos de autenticação, tipos de eventos disponíveis, endpoints da API e estruturas de payload de Webhook. Para a documentação detalhada dos endpoints da API com schemas de request/response, parâmetros e exemplos, consulte a documentação de API Reference.
A Getnet envia notificações de Webhook como solicitações HTTP POST com payloads JSON. Todos os timestamps usam o formato ISO 8601, e os valores monetários estão na menor unidade de moeda (centavos para BRL).
Autenticação
Ao criar uma assinatura de Webhook, você deve especificar como a Getnet deve se autenticar ao fazer o post para o seu endpoint. A Webhook Management API suporta três métodos de autenticação:
1. Credenciais de Usuário (Basic Auth)
Use este método quando o endpoint do seu Webhook validar solicitações usando HTTP Basic Authentication. A Getnet incluirá um cabeçalho Authorization: Basic padrão composto pelas credenciais que você fornecer.
Configuração:
{
"authentication_type": "user_credentials",
"authentication_data": {
"user": "your_client_id",
"password": "your_client_secret"
}
}Quando a Getnet enviar Webhooks para o seu endpoint, ela incluirá:
Authorization: Basic {base64_encoded_user:password}2. OAuth 2.0
Use este método quando o endpoint do seu Webhook esperar Bearer tokens OAuth 2.0. A Getnet executará o fluxo completo de client credentials do OAuth 2.0 em seu nome antes de cada entrega de Webhook.
Configuração:
{
"authentication_type": "oauth",
"authentication_data": {
"oauth_url": "https://auth.provider.com/token",
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"credentials_location": "basic_auth_header",
"token_key_name": "access_token"
}
}Campos de configuração:
| Field | Type | Required | Description |
|---|---|---|---|
oauth_url | string | Sim | URL do endpoint de token OAuth |
client_id | string | Sim | Client ID do OAuth |
client_secret | string | Sim | Client secret do OAuth |
credentials_location | string | Não | Onde enviar as credenciais: basic_auth_header (padrão) ou body |
token_key_name | string | Não | Nome da chave na resposta do token (padrão: access_token) |
Quando a Getnet enviar Webhooks, ela irá:
- Solicitar um token do seu servidor OAuth usando as credenciais fornecidas
- Extrair o token da resposta usando
token_key_name - Incluí-lo na solicitação do Webhook:
Authorization: Bearer {token}
3. Token (Bearer Token)
Use este método quando quiser que a Getnet use um Bearer token obtido da Getnet Authentication API. Este token é o mesmo que você usa para autenticar solicitações de API para a Getnet.
Configuração:
{
"authentication_type": "token",
"authentication_data": {
"token": "your_bearer_token_from_getnet_auth_api"
}
}O token é obtido do endpoint da Getnet Authentication API (/authentication/oauth2/access_token) usando seu client_id e client_secret. Este é o mesmo token que você usa para outras solicitações da API da Getnet. Consulte a documentação de Authentication para obter detalhes sobre como obter tokens do endpoint de autenticação.
Quando a Getnet enviar Webhooks, ela incluirá:
Authorization: Bearer {token}Tipos de Eventos
Os Webhooks da Getnet suportam os seguintes tipos de eventos. Cada tipo de evento corresponde a um estado ou ação de transação específica:
| Event Type | Description |
|---|---|
APPROVED_TRANSACTIONS | A transação de pagamento foi aprovada com sucesso |
REJECTED_TRANSACTIONS | A transação de pagamento foi rejeitada ou negada |
CAPTURED_TRANSACTIONS | O pagamento pré-autorizado foi capturado |
CANCELLED_TRANSACTIONS | A transação foi cancelada |
REFUNDED_TRANSACTIONS | A transação foi reembolsada |
CARD_UPDATE | Detalhes do cartão atualizados via Network Token ou Account Updater |
CARD_UPDATED_TRANSACTIONS | Detalhes do cartão atualizados em uma transação via Network Token ou Account Updater |
PENDING_TRANSACTIONS | A transação está pendente de processamento |
PIX_UPDATED_TRANSACTIONS | O status da transação PIX foi atualizado |
BOLETO_UPDATED_TRANSACTIONS | O status da transação de Boleto foi atualizado |
BOLETO_PAID_TRANSACTIONS | O Boleto foi pago |
PROCESSING_TRANSACTIONS | A transação está sendo processada |
FAILED_TRANSACTIONS | O processamento da transação falhou |
EXPIRED_TRANSACTIONS | A transação expirou |
AUTHORIZED_TRANSACTIONS | A transação foi autorizada |
Ao criar uma assinatura de Webhook, você especifica qual(is) tipo(s) de evento você deseja receber. Você pode criar várias assinaturas para diferentes tipos de eventos ou lidar com todos os eventos em um único endpoint.
Visão Geral da Webhook Management API
A Webhook Management API fornece endpoints para gerenciar suas assinaturas de Webhook de forma programática. Para a documentação completa dos endpoints, incluindo schemas de request/response, parâmetros, códigos de erro e exemplos, consulte a API Reference.
Endpoints Disponíveis
| Endpoint | Method | Description |
|---|---|---|
POST /subscriptions | POST | Criar uma nova assinatura de Webhook |
GET /subscriptions/{event_name} | GET | Recuperar os detalhes de assinatura de Webhook para um evento específico |
DELETE /subscriptions/{event_name} | DELETE | Excluir uma assinatura de Webhook |
GET /subscriptions/{event_name}/events | GET | Listar mensagens de eventos para uma assinatura com paginação |
PATCH /subscriptions/{event_name}/events/{event_id} | PATCH | Reenviar uma mensagem de evento de Webhook específica |
GET /subscriptions-events | GET | Listar todos os eventos nos quais você está atualmente inscrito |
URL Base
Todos os endpoints de gerenciamento de Webhook estão disponíveis em:
https://api.gettech.com/dpm/webhooks/v1Para obter informações detalhadas sobre cada endpoint, incluindo:
- Schemas de request e response
- Parâmetros obrigatórios e opcionais
- Query parameters e paginação
- Respostas de erro e códigos de status
- Exemplos de requests e responses
Consulte a documentação de API Reference.
Payloads de Eventos de Webhook
Quando ocorre um evento inscrito, a Getnet envia uma solicitação HTTP POST para a sua callback_url com um payload JSON contendo os dados do evento. A estrutura do payload varia dependendo do tipo de evento.
APPROVED_TRANSACTIONS
Enviado quando uma transação de pagamento foi aprovada com sucesso.
Exemplo de Payload:
{
"idempotency_key": "63c7f8ee-51a6-470d-bb76-ef762b62bfb7",
"seller_id": "9406df6c-3100-49ba-b4df-d81c1ad8a62b",
"request_id": "daac03dc-73db-453f-9bea-b1391669d5d3",
"payment_id": "2c341d28-491b-4cf8-aec7-eeb60136b7a5",
"order_id": "ORDER-10187383",
"amount": "11870",
"currency": "BRL",
"status": "APPROVED",
"payment_method": "CREDIT",
"received_at": "2025-11-13T14:30:00.000Z",
"transaction_id": "123456789012",
"original_transaction_id": null,
"authorized_at": "2025-11-13T14:30:00.000Z",
"reason_code": "00",
"reason_message": "TRANSACTION EXECUTED SUCCESSFULLY",
"acquirer": "GETNET",
"soft_descriptor": "LOJA*TESTE*COMPRA",
"brand": "Visa",
"authorization_code": "123456",
"acquirer_transaction_id": "987654321",
"eci": "05",
"payment_received_timestamp": "2025-11-13T14:30:00.000Z",
"card_id": "e8ad2ae4-9e3e-4532-998f-1a5a11e56e58",
"merchant_advice_code": null,
"additional_data": {}
}Descrições dos Campos:
| Field | Type | Description |
|---|---|---|
idempotency_key | string | Chave de idempotência usada para controlar requisições |
seller_id | string | Identificação do vendedor |
request_id | string | Identificador da requisição. Único para cada requisição |
payment_id | string | Identificador do pagamento |
order_id | string | Código de identificação da compra usado pelo e-commerce |
amount | string | Valor da transação |
currency | string | Código da moeda (ex: “BRL”, “USD”) |
status | string | Status da transação (ex: “APPROVED”) |
payment_method | string | Método de pagamento usado (ex: “CREDIT”, “DEBIT”) |
received_at | string | Timestamp de quando o pagamento foi recebido |
transaction_id | string | Identificador da transação |
original_transaction_id | string | Identificador da transação original (para reembolsos/cancelamentos) |
authorized_at | string | Timestamp de quando a transação foi autorizada |
reason_code | string | Código de retorno do emissor ou do sistema de captura da Getnet |
reason_message | string | Mensagem de retorno do emissor ou do sistema de captura da Getnet |
acquirer | string | Nome do adquirente |
soft_descriptor | string | Soft descriptor exibido na fatura do cartão |
brand | string | Bandeira do cartão (ex: “Visa”, “Mastercard”) |
authorization_code | string | Código de autorização |
acquirer_transaction_id | string | Identificador da transação no adquirente |
eci | string | Electronic Commerce Indicator (Indicador de Comércio Eletrônico) |
payment_received_timestamp | string | Timestamp de recebimento do pagamento |
card_id | string | Identificador do cartão salvo no cofre (se aplicável) |
boleto | object | Detalhes do pagamento por boleto (se aplicável) |
merchant_advice_code | string | Merchant advice code (se aplicável) |
additional_data | object | Dados adicionais |
REJECTED_TRANSACTIONS
Enviado quando uma transação de pagamento foi rejeitada ou negada.
Exemplo de Payload:
{
"idempotency_key": "63c7f8ee-51a6-470d-bb76-ef762b62bfb7",
"seller_id": "9406df6c-3100-49ba-b4df-d81c1ad8a62b",
"request_id": "daac03dc-73db-453f-9bea-b1391669d5d3",
"payment_id": "2c341d28-491b-4cf8-aec7-eeb60136b7a5",
"order_id": "ORDER-10187383",
"amount": "11870",
"currency": "BRL",
"status": "REJECTED",
"payment_method": "CREDIT",
"received_at": "2025-11-13T14:30:00.000Z",
"transaction_id": "123456789012",
"original_transaction_id": null,
"authorized_at": null,
"reason_code": "51",
"reason_message": "INSUFFICIENT FUNDS",
"acquirer": "GETNET",
"soft_descriptor": "LOJA*TESTE*COMPRA",
"brand": "Visa",
"authorization_code": null,
"acquirer_transaction_id": null,
"eci": null,
"payment_received_timestamp": "2025-11-13T14:30:00.000Z",
"card_id": null,
"merchant_advice_code": null,
"additional_data": {}
}Descrições dos Campos:
| Field | Type | Description |
|---|---|---|
idempotency_key | string | Chave de idempotência usada para controlar requisições |
seller_id | string | Identificação do vendedor |
request_id | string | Identificador da requisição. Único para cada requisição |
payment_id | string | Identificador do pagamento |
order_id | string | Código de identificação da compra usado pelo e-commerce |
amount | string | Valor da transação |
currency | string | Código da moeda (ex: “BRL”, “USD”) |
status | string | Status da transação (ex: “REJECTED”) |
payment_method | string | Método de pagamento usado (ex: “CREDIT”, “DEBIT”) |
received_at | string | Timestamp de quando o pagamento foi recebido |
transaction_id | string | Identificador da transação |
original_transaction_id | string | Identificador da transação original (para reembolsos/cancelamentos) |
authorized_at | string | Timestamp de quando a transação foi autorizada (pode ser null) |
reason_code | string | Código de retorno do emissor ou do sistema de captura da Getnet |
reason_message | string | Mensagem de retorno do emissor ou do sistema de captura da Getnet |
acquirer | string | Nome do adquirente |
soft_descriptor | string | Soft descriptor exibido na fatura do cartão |
brand | string | Bandeira do cartão (ex: “Visa”, “Mastercard”) |
authorization_code | string | Código de autorização (pode ser null) |
acquirer_transaction_id | string | Identificador da transação no adquirente (pode ser null) |
eci | string | Electronic Commerce Indicator (pode ser null) |
payment_received_timestamp | string | Timestamp de recebimento do pagamento |
card_id | string | Identificador do cartão salvo no cofre (se aplicável, pode ser null) |
boleto | object | Detalhes do pagamento por boleto (se aplicável) |
merchant_advice_code | string | Merchant advice code (se aplicável, pode ser null) |
additional_data | object | Dados adicionais |
REFUNDED_TRANSACTIONS
Enviado quando uma transação foi reembolsada.
Exemplo de Payload:
{
"idempotency_key": "63c7f8ee-51a6-470d-bb76-ef762b62bfb7",
"seller_id": "9406df6c-3100-49ba-b4df-d81c1ad8a62b",
"request_id": "daac03dc-73db-453f-9bea-b1391669d5d3",
"payment_id": "2c341d28-491b-4cf8-aec7-eeb60136b7a5",
"order_id": "ORDER-10187383",
"amount": 8900,
"currency": "BRL",
"status": "REFUNDED",
"reason_code": "00",
"reason_message": "TRANSACTION EXECUTED SUCCESSFULLY",
"canceled_at": "2025-11-13T15:30:00.000Z",
"custom_key": "20200630-8900"
}Descrições dos Campos:
| Field | Type | Description |
|---|---|---|
idempotency_key | string | Chave de idempotência, usada para controlar requisições (1-64 caracteres) |
seller_id | string | Código de identificação do e-commerce (UUID, 36 caracteres) |
request_id | string | Identificador da requisição. Único para cada requisição (UUID, 36 caracteres) |
payment_id | string | Identificador do pagamento (UUID, 36 caracteres) |
order_id | string | Código de identificação da compra usado pelo e-commerce |
amount | number | Valor da compra em centavos |
currency | string | Identificação da moeda (ex: “BRL”) |
status | string | Status da transação |
reason_code | string | Código de retorno do emissor ou do sistema de captura da Getnet (2 caracteres) |
reason_message | string | Mensagem de retorno do emissor ou do sistema de captura da Getnet |
canceled_at | string | Data de cancelamento/reembolso (formato ISO 8601) |
custom_key | string | Chave do cliente usada para identificar a solicitação de reembolso (3-32 caracteres) |
CANCELLED_TRANSACTIONS
Enviado quando uma transação foi cancelada.
Exemplo de Payload:
{
"idempotency_key": "63c7f8ee-51a6-470d-bb76-ef762b62bfb7",
"seller_id": "9406df6c-3100-49ba-b4df-d81c1ad8a62b",
"request_id": "daac03dc-73db-453f-9bea-b1391669d5d3",
"payment_id": "2c341d28-491b-4cf8-aec7-eeb60136b7a5",
"order_id": "ORDER-10187383",
"amount": 8900,
"currency": "BRL",
"status": "CANCELLED",
"reason_code": "00",
"reason_message": "TRANSACTION CANCELLED SUCCESSFULLY",
"canceled_at": "2025-11-13T15:30:00.000Z",
"custom_key": "20200630-8900"
}Descrições dos Campos:
| Field | Type | Description |
|---|---|---|
idempotency_key | string | Chave de idempotência, usada para controlar requisições (1-64 caracteres) |
seller_id | string | Código de identificação do e-commerce (UUID, 36 caracteres) |
request_id | string | Identificador da requisição. Único para cada requisição (UUID, 36 caracteres) |
payment_id | string | Identificador do pagamento (UUID, 36 caracteres) |
order_id | string | Código de identificação da compra usado pelo e-commerce |
amount | number | Valor da compra em centavos |
currency | string | Identificação da moeda (ex: “BRL”) |
status | string | Status da transação |
reason_code | string | Código de retorno do emissor ou do sistema de captura da Getnet (2 caracteres) |
reason_message | string | Mensagem de retorno do emissor ou do sistema de captura da Getnet |
canceled_at | string | Data de cancelamento (formato ISO 8601) |
custom_key | string | Chave do cliente usada para identificar a solicitação de cancelamento (3-32 caracteres) |
CAPTURED_TRANSACTIONS
Enviado quando um pagamento pré-autorizado foi capturado.
Exemplo de Payload:
{
"idempotency_key": "63c7f8ee-51a6-470d-bb76-ef762b62bfb7",
"seller_id": "9406df6c-3100-49ba-b4df-d81c1ad8a62b",
"request_id": "daac03dc-73db-453f-9bea-b1391669d5d3",
"payment_id": "2c341d28-491b-4cf8-aec7-eeb60136b7a5",
"order_id": "ORDER-10187383",
"amount": 8900,
"currency": "BRL",
"status": "CAPTURED",
"reason_code": "00",
"reason_message": "TRANSACTION EXECUTED SUCCESSFULLY",
"captured_at": "2025-11-13T16:00:00.000Z"
}Descrições dos Campos:
| Field | Type | Description |
|---|---|---|
idempotency_key | string | Chave de idempotência, usada para controlar requisições (1-64 caracteres) |
seller_id | string | Código de identificação do e-commerce (UUID, 36 caracteres) |
request_id | string | Identificador da requisição. Único para cada requisição (UUID, 36 caracteres) |
payment_id | string | Identificador do pagamento (UUID, 36 caracteres) |
order_id | string | Código de identificação da compra usado pelo e-commerce |
amount | number | Valor da compra em centavos |
currency | string | Identificação da moeda (ex: “BRL”) |
status | string | Status da transação |
reason_code | string | Código de retorno do emissor ou do sistema de captura da Getnet (2 caracteres) |
reason_message | string | Mensagem de retorno do emissor ou do sistema de captura da Getnet |
captured_at | string | Data de captura (formato ISO 8601) |
CARD_UPDATE
Enviado quando os detalhes do cartão são atualizados via serviços de Network Token ou Account Updater.
Exemplo de Payload:
{
"card_id": "e8ad2ae4-9e3e-4532-998f-1a5a11e56e58",
"last_four_digits": "1212",
"bin": "121212",
"expiration_month": 12,
"expiration_year": 28,
"brand": "Mastercard",
"cardholder_name": "JOAO DA SILVA",
"customer_id": "customer_21081826",
"number_token": "dfe05208b105578c070f806c80abd3af09e246827d29b866cf4ce16c205849977c9496cbf0d0234f42339937f327747075f68763537b90b31389e01231d4d13c",
"used_at": "2017-04-19T16:30:30Z",
"created_at": "2017-04-19T16:30:30Z",
"updated_at": "2017-04-19T16:30:30Z",
"status": "active",
"transaction_id": "123456"
}Descrições dos Campos:
| Field | Type | Description |
|---|---|---|
card_id | string | Identificador do cartão salvo no cofre (máx 36 caracteres) |
last_four_digits | string | Últimos quatro dígitos do cartão (máx 4 caracteres) |
bin | string | Primeiros seis dígitos do cartão (máx 6 caracteres) |
expiration_month | integer | Mês de validade do cartão com dois dígitos (1-12) |
expiration_year | integer | Ano de validade do cartão com dois dígitos |
brand | string | Bandeira do cartão (Mastercard, Visa, Amex, Elo, Hipercard) |
cardholder_name | string | Nome do comprador impresso no cartão (máx 26 caracteres) |
customer_id | string | Identificador do comprador (máx 100 caracteres) |
number_token | string | Token do cartão que será usado nas transações (máx 128 caracteres) |
used_at | string | Data do último uso (formato ISO 8601) |
created_at | string | Data de criação (formato ISO 8601) |
updated_at | string | Data de atualização (formato ISO 8601) |
status | string | Status do cartão no cofre (active, blocked, canceled, renewed) |
transaction_id | string | ID da Transação de Verificação do Cartão (máx 32 caracteres) |
Requisitos de Resposta
O endpoint do seu Webhook deve:
- Aceitar solicitações HTTP
POST - Usar HTTPS com um certificado SSL válido
- Responder com o código de status HTTP
204(No Content) para confirmar o recebimento bem-sucedido - Lidar com a autenticação conforme configurado em sua assinatura
Se o seu endpoint retornar qualquer código de status diferente de 204, a Getnet considerará a entrega falha e poderá tentar reenviar a entrega do Webhook.
Notas Importantes
-
Idempotência: Todos os payloads de Webhook incluem uma
idempotency_key. Seu endpoint deve ser idempotente e lidar com entregas duplicadas de forma adequada. -
Código de Resposta: O endpoint do seu Webhook deve responder com HTTP
204(No Content) para confirmar o recebimento bem-sucedido. Qualquer outro código de status será considerado uma falha. -
Timestamps: Todos os timestamps estão no formato ISO 8601 (ex:
2025-11-13T14:30:00.000Z). -
Valores: Os valores monetários são representados na menor unidade monetária (centavos para BRL).
-
Campos Opcionais: Alguns campos podem ser
nullou omitidos dependendo do tipo de transação e do método de pagamento. -
Lógica de Retentativa: Se o seu endpoint não responder com
204, a Getnet tentará reenviar a entrega do Webhook.