Visão Geral
A API Pay2flow oferece três endpoints principais para integração completa com o ecossistema PIX: Cash-in (criação de cobrança), Consulta de Status e Cash-out (saque).
/api/gateway/pix/deposit//api/gateway/pix/status//api/gateway/pix/withdraw/Credenciais
Solicite suas chaves via suporte: pay2flow_user_api (pública) e pay2flow_secret_key (secreta).
Autenticação & Segurança
Todos os endpoints exigem HMAC-SHA256 com proteção anti-replay e idempotência.
Headers obrigatórios
| Header | Descrição |
|---|---|
X-P2F-Key |
Sua chave pública (pay2flow_user_api). |
X-P2F-Timestamp |
Unix epoch (segundos), tolerância ±5min. |
X-P2F-Nonce |
Hex aleatório (16–128 chars) — anti-replay. |
Idempotency-Key |
ID único da requisição (10–128 chars). |
Digest |
Assinatura do corpo: SHA-256:<base64>. |
X-P2F-Signature |
HMAC-SHA256 da string canônica. |
String Canônica
POST
/api/gateway/pix/deposit/
X-P2F-Key:<SUA_CHAVE_PUBLICA>
X-P2F-Timestamp:<TIMESTAMP>
X-P2F-Nonce:<NONCE>
Idempotency-Key:<IDEMPOTENCY_KEY>
Digest:SHA-256:<DIGEST_BASE64>
Para /status/ e /withdraw/, altere apenas o path na primeira linha.
PIX Cash-in (Depósito)
POST/api/gateway/pix/deposit/Gere cobranças PIX (EMV “copia e cola”).
Request Body
{
"valor_total": 159.90,
"numero_pedido": "PEDIDO-externo-123",
"payer": {
"name": "João Silva",
"email": "joao@example.com",
"cpf": "12345678909"
}
}
Response (200)
{
"transaction_id": "fbk_tx_ABC123",
"numero_pedido": "PEDIDO-externo-123",
"status": "PENDING",
"pix_emv": "<EMV copia-e-cola PIX>",
"amount": 159.9
}
Consulta de Status
POST/api/gateway/pix/status/Consulte usando transaction_id e/ou numero_pedido.
Request Body
{
"numero_pedido": "PEDIDO-externo-123",
"transaction_id": "fbk_tx_ABC123"
}
Response (200)
{
"numero_pedido": "PEDIDO-externo-123",
"transaction_id": "fbk_tx_ABC123",
"status": "PAID",
"amount": 159.9,
"fee": 0,
"net_amount": 159.9,
"created_at": "2025-08-12 22:20:51",
"updated_at": "2025-08-12 22:23:49"
}
PIX Cash-out (Saque)
POST/api/gateway/pix/withdraw/
Permite saques via PIX a partir do saldo disponível.
Importante: quando o provedor retornar status: "WITHDRAW_REQUEST" com transactionId,
consideramos o saque processado com sucesso e respondemos como COMPLETED (sem necessidade de consulta posterior).
Request Body
{
"amount": 123.45,
"saque_method": "PIX",
"beneficiary_name": "Fulano de Tal",
"beneficiary_document": "12345678909",
"pix_key_type": "cpf_cnpj",
"pix_key": "12345678909"
}
Response (200)
{
"withdrawal_id": 123,
"transaction_id": "a703cffe-6e5e-41b8-b897-3fc2210667f2",
"status": "COMPLETED",
"amount": 123.45
}
Códigos de Status
HTTP
| Código | Descrição |
|---|---|
| 200 | OK — Processado com sucesso |
| 400 | Bad Request — Dados inválidos |
| 401 | Unauthorized — Falha na autenticação |
| 403 | Forbidden — Acesso negado |
| 409 | Conflict — Idempotência/duplicação |
| 500 | Internal Server Error |
Transação
| Status | Descrição | Ação |
|---|---|---|
PENDING | Cobrança criada | Mostrar QR/EMV |
PAID | Pagamento confirmado | Liberar produto |
EXPIRED | Cobrança expirada | Criar nova |
COMPLETED | Saque concluído | Atualizar saldo |
FAILED | Falha | Revisar e tentar |
Observação: WITHDRAW_REQUEST com transactionId é mapeado como COMPLETED na resposta do nosso endpoint.
Suporte & Contato
Time disponível para credenciais, sandbox, troubleshooting e boas práticas de integração.
📧 Suporte Técnico
contato@pay2flow.com
📖 Documentação
Sempre atualizada com exemplos reais.
🔧 Sandbox
Ambiente de testes sob demanda.
*Indicadores internos sob condições ideais e análise de risco.