Documentação API PixGo
Integração de pagamentos PIX simples e poderosa
Última atualização: 09/10/2026
Introdução
A PixGo API permite integrar pagamentos PIX em sua aplicação de forma rápida e segura. Nossa API RESTful utiliza JSON para comunicação e oferece webhooks para notificações em tempo real.
Principais Recursos:
- Geração instantânea de pagamentos PIX
- Status de pagamento em tempo real
- Notificações automáticas via webhook
- Suporte à validação de CPF/CNPJ
- Autenticação segura via API key
- Logs detalhados de transações
URL Base:
Autenticação
Todas as requisições da API requerem autenticação usando sua chave de API no header X-API-Key.
Obtendo sua API Key:
- Crie uma conta em pixgo.org
- Valide suas informações de carteira Liquid
- Acesse a seção "Checkouts"
- Gere sua chave de API
Exemplo de Header:
Endpoints da API
POST /api/v1/payment/create
Criar Pagamento
Cria uma nova solicitação de pagamento PIX
O campo receiver_cpf (CPF ou CNPJ de quem vai pagar) é OBRIGATÓRIO em toda criação de pagamento, por exigência do provedor de liquidação. Cobranças criadas sem ele são recusadas.
Trava de titularidade: a partir da geração do QR Code, somente o CPF/CNPJ informado pode pagá-lo. Se um terceiro pagar, o pagamento é rejeitado automaticamente e o estorno para a conta do terceiro pode levar até 48 horas. Garanta que o documento enviado é o de quem realmente vai pagar. O campo já está disponível: ajuste sua integração desde já.
Parâmetros:
- amount: Obrigatório. Mínimo R$ 10,00, máximo varia conforme seu nível
- receiver_cpf: Obrigatório desde 25/06/2026. CPF (11 dígitos) ou CNPJ (14 dígitos) de quem vai pagar, apenas números, com dígito verificador válido. Só esse documento poderá pagar o QR gerado
- receiver_name: Opcional (recomendado). Nome completo do pagador, 2 a 100 caracteres
- receiver_email: Opcional. Email válido, máximo 255 caracteres
- receiver_phone: Opcional. Telefone com DDD, 10 ou 11 dígitos, apenas números
- receiver_address: Opcional. Endereço completo, 10 a 500 caracteres
- external_id: Opcional. Máximo 50 caracteres
- description: Opcional. Máximo 200 caracteres
Resposta de Sucesso: (201)
Resposta de Erro: (400)
GET /api/v1/payment/{id}/status
Consultar Status
Obtém o status atual de um pagamento
Resposta de Sucesso: (200)
Sobre o CPF: o campo customer_cpf é retornado mascarado (***.456.789-**). O documento completo nunca é devolvido pela API.
payer_euid: identificador do pagador no provedor. Vem null enquanto o pagamento não for confirmado, e pode continuar null mesmo depois, dependendo do provedor — não use este campo como sinal de que o pagamento foi pago; para isso use status.
GET /api/v1/payment/{id}
Detalhes do Pagamento
Obtém informações completas do pagamento
Resposta de Sucesso: (200)
Quando o pagamento chega a um estado final (
expired, canceled, cancelled ou refunded), a resposta vem com HTTP 410 Gone e "terminal": true — o corpo é idêntico ao do 200. Trate 200 e 410 como respostas válidas; um 410 significa "este pagamento existe e não muda mais", não erro. Essas respostas também vêm com Cache-Control: immutable por 24h, então podem ser cacheadas com segurança. Este endpoint não retorna customer_cpf. Se precisar do documento mascarado, use GET /api/v1/payment/{id}/status.
GET /api/v1/payments
Buscar pagamentos pelo seu external_id
Use quando você tem apenas o external_id que enviou na criação e não guardou o payment_id. Retorna sempre uma lista, porque o external_id é definido por você e pode se repetir. Se o seu for único, basta ler data[0].
Parâmetros (query string)
- external_id: Obrigatório. Máximo 50 caracteres
- limit: Opcional. Padrão 20, máximo 100
- offset: Opcional. Padrão 0
Resposta de Sucesso: (200)
Nenhum resultado: retorna 200 com "data": [] e "total": 0 — não 404. Um 404 aqui significaria que a URL está errada, não que a busca não encontrou nada.
Status de Pagamento:
- pending - Aguardando pagamento
- completed - Pagamento confirmado
- expired - Pagamento expirado (ver campo expires_at)
- cancelled - Pagamento cancelado
Webhooks
Os webhooks permitem que sua aplicação receba notificações automáticas em tempo real quando o status de um pagamento muda. Configure uma URL de webhook ao criar um pagamento para receber atualizações instantâneas.
Configuração
Para receber webhooks, inclua o parâmetro webhook_url ao criar um pagamento:
Requisitos do Endpoint
- Seu endpoint deve aceitar requisições POST
- Responda com HTTP 200-299 para confirmar recebimento
- Timeout: 10 segundos por tentativa
- Recomendamos usar HTTPS para segurança
Eventos Disponíveis
- payment.completed - Pagamento confirmado com sucesso
- payment.expired - Pagamento expirado (ver campo expires_at)
- payment.refunded - Pagamento reembolsado
Estrutura do Payload
Atualização 2026-04: payload enriquecido com (1) dados do cliente que preencheu o checkout (objeto customer), (2) dados do pagador PIX separados (objeto payer — vem mascarado por LGPD do BCB), (3) breakdown completo de taxas e valor líquido (objeto amounts), (4) dados do produto/checkout (objeto product).
Evento: payment.completed
Como interpretar:
customer = dados que o cliente digitou no seu checkout (nome, CPF, telefone). Use estes para sua planilha/CRM. payer = dados de quem efetivamente pagou via PIX (vem mascarado por LGPD). Pode ser diferente do customer (ex: pai pagando boleto do filho). amounts.net = valor líquido que você efetivamente recebe (já descontadas todas as taxas).
Eventos: payment.expired e payment.refunded
Mesma estrutura do payment.completed. Os campos completed_at, expired_at e refunded_at indicam qual evento ocorreu (apenas o relevante é preenchido).
Headers da Requisição
Cada webhook enviado inclui os seguintes headers:
Verificação de Assinatura (Webhook Secret)
Cada webhook é assinado com seu Webhook Secret usando HMAC-SHA256. O secret está disponível na seção "Checkouts" do seu dashboard, junto com sua API Key.
Como verificar a assinatura:
- Extraia o
X-Webhook-Timestampe oX-Webhook-Signaturedos headers - Concatene:
timestamp+"."+ body JSON bruto da requisição - Gere o HMAC-SHA256 usando seu Webhook Secret
- Compare com o header
X-Webhook-Signaturede forma timing-safe
Exemplo de Verificação (PHP):
Exemplo de Verificação (Node.js):
Exemplo Completo de Handler (PHP)
external_id para identificar facilmente o pedido no seu sistema quando receber o webhook. Exemplos de Código
Exemplo PHP:
Exemplo JavaScript:
Consultar Status (PHP):
Primeiros Passos
Siga estes passos para começar a usar a PixGo API:
Processo de Cadastro:
- Acesse pixgo.org e crie sua conta
- Valide suas informações de carteira Liquid
- Navegue até a seção "Checkouts"
- Gere sua API Key de produção
- Comece a integrar pagamentos PIX
Chaves de API:
Todas as chaves de API são para uso em produção - não há ambiente de teste separado
Sistema de Progressão - 7 Níveis:
- Nível 1 - Iniciante (0 a R$ 299,99 confirmados): Limite de R$ 300,00 por QR Code
- Nível 2 - Bronze (R$ 300,00 a R$ 499,99 confirmados): Limite de R$ 500,00 por QR Code
- Nível 3 - Prata (R$ 500,00 a R$ 999,99 confirmados): Limite de R$ 1.000,00 por QR Code
- Nível 4 - Ouro (R$ 1.000,00 a R$ 2.999,99 confirmados): Limite de R$ 1.500,00 por QR Code
- Nível 5 - Platina (R$ 3.000,00 a R$ 4.999,99 confirmados): Limite de R$ 2.000,00 por QR Code
- Nível 6 - Diamante (R$ 5.000,00 a R$ 5.999,99 confirmados): Limite de R$ 2.500,00 por QR Code
- Nível Máximo - Elite (R$ 6.000,00+ confirmados): Limite de R$ 6.000,00 por QR Code
- Os limites são baseados no total de pagamentos confirmados (status "completed")
- Carteira Liquid deve estar validada para usar a API
- Valor mínimo: R$ 10,00 por pagamento
- Limite diário por CPF/CNPJ pagador: R$ 6.000,00
- Quantidade ilimitada de QR Codes por dia
- Evolução automática conforme histórico de transações
Monitoramento de Status:
Para acompanhar pagamentos, consulte o endpoint de status periodicamente (recomendado a cada 30 segundos).
Expiração de Pagamentos:
Cada cobrança PIX tem seu próprio prazo de expiração. Use sempre o campo expires_at devolvido na criação e na consulta do pagamento — não assuma um valor fixo.
Suporte
Precisa de ajuda? Entre em contato com nossa equipe:
- Email: [email protected]
- Telegram: Acesse o grupo de suporte através do botão disponível no dashboard da PixGo
- Documentação: Sempre atualizada nesta página
- Documentação sempre atualizada nesta página
- Suporte técnico via email e Telegram para desenvolvedores
- Solicitação de aumento de limites de API disponível