Navegação

API v1.0 · HMAC + Idempotência

Documentação da API Pay2flow

PIX Cash-in, Consulta e Cash-out com segurança HMAC-SHA256, proteção anti-replay e idempotência — desenhado para alta conversão.

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).

Cash-in
/api/gateway/pix/deposit/
Consulta
/api/gateway/pix/status/
Cash-out
/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ódigoDescrição
200OK — Processado com sucesso
400Bad Request — Dados inválidos
401Unauthorized — Falha na autenticação
403Forbidden — Acesso negado
409Conflict — Idempotência/duplicação
500Internal Server Error

Transação

StatusDescriçãoAção
PENDINGCobrança criadaMostrar QR/EMV
PAIDPagamento confirmadoLiberar produto
EXPIREDCobrança expiradaCriar nova
COMPLETEDSaque concluídoAtualizar saldo
FAILEDFalhaRevisar 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.