Documentação de API's Pinbank
Início
Primeiros Passos
Primeiros Passos
  • Guia
  • Obtendo suas Credenciais
  • Gerando o Access Token
  • Autorizando as Requisições
  • Consumindo uma API
Gateway de Pagamentos
Gateway de Pagamentos
  • Introdução
  • Cartão
  • Boleto
  • Pix
Início
Primeiros Passos
Primeiros Passos
  • Guia
  • Obtendo suas Credenciais
  • Gerando o Access Token
  • Autorizando as Requisições
  • Consumindo uma API
Gateway de Pagamentos
Gateway de Pagamentos
  • Introdução
  • Cartão
  • Boleto
  • Pix
Pinbank
LinkedIn
Instagram
Youtube
  1. Webhooks
  • Bem-vindo à documentação de APIs da Pinbank!
    • Primeiros passos
    • 1 - Obtendo suas credenciais
    • 2 - Gerando o token de acesso
    • 3 - Autorizando as requisições
    • 4 - Consumindo uma API
  • Autenticação e segurança
  • Gateway de pagamentos
    • Cartão
    • Boleto
    • Pix
    • Pix automático
    • Link de pagamento
  • Banking as a Service - BaaS (Gestão de contas)
    • Onboarding e KYC
    • Gestão de saldo e extrato
    • Pagamentos e transferências
    • Cartão pré-pago
  • Pix (Cash-out)
    • Pagamentos e transferências
    • Pagamentos com Pix automático
  • Webhooks
    • Introdução
    • Configurando o webhook
    • Estrutura da entrega (envelope)
    • Autenticidade da mensagem
    • Política de Reenvio
    • Eventos
  • Especificações técnicas
    • Autenticação
      • Gerar token de acesso
    • Cartão
      • Processar pagamento avulso (Dados diretos)
      • Cancelar transação
      • Gerar extrato consolidado de vendas (POS/e-commerce)
      • Processar pagamento com split de valores
      • Cancelar transação com split de valores
      • Processar pagamento com cartão tokenizado salvo
      • Cadastrar cartão (tokenizado) para compras futuras
      • Remover cartão tokenizado
      • Recuperar dados sensíveis do cartão
      • Listar cartões tokenizados do cliente
      • Processar pagamento recorrente com split
      • Confirmar ativação de cartão (PIN/Protocolo)
    • Boleto
      • RegistrarBoletoDda
      • Gerar boleto de cobrança
      • Emitir boleto com split de valores
      • Consultar o status de um boleto
      • Consultar boletos em lote
      • Obter métricas e indicadores de cobrança
      • Cancelar cobrança via boleto
    • Link de pagamento
      • Gerar um link de pagamento
    • Conta digital
      • Recuperar termos de uso para aceite formal
      • Iniciar onboarding de Mini EC
      • Iniciar onboarding de cliente (PF)
      • Iniciar onboarding de empresa (PJ)
      • Consultar dados da conta
      • Listar novos clientes ativados por período
      • Fazer upload de documentos de identificação
      • Verificar inventário e pendências de documentos
      • Substituir documento reprovado ou expirado
      • Consultar status dos documentos
      • Gerar boleto de recarga de conta
      • Consultar saldo disponível na conta
      • Consultar extrato da conta
      • Consultar comprovante detalhado de transação
    • Cartão pré-pago
      • Solicitar emissão de cartão pré-pago
      • Confirmar ativação de cartão pré-pago
      • Consultar limite do cartão pré-pago
      • Ajustar limite do cartão pré-pago
      • Listar cartões pré-pagos do cliente
      • Listar transações do cartão pré-pago
      • Bloquear uso do cartão pré-pago
      • Solicitar cartão pré-pago virtual
      • Redefinir senha do cartão pré-pago
      • Atualizar senha do cartão pré-pago
      • Gerenciar trava de compras online (E-commerce)
    • Pix
      • Cash-in
        • Gerar QR Code dinâmico para venda única
        • Solicitar estorno parcial ou integral de um Pix
        • Verificar status do estorno de um Pix (Assíncrono)
        • Gerar QR Code dinâmico ou composto com recorrência
        • Consultar status e dados de um QR Code dinâmico
        • Invalidar QR Code dinâmico de cobrança Pix pendente
        • Decodificar QR Code ou Chave Pix
      • Cash-out
        • Confirmar liquidação de um Pix
        • Consultar Pix por lote ou identificador
        • Cadastrar agendamento de um Pix
        • Cadastrar novo favorecido para Pix
        • Consultar a lista de favorecidos para Pix
        • Remover favorecido para Pix
      • Pix automático (Cash-in)
        • Propor adesão ao Pix Automático (Push)
        • Listar contratos de Pix Automático
        • Lançar parcela de Pix Automático
        • Consultar um contrato de Pix Automático
        • Cancelar um agendamento de pagamento de parcela do Pix Automático
        • Cancelar um contrato de Pix Automático
        • Projetar data do próximo débito recorrente
        • Calcular último pagamento
      • Pix automático (Cash-out)
        • Cadastrar recorrência via QR Code
        • Atualizar status de uma recorrência
        • Listar recorrências cadastradas e/ou canceladas
        • Consultar dados de uma recorrência
        • Editar uma recorrência cadastrada
        • Cancelar uma recorrência cadastrada
        • Listar pagamentos agendados, pagos ou cancelados
        • Consultar um agendamento
        • Cancelar um agendamento de pagamento da recorrência
    • Pagamentos e transferências (TED)
      • Transferir saldo internamente (P2P)
      • Solicitar retirada de fundos via TED
      • Rastrear liquidação ou devolução de TED
      • Registrar TED para aprovação posterior
      • Listar TEDs por status ou referência
      • Cancelar TED
      • Autorizar TED pré-cadastrada
      • Validar linha digitável de boleto (CIP)
      • Liquidar boleto ou conta de consumo
      • Liquidar impostos e taxas governamentais
      • Listar pagamentos agendados
      • Cadastrar novo favorecido para TED
      • Consultar a lista de favorecidos para TED
      • Remover favorecido para TED
    • Webhooks
      • Notificação de recebimento Pix
  1. Webhooks

Autenticidade da mensagem

Toda entrega é assinada com Ed25519. Validar a assinatura garante que o callback foi emitido genuinamente pela Pinbank e que o payload não foi alterado em trânsito.

Obtendo a chave pública#

GET /api/v1/signing/public-key
Endpoint público, sem autenticação. Resposta:
{
  "Algoritmo": "Ed25519",
  "ChavePublicaBase64": "MCowBQYDK2VwAyEA...",
  "ChavePublicaPem": "-----BEGIN PUBLIC KEY-----\nMCow...\n-----END PUBLIC KEY-----",
  "jwk": {
    "kty": "OKP", "crv": "Ed25519", "kid": "2026-07", "use": "sig", "x": "..."
  },
  "jwks": {
    "keys": [
      { "kty": "OKP", "crv": "Ed25519", "kid": "2026-07", "use": "sig", "x": "..." },
      { "kty": "OKP", "crv": "Ed25519", "kid": "2026-04", "use": "sig", "x": "..." }
    ]
  }
}
ChavePublicaBase64/ChavePublicaPem/jwk referem-se sempre à chave ativa (a que assina as entregas atuais).
jwks.keys contém a chave ativa e chaves anteriores ainda válidas para verificação — necessário durante uma rotação de chaves, quando entregas antigas (assinadas com a chave anterior) e novas podem coexistir na fila de retentativas.
Salve a resposta na sua aplicação; consulte o endpoint apenas na inicialização ou quando uma verificação falhar inesperadamente (pode indicar rotação de chave).

Selecionando a chave correta com Webhook-Key-Id#

O header Webhook-Key-Id de cada entrega informa qual kid assinou aquele evento específico. Procure em jwks.keys a entrada cujo kid corresponda para obter a chave pública correta:
kid = headers["Webhook-Key-Id"]
public_key = entrada de jwks.keys onde entry.kid == kid
Isso garante que a verificação continue funcionando durante uma rotação de chaves. Em produção, prefira sempre selecionar a chave por kid em jwks.keys em vez de usar a chave ativa diretamente.

Como a assinatura é construída#

O conteúdo assinado é a concatenação do timestamp com o body da requisição, separados por ponto:
{Webhook-Timestamp}.{body}
Exemplo:
1749772800.{"EventType":"Pix.CreditoRecebido","EventVersion":"v1","EventId":"550e8400-...","EntityId":"123456","OccurredAt":"2026-06-30T12:00:01Z","Data":{...}}
O header Webhook-Signature contém o prefixo v1a, seguido da assinatura em Base64:
Webhook-Signature: v1a,MEcCIGY3...==

Passos para verificar#

1.
Extraia os valores dos headers Webhook-Timestamp, Webhook-Signature e Webhook-Key-Id.
2.
Verifique a frescura: rejeite requisições com timestamp fora da janela de ±5 minutos para prevenir ataques de replay.
3.
Localize em jwks.keys a chave pública cujo kid corresponda a Webhook-Key-Id.
4.
Extraia a assinatura do header Webhook-Signature, removendo o prefixo v1a,.
5.
Reconstrua o conteúdo assinado: {timestamp}.{body} — use o body exatamente como recebido, sem reserializar.
6.
Verifique a assinatura Ed25519 com a chave pública localizada no passo 3.
Atenção: use o body bruto da requisição HTTP, antes de qualquer parsing JSON. Reserializar o objeto pode alterar a formatação (ordem de campos, espaços) e invalidar a verificação.

Exemplos de implementação#

Python (biblioteca cryptography):
Node.js:
Go:
Java:
Modificado em 2026-08-12 21:04:50
Página anterior
Estrutura da entrega (envelope)
Próxima página
Política de Reenvio
Built with