somente para desenvolvedores

Integre PIX e Cartão sem depender do painel do cliente.

Esta documentação descreve as rotas públicas da PagPix sob a ótica de quem vai implementar uma integração do zero. O foco aqui é: autenticação, payload, resposta, polling de status, webhooks e exemplos de requisição. Não há orientação comercial nem textos de onboarding de usuário final.

Base URL: https://fastpix.site

Fundação
Autenticação

As rotas públicas usam credenciais do cliente PagPix, sempre com os campos client_id e client_secret. Não há bearer token próprio da API pública.

  • Para POST, envie application/json ou application/x-www-form-urlencoded.
  • Para GET, envie os parâmetros na query string.
  • Se as credenciais estiverem incorretas, a resposta será 401.
{ "client_id": "SEU_CLIENT_ID", "client_secret": "SEU_CLIENT_SECRET" }
Fundação
Padrão de resposta

Todas as rotas retornam JSON. Em sucesso, a propriedade success vem como true. Em erro, a propriedade message descreve a falha.

{ "success": true, "transaction_id": 123, "external_id": "abc-123" }
{ "success": false, "message": "client_id ou client_secret inválidos." }
API PIX
1) Gerar cobrança PIX (cash-in)

POST https://fastpix.site/v3/pix/qrcode.php

Cria uma transação de entrada e tenta gerar um PIX no gateway configurado para o cliente. O retorno pode vir com copy_paste, com qrcode, ou com ambos. Se vier só copy_paste, considere a cobrança válida.

CampoObrigatórioDescrição
client_idSimIdentificador da integração do cliente.
client_secretSimSegredo da integração do cliente.
valorSimValor da cobrança em reais. Aceita decimal.
descricaoNãoDescrição exibida/associada à transação. Padrão: Pagamento PIX.
nomeRecomendadoNome do pagador.
cpfRecomendadoCPF/CNPJ do pagador. Também pode ser enviado como documento.
emailNãoEmail do pagador.
telefoneNãoTelefone do pagador.
webhook_urlNãoURL do seu postback. Alias aceitos: callback_url e postbackUrl.
profile_idNãoSeleciona um profile de integração do cliente, quando a conta usa múltiplos perfis.
curl --request POST 'https://fastpix.site/v3/pix/qrcode.php' \ --header 'Content-Type: application/json' \ --data-raw '{ "client_id": "SEU_CLIENT_ID", "client_secret": "SEU_CLIENT_SECRET", "valor": 49.90, "descricao": "Pedido #1001", "nome": "João da Silva", "cpf": "12345678909", "email": "joao@example.com", "telefone": "11999999999", "webhook_url": "https://seu-sistema.com/webhooks/pagpix" }'
{ "success": true, "provider": "pixup", "transaction_id": 123, "external_id": "19569878d83fc64bcfa4mmvm0kc54r8e", "qrcode": null, "copy_paste": "00020101021226...6304B5BE", "message": "O gateway retornou apenas o PIX copia e cola. Use o código abaixo para pagar." }
{ "success": true, "provider": "orendapay", "transaction_id": 124, "external_id": "8343893", "qrcode": "https://.../pix.png", "copy_paste": "00020126810014br.gov...", "message": "Pagamento gerado com sucesso." }
API PIX
2) Solicitar saque PIX (cash-out)

POST https://fastpix.site/v3/pix/payment.php

Cria uma transação de saída usando o saldo da conta do cliente. A resposta já informa fee, debit_total e net_amount. A liquidação final depende do webhook do gateway ou da consulta posterior de status.

CampoObrigatórioDescrição
client_idSimIdentificador da integração.
client_secretSimSegredo da integração.
valorSimValor que o recebedor deve receber.
chave_pixSim*Chave PIX de destino. Alias aceitos: pix_key e chave.
tipo_chaveSim*Tipos aceitos: cpf, cnpj, email, telefone, aleatoria. Alias aceito: pix_key_type.
documentoRecomendadoDocumento do favorecido/solicitante, quando exigido pelo gateway.
descricaoNãoDescrição interna do saque.
webhook_urlNãoSeu postback para atualização da retirada.
profile_idNãoProfile de integração do cliente.
curl --request POST 'https://fastpix.site/v3/pix/payment.php' \ --header 'Content-Type: application/json' \ --data-raw '{ "client_id": "SEU_CLIENT_ID", "client_secret": "SEU_CLIENT_SECRET", "valor": 25.00, "chave_pix": "12345678909", "tipo_chave": "cpf", "documento": "12345678909", "descricao": "Saque API", "webhook_url": "https://seu-sistema.com/webhooks/pagpix/withdraw" }'
{ "success": true, "provider": "pixup", "transaction_id": 91, "external_id": "pixupco91u7a1a8b7c6d5", "fee": 1, "debit_total": 26, "net_amount": 25 }
{ "success": false, "message": "Falha ao gerar saque no gateway configurado.", "provider": "pixup", "attempts": [], "fee": 1, "debit_total": 26 }
Consulta
3) Consultar status da transação

GET / POST https://fastpix.site/v3/transactions/status.php

Use esta rota para polling quando você ainda não recebeu o webhook ou quer confirmar o estado consolidado de uma transação local da PagPix.

CampoObrigatórioDescrição
client_idSimCredencial do cliente.
client_secretSimSegredo do cliente.
transaction_idSim*ID interno da transação na PagPix.
external_idSim*ID externo retornado pelo gateway. Informe este campo quando não tiver o transaction_id.
curl --request GET 'https://fastpix.site/v3/transactions/status.php?client_id=SEU_CLIENT_ID&client_secret=SEU_CLIENT_SECRET&transaction_id=123'
{ "success": true, "transaction_id": 123, "external_id": "19569878d83fc64bcfa4mmvm0kc54r8e", "type": "cashin", "status": "paid", "amount": 49.9, "fee": 0, "net_amount": 49.9, "description": "Pedido #1001", "provider": "pixup", "created_at": "2026-03-22 10:00:00", "updated_at": "2026-03-22 10:03:10" }
API Cartão
4) Obter public key do gateway de cartão

GET / POST https://fastpix.site/v3/card/public-key.php

Hoje essa rota só retorna chave quando o adquirente de cartão ativo for PagBank. A resposta deve ser consumida no frontend para criptografar o cartão antes do envio da cobrança.

curl --request GET 'https://fastpix.site/v3/card/public-key.php?client_id=SEU_CLIENT_ID&client_secret=SEU_CLIENT_SECRET'
{ "success": true, "gateway": "pagbank", "public_key": "PAGBANK_PUBLIC_KEY" }
API Cartão
5) Criar cobrança no cartão

POST https://fastpix.site/v3/card/charge.php

A rota cria a transação local e repassa a operação ao PagBank. O campo encrypted_card deve ser gerado no navegador do cliente usando a public key obtida na rota anterior.

CampoObrigatórioDescrição
client_idSimCredencial da integração.
client_secretSimSegredo da integração.
valorSimValor da cobrança em reais. Alias aceito: amount.
encrypted_cardSimCartão criptografado no frontend.
holder_nameSimNome do portador exatamente como no cartão.
holder_tax_idSimCPF do portador.
parcelasNãoNúmero de parcelas de 1 a 12. Alias aceito: installments.
nomeRecomendadoNome do comprador.
emailRecomendadoEmail do comprador.
cpfRecomendadoDocumento do comprador.
telefoneNãoTelefone do comprador.
descricaoNãoDescrição da cobrança.
curl --request POST 'https://fastpix.site/v3/card/charge.php' \ --header 'Content-Type: application/json' \ --data-raw '{ "client_id": "SEU_CLIENT_ID", "client_secret": "SEU_CLIENT_SECRET", "valor": 149.90, "encrypted_card": "CARD_TOKEN_CRIPTOGRAFADO", "holder_name": "JOAO DA SILVA", "holder_tax_id": "12345678909", "parcelas": 1, "nome": "João da Silva", "email": "joao@example.com", "cpf": "12345678909", "telefone": "11999999999", "descricao": "Assinatura mensal" }'
{ "success": true, "gateway": "pagbank", "transaction_id": 987, "external_id": "CHAR_ABC123", "status": "PAID", "message": "Pagamento aprovado.", "response": { "id": "ORDER_123", "charges": [ {"id": "CHAR_ABC123", "status": "PAID"} ] } }
Callbacks
Webhooks do integrador

Quando você envia webhook_url, callback_url ou postbackUrl na criação de uma transação, a PagPix envia um POST JSON para a sua URL sempre que houver atualização relevante. O payload é padronizado pelo tipo da transação.

Eventos de entrada / cartão

  • transaction.pending
  • transaction.paid
  • transaction.cancelled

Eventos de saída

  • withdrawal.pending
  • withdrawal.completed
  • withdrawal.failed
{ "event": "transaction.paid", "transaction_id": 123, "external_id": "19569878d83fc64bcfa4mmvm0kc54r8e", "type": "cashin", "status": "paid", "amount": 49.9, "fee": 0, "net_amount": 49.9, "description": "Pedido #1001", "provider": "pixup", "created_at": "2026-03-22 10:00:00", "updated_at": "2026-03-22 10:03:10" }
Operação
Erros, compatibilidade e boas práticas
HTTPQuando ocorre
400Parâmetros obrigatórios ausentes, como client_id, client_secret ou identificadores da transação.
401Credenciais inválidas.
403Produto do cliente bloqueado, IP não autorizado ou modo de operação desabilitado.
404Usuário ou transação não encontrados.
405Método HTTP incompatível com a rota.
422Payload inválido, gateway de cartão não suportado na rota, ou falha operacional do adquirente.
502 / 503Nenhum gateway compatível disponível ou falha de infraestrutura/configuração.
  • Guarde sempre o transaction_id da PagPix. Ele é a referência primária para polling de status e troubleshooting.
  • No PIX, trate copy_paste como suficiente para pagamento. Nem todo gateway retorna uma imagem/base64 do QR.
  • No cartão, gere o encrypted_card apenas no frontend. Não envie PAN bruto para o seu backend.
  • Use webhook + polling. Webhook resolve o fluxo principal; polling cobre perda de callback ou atraso do gateway.