📄 Documentação API

DEPIX PAY - API de Pagamentos PIX

Base URL

https://api.depixpay.com/api/v1

Todas as requisições devem usar HTTPS. HTTP não é suportado.

🔐 Autenticação

Todas as requisições devem incluir sua API Key no header:

Authorization: Bearer dpx_sua_api_key_aqui

Sua API Key é gerada no momento do cadastro. Guarde-a em segurança — ela não pode ser recuperada.

⚠️ Nunca exponha sua API Key em código frontend. Use sempre server-side.

📊 Limites (Compliance Eulen)

O DEPIX PAY segue as diretrizes de compliance da Eulen/Banco Central:

Limite Valor Descrição
Por transação R$ 5.000 Limite máximo do QR Code dinâmico (imposição bancária)
Primeira compra (CPF novo) R$ 500 Proteção contra fraudes MED. Após 1ª compra confirmada, limite aumenta.
Limite diário por CPF R$ 6.000 Soma de todas as transações do CPF no dia
💡 Dica: Para receber R$ 6.000 no dia de um mesmo CPF, divida em múltiplas transações de até R$ 5.000 cada.

Erros de Limite

Código Descrição
SINGLE_TX_LIMIT Valor excede R$ 5.000 por transação
FIRST_PURCHASE_LIMIT CPF novo, primeira compra limitada a R$ 500
CPF_DAILY_LIMIT CPF atingiu limite diário de R$ 6.000

⏱️ QR Delay — Proteção Antifraude

Por orientação oficial da Eulen (provedora do DePix) e como medida de proteção contra fraudes, todo merchant recém-cadastrado começa com um delay de D+5 (120 horas) entre a confirmação do pagamento Pix e a conversão para DePix. Conforme o merchant constrói reputação com pagamentos confirmados, o delay pode ser reduzido pela nossa equipe.

⚠️ Importante: O QR Delay não afeta o pagamento Pix — seu cliente paga e recebe a confirmação normalmente. O delay aplica-se apenas à liquidação em DePix na sua wallet Liquid.

Como funciona

  1. Você cria a cobrança via POST /payment/create normalmente — sem precisar passar nenhum parâmetro extra.
  2. O cliente paga o QR Code Pix instantaneamente.
  3. O pagamento entra em status delayed aguardando a janela de proteção (D+5 por padrão).
  4. Você recebe um webhook payment.delayed assim que o Pix é confirmado pela Eulen.
  5. Após o delay expirar, o DePix é liberado na sua wallet e o status muda para completed com webhook payment.completed.

Tabela de delays por reputação

Estágio do Merchant Delay padrão Equivalente
Novo (sem histórico)120hD+5
Reputação inicial72hD+3
Reputação consolidada48hD+2
Histórico positivo extenso24hD+1
Parceiros verificados (sob análise)0hImediato
💡 Para solicitar redução do seu delay, envie histórico de operações para @depixoficial no Telegram após acumular pagamentos confirmados.

Consultando seu delay atual

O delay configurado para sua conta aparece em GET /merchant/me:

{
  "success": true,
  "data": {
    "id": "...",
    "name": "Sua Loja",
    "level_name": "Nível 1",
    "qr_delay_hours": 120,
    "qr_delay_label": "D+5",
    ...
  }
}

Resposta do /payment/create com delay ativo

Quando o delay está ativo, a resposta da criação do pagamento inclui qr_delay_hours e settlement_info:

{
  "success": true,
  "data": {
    "payment_id": "dep_abc123xyz",
    "amount": 100.00,
    "status": "pending",
    "qr_code": "00020126...",
    "qr_delay_hours": 120,
    "settlement_info": "Após o pagamento Pix, a liquidação em DePix ocorrerá em 120h (D+5) — proteção antifraude/MED.",
    "expires_at": "2026-02-15T20:00:00Z",
    "created_at": "2026-02-15T19:40:00Z"
  }
}

Webhook payment.delayed

Quando o Pix é confirmado e o pagamento entra em janela de delay:

{
  "event": "payment.delayed",
  "payment_id": "dep_abc123xyz",
  "amount": 100.00,
  "status": "delayed",
  "qr_delay_hours": 120,
  "delay_ends_at": "2026-02-20T19:45:00Z"
}
🚫 Atenção: O delay não pode ser alterado depois que o QR Code é gerado. O valor aplicado é o que estava configurado na sua conta no momento da criação da cobrança.

Por que o D+5? MED — Mecanismo Especial de Devolução

O MED é um mecanismo do Banco Central que permite ao pagador solicitar devolução de um Pix em casos de fraude (golpe). Como o DePix é convertido após esta janela, o delay protege:

💳 Pagamentos

POST /payment/create

Cria um novo pagamento PIX e retorna o QR Code.

Parâmetros

Campo Tipo Status Descrição
amount number Obrigatório Valor em reais (ex: 100.00). Mínimo R$ 10.
customer_name string Opcional Nome completo do pagador
customer_cpf string Opcional CPF (11 dígitos) ou CNPJ (14 dígitos)
customer_email string Opcional Email do pagador
description string Opcional Descrição do pagamento (max 200 chars)
external_id string Opcional Seu ID interno para referência
webhook_url string Opcional URL para receber notificações deste pagamento

Exemplo Request

curl -X POST https://api.depixpay.com/api/v1/payment/create \
  -H "Authorization: Bearer dpx_sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100.00,
    "customer_name": "João Silva",
    "customer_cpf": "12345678901",
    "description": "Pedido #123"
  }'

Exemplo Response (201)

{
  "success": true,
  "data": {
    "payment_id": "dep_abc123xyz",
    "amount": 100.00,
    "status": "pending",
    "qr_code": "00020126...",
    "qr_image_url": "https://response.eulen.app/...",
    "expires_at": "2026-02-15T20:00:00Z",
    "created_at": "2026-02-15T19:40:00Z"
  }
}

GET /payment/{payment_id}/status

Consulta o status de um pagamento.

Status possíveis

Status Descrição
pendingAguardando pagamento
delayedPix pago, aguardando janela antifraude (ver QR Delay)
completedPago, janela cumprida e DePix liberado
expiredQR Code expirou (20 min)
cancelledCancelado
refundedEstornado (MED)

GET /payments

Lista os últimos 50 pagamentos do merchant.

🔔 Webhooks

Quando um pagamento muda de status, enviamos um POST para a URL configurada:

Payload do Webhook

{
  "event": "payment.completed",
  "payment_id": "dep_abc123xyz",
  "external_id": "pedido_123",
  "amount": 100.00,
  "status": "completed",
  "customer_name": "João Silva",
  "customer_cpf": "12345678901",
  "completed_at": "2026-02-15T19:45:00Z"
}

Eventos

Evento Descrição
payment.delayedPix confirmado, entrou em janela de proteção antifraude
payment.completedDePix liberado na wallet do merchant
payment.expiredQR Code expirou sem pagamento
💡 Responda com HTTP 200 para confirmar recebimento. Tentamos até 3 vezes em caso de falha.

❌ Códigos de Erro

Código HTTP Descrição
UNAUTHORIZED401API Key inválida ou ausente
INVALID_AMOUNT400Valor inválido
MIN_AMOUNT400Valor abaixo do mínimo (R$ 10)
SINGLE_TX_LIMIT400Valor excede R$ 5.000/transação
FIRST_PURCHASE_LIMIT400CPF novo, máx R$ 500 na 1ª compra
CPF_DAILY_LIMIT400CPF atingiu limite diário (R$ 6.000)
INVALID_CPF400CPF/CNPJ inválido
NOT_FOUND404Pagamento não encontrado
PROVIDER_ERROR502Erro no provedor PIX

Exemplo de Erro

{
  "success": false,
  "error": "CPF_DAILY_LIMIT",
  "message": "Limite diário de R$ 6.000,00 por CPF atingido",
  "daily_limit": 6000,
  "daily_used": 5500,
  "remaining": 500
}