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.
📊 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 |
| Limite diário do merchant | R$ 500 / R$ 3.000 | R$ 500/dia sem email verificado; R$ 3.000/dia após verificar o email |
customer_cpf (ou euid). É exigência da Eulen para prevenção a fraudes — pagamentos de outra titularidade são devolvidos.
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.
Como funciona
- Você cria a cobrança via
POST /payment/createnormalmente — sem precisar passar nenhum parâmetro extra. - O cliente paga o QR Code Pix instantaneamente.
- O pagamento entra em status
delayedaguardando a janela de proteção (D+5 por padrão). - Você recebe um webhook
payment.delayedassim que o Pix é confirmado pela Eulen. - Após o delay expirar, o DePix é liberado na sua wallet e o status muda para
completedcom webhookpayment.completed.
Tabela de delays por reputação
| Estágio do Merchant | Delay padrão | Equivalente |
|---|---|---|
| Novo (sem histórico) | 120h | D+5 |
| Reputação inicial | 72h | D+3 |
| Reputação consolidada | 48h | D+2 |
| Histórico positivo extenso | 24h | D+1 |
| Parceiros verificados (whitelist, sob análise) | 1h | Mínimo |
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"
}
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:
- O DepixPay e a Eulen contra estornos de Pix fraudulentos já convertidos em DePix.
- Você (merchant) contra ter sua conta encerrada por receber dinheiro de origem fraudulenta.
- A rede DePix como um todo, evitando lavagem via stablecoin.
💳 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_cpf |
string | Obrigatório* | Identificação do pagador (exigência Eulen, prevenção a fraudes). CPF (11 díg.) ou CNPJ (14 díg.). *Pode ser substituído por euid. |
euid |
string | Alternativa | Identidade Eulen do pagador. Envie euid OU customer_cpf. Pagamentos de outra titularidade são devolvidos. |
customer_name |
string | Recomendado | Nome do pagador (max 100 chars) |
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 |
|---|---|
pending | Aguardando pagamento |
delayed | Pix pago, aguardando janela antifraude (ver QR Delay) |
completed | Pago, janela cumprida e DePix liberado |
expired | QR Code expirou (20 min) |
cancelled | Cancelado |
refunded | Estornado (MED) |
GET /payments
Lista os últimos 50 pagamentos do merchant.
🏧 Saque (DEPIX → PIX)
Converta seu saldo em DEPIX de volta para reais via PIX. Modelo não-custodial: a API cria o saque e devolve um endereço Liquid; você envia o DEPIX da sua própria carteira para esse endereço e, após a confirmação on-chain, o PIX cai na sua chave. A plataforma nunca custodia seus fundos. Requer conta ativada (euid + CPF/CNPJ verificados).
POST /withdraw
Cria uma solicitação de saque. Informe exatamente um valor — o outro é calculado automaticamente (taxa da Eulen já embutida).
Parâmetros
| Campo | Tipo | Status | Descrição |
|---|---|---|---|
pixKey |
string | Obrigatório | Chave PIX de destino. Pode ser de qualquer tipo (email, telefone, aleatória, CPF/CNPJ), mas deve estar registrada no mesmo CPF/CNPJ da sua conta — chave de outra titularidade é recusada automaticamente pelo banco. |
payoutAmountInCents |
number | Obrigatório* | Valor a receber em reais (cents). *Informe este OU depositAmountInCents. |
depositAmountInCents |
number | Alternativa | Valor de DEPIX a enviar (cents), mutuamente exclusivo com o de cima. |
Resposta
{
"success": true,
"data": {
"withdrawal_id": "wd_abc123def456ghij",
"status": "unsent",
"deposit_address": "lq1qq0z...seu-endereco-de-envio",
"deposit_amount_cents": 5050,
"payout_amount_cents": 5000
},
"notice": "Envie 50.50 DEPIX da sua carteira para deposit_address..."
}
GET /withdraw/{id}
Consulta o status de um saque (reconciliado com a Eulen em tempo real).
GET /withdraw/list
Lista seus saques (mais recentes primeiro).
Status do Saque
| Status | Descrição |
|---|---|
unsent | Aguardando você enviar o DEPIX |
sending | DEPIX recebido — processando o PIX |
sent | PIX enviado com sucesso |
canceled | Saque cancelado |
refunded | DEPIX devolvido |
error | Erro no processamento |
🔗 Links de Pagamento
Crie um link que você envia ao cliente. O QR só é gerado quando o cliente abre o link — a expiração conta a partir da abertura (não da criação), e o QR se renova automaticamente se expirar. Ideal para checkout de produtos.
POST /payment/link
Cria um link de pagamento. Retorna a URL pública.
| Campo | Tipo | Status | Descrição |
|---|---|---|---|
amount | number | Obrigatório | Valor em reais |
type | string | Opcional | single (paga 1x e encerra) ou product (reutilizável). Default: single |
description | string | Opcional | Descrição exibida ao cliente |
customer_cpf | string | Opcional | Se informado, o cliente não precisa preencher. Se vazio, a página pede o CPF. |
external_id | string | Opcional | ID do pedido na sua loja (ex: WooCommerce). Volta no webhook para casar o pedido. Use com type: single. |
webhook_url | string | Opcional | URL da sua loja a notificar quando o link for pago. O merchantId é sempre associado automaticamente (o link pertence à sua conta ativada). |
Resposta
{
"success": true,
"data": {
"token": "Ab3xY9...",
"type": "single",
"amount": 100.00,
"url": "https://depixpay.com/p/Ab3xY9..."
}
}
GET /payment/links
Lista seus links de pagamento (tipo, valor, status, quantidade de pagamentos).
A página pública coleta o CPF (se necessário), gera o QR ao abrir e acompanha o pagamento automaticamente. Você recebe o webhook payment.completed normalmente quando for pago.
🔔 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.delayed | Pix confirmado, entrou em janela de proteção antifraude |
payment.completed | DePix liberado na wallet do merchant |
payment.expired | QR Code expirou sem pagamento |
❌ Códigos de Erro
| Código | HTTP | Descrição |
|---|---|---|
UNAUTHORIZED | 401 | API Key inválida ou ausente |
EMAIL_NOT_VERIFIED | 403 | Verifique seu email antes de criar cobranças |
ACTIVATION_REQUIRED | 403 | Conta não ativada: faça o 1º pagamento de R$ 10 de uma conta de sua titularidade (mesmo CPF/CNPJ) para capturar seu EUID. Toda cobrança posterior carrega esse merchantId. No painel: "Ativar conta" |
PAYER_IDENTIFICATION_REQUIRED | 400 | Falta identificação do pagador: envie customer_cpf ou euid (exigência Eulen) |
INVALID_LIQUID_ADDRESS | 400 | Endereço Liquid do merchant inválido — corrija antes de receber |
INVALID_AMOUNT | 400 | Valor inválido |
MIN_AMOUNT | 400 | Valor abaixo do mínimo (R$ 10) |
SINGLE_TX_LIMIT | 400 | Valor excede R$ 5.000/transação |
FIRST_PURCHASE_LIMIT | 400 | CPF novo: máx R$ 500 (verificado) / R$ 100 (não verificado) na 1ª compra |
CPF_DAILY_LIMIT | 400 | CPF atingiu limite diário (R$ 6.000) |
MERCHANT_DAILY_LIMIT | 400 | Limite diário do merchant atingido (R$ 500 não verif. / R$ 3.000 verif.) |
RATE_LIMIT_EXCEEDED | 429 | Muitas cobranças por hora — aguarde |
INVALID_CPF | 400 | CPF/CNPJ inválido |
NOT_FOUND | 404 | Pagamento não encontrado |
PROVIDER_ERROR | 502 | Erro 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
}