Portal para desenvolvedores Domvex

Encontre guias de integração e a referência da API para desenvolver e conectar seus pagamentos com a Domvex.

Credenciais no servidorGuarde client_id e client_secret no backend. Nunca os inclua em aplicativos ou código público.
Uma referência por operaçãoUse external_id único e registre-o para reconciliar respostas, callbacks e extrato.
Confirme antes de repetirUm timeout pode acontecer depois que a solicitação foi aceita. Confira o estado antes de enviar outra operação.

Autenticação

Troque suas credenciais de API por um token JWT.

POST/api/auth/loginSem token

Envie client_id e client_secret no corpo JSON. O token tem validade de uma hora; autentique novamente quando expirar.

Requisição · cURL
curl -X POST https://api.domvexbr.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"client_id":"SEU_CLIENT_ID","client_secret":"SEU_CLIENT_SECRET"}'
Resposta · 200
{
  "message": "Authentication successful.",
  "token": "eyJ...token",
  "user": {
    "id": 42,
    "name": "Sua empresa",
    "email": "financeiro@exemplo.com",
    "client_id": "SEU_CLIENT_ID"
  }
}
Proteja o segredo. Não envie credenciais para o navegador, aplicativos móveis ou repositórios. Use variáveis seguras no backend.

Consultar saldo

Retorna valores disponíveis, bloqueados e o total.

GET/api/accounts/balanceAutenticado
Requisição
curl https://api.domvexbr.com/api/accounts/balance \
  -H "Authorization: Bearer SEU_TOKEN"
Resposta · 200
{
  "message": "Wallet balance retrieved successfully.",
  "total_balance": 1250.50,
  "balance": 1200.50,
  "balance_block": 50.00
}

total_balance corresponde à soma de balance e balance_block.

Pix · receber

Cria uma cobrança Pix e retorna o código copia e cola.

POST/api/payments/depositAutenticado · 10 criações/minuto

O código qrcode é o Pix copia e cola. A cobrança fica pendente até a confirmação e o saldo líquido é creditado conforme as tarifas da conta.

CampoObrigatórioDescrição
amountSimValor da cobrança em BRL. O mínimo é definido para a conta.
external_idSimReferência única definida pela sua aplicação.
clientCallbackUrlSimURL HTTPS pública para receber eventos da operação.
payer.nameSimNome do pagador.
payer.emailSimE-mail do pagador.
payer.documentSimCPF ou CNPJ do pagador.
Requisição
curl -X POST https://api.domvexbr.com/api/payments/deposit \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 25.90,
    "external_id": "pedido-1042-pix",
    "clientCallbackUrl": "https://app.exemplo.com.br/hooks/avalonpay",
    "payer": {
      "name": "João da Silva",
      "email": "joao@exemplo.com",
      "document": "12345678901"
    }
  }'
Resposta · 201
{
  "message": "Deposit created successfully.",
  "qrCodeResponse": {
    "transactionId": "identificador-da-transacao",
    "status": "PENDING",
    "qrcode": "00020126...",
    "amount": "25.90"
  }
}
Use uma referência nova por cobrança. Se a conexão cair, consulte o extrato da conta antes de criar outra para evitar duplicidade.

Cartão · checkout

Redireciona o pagador para um checkout hospedado e protegido.

POST/api/payments/checkoutAutenticado · 10 criações/minuto

Defina payment_method como card para cartão ou boleto para boleto via checkout. Abra a URL retornada no navegador. Os dados do cartão são informados no checkout hospedado.

CampoObrigatórioDescrição
amountSimDe R$ 1,00 a R$ 99.999.999,99, com até duas casas decimais.
external_idSimReferência de até 100 caracteres. Repetições idênticas recuperam o checkout.
clientCallbackUrlSimCallback HTTPS público.
payer.emailSimE-mail do pagador.
payment_methodSimcard ou boleto.
return_urlNãoURL HTTPS para retorno ao seu site.
descriptionNãoTexto do item exibido no checkout.
Requisição · cartão
curl -X POST https://api.domvexbr.com/api/payments/checkout \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 89.90,
    "external_id": "pedido-1042-card",
    "clientCallbackUrl": "https://app.exemplo.com.br/hooks/avalonpay",
    "payment_method": "card",
    "description": "Pedido 1042",
    "return_url": "https://app.exemplo.com.br/pedido/1042",
    "payer": {
      "name": "João da Silva",
      "email": "joao@exemplo.com",
      "document": "12345678901"
    }
  }'
Resposta · 201
{
  "message": "Payment checkout created successfully.",
  "paymentResponse": {
    "transactionId": "referencia-da-transacao",
    "status": "PENDING",
    "amount": "89.90",
    "payment_method": "card",
    "checkoutUrl": "URL HTTPS retornada pela operação",
    "preferenceId": "identificador-do-checkout"
  }
}
A API Domvex não recebe nem armazena número do cartão ou código de segurança. Não envie esses dados neste endpoint.
Reutilizar a mesma referência com valor, callback ou método diferentes retorna 409. Em caso de timeout, repita somente a mesma solicitação ou confira o painel.

Boleto

Emite uma cobrança para cliente ou um boleto para adicionar saldo.

POST/api/payments/boletoAutenticado · 10 criações/minuto

O mesmo endpoint atende depósito e cobrança. Use external_id exclusivo para identificar cada finalidade e envie o endereço completo do pagador.

CampoObrigatórioDescrição
amountSimValor entre R$ 1,00 e R$ 99.999.999,99.
external_idSimReferência de até 100 caracteres.
descriptionNãoDescrição da cobrança.
payer.name/email/documentSimNome, e-mail e CPF/CNPJ numérico do pagador.
payer.addressSimstreet_name, street_number, neighborhood, city, state (UF) e zip_code (8 dígitos).
Requisição
curl -X POST https://api.domvexbr.com/api/payments/boleto \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 120.00,
    "external_id": "cobranca-1042",
    "description": "Pedido 1042",
    "payer": {
      "name": "João da Silva",
      "email": "joao@exemplo.com",
      "document": "12345678901",
      "address": {
        "street_name": "Rua das Flores",
        "street_number": "123",
        "neighborhood": "Centro",
        "city": "Florianópolis",
        "state": "SC",
        "zip_code": "88010000"
      }
    }
  }'
Resposta · 201
{
  "message": "Boleto created successfully.",
  "paymentResponse": {
    "transactionId": "identificador-da-transacao",
    "external_id": "cobranca-1042",
    "status": "PENDING",
    "amount": "120.00",
    "payment_method": "boleto",
    "boleto": {
      "barcode_content": "codigo-de-barras-quando-disponivel",
      "digitable_line": "linha-digitavel",
      "expiration_date": "data-de-vencimento"
    }
  }
}

O prazo de vencimento vem na resposta. Para atualizar o estado, consulte o endpoint de status. A página Domvex também gera um PDF próprio com a linha digitável e o código de barras retornados.

Consultar status
curl "https://api.domvexbr.com/api/payments/boleto/cobranca-1042/status" \
  -H "Authorization: Bearer SEU_TOKEN"

Uma referência repetida com o mesmo valor retorna a cobrança existente; se o valor for diferente, a API responde 409.

Pix · enviar

Solicita um saque da carteira para uma chave Pix.

POST/api/withdrawals/withdrawAutenticado · IP autorizado

A operação reserva o valor mais as tarifas da conta. A resposta pode indicar PROCESSING; nesse caso, consulte o extrato e não envie uma nova referência até confirmar o estado.

Requisição
curl -X POST https://api.domvexbr.com/api/withdrawals/withdraw \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 40.00,
    "external_id": "saque-1042",
    "pix_key": "12345678901",
    "key_type": "CPF",
    "name": "João da Silva",
    "taxId": "12345678901",
    "description": "Saque 1042",
    "clientCallbackUrl": "https://app.exemplo.com.br/hooks/avalonpay"
  }'
Resposta · 200
{
  "message": "Withdrawal processed successfully.",
  "withdrawal": {
    "transaction_id": "identificador-da-transacao",
    "status": "PROCESSING",
    "amount": 40.00,
    "type": "Withdrawal"
  }
}
Saque duplicado com o mesmo external_id é recusado. A lista de endereços IP autorizados da conta também se aplica à operação.

Pagar por QR Code Pix

Confira o valor e as tarifas antes de confirmar o débito.

POST/api/withdrawals/withdraw/qrcode/quoteAutenticado

Envie qr_code e, quando o código não incluir valor, informe também amount. A cotação não debita saldo.

Requisição
{
  "qr_code": "00020126...",
  "amount": 20.00
}
Resposta · 200
{
  "merchant": "LOJA EXEMPLO",
  "city": "FLORIANOPOLIS",
  "amount": 20.00,
  "fee": 0.20,
  "api_fee": 0.10,
  "total": 20.30,
  "available_balance": 100.00,
  "sufficient_balance": true,
  "requires_amount": false
}
POST/api/withdrawals/withdraw/qrcodeAutenticado · confirmação explícita

Confirme a cotação enviando o mesmo código e o valor total calculado em expected_total. A referência deve ter de 16 a 191 caracteres e conter letras, números, hífen ou sublinhado.

Requisição
{
  "qr_code": "00020126...",
  "external_id": "pagamento-qr-1042-001",
  "expected_total": 20.30,
  "amount": 20.00
}
Resposta 202 significa que o pagamento segue em confirmação. Consulte o extrato antes de tentar novamente. A referência não pode ser reaproveitada para outro QR ou valor.

Split automático

Divisão configurada para a conta no momento da liquidação.

Como o valor é dividido

Após as tarifas aplicáveis, a regra ativa da conta pode creditar uma porcentagem do valor líquido a um destinatário configurado. O restante é creditado à conta que criou o pagamento.

Configuração pela API

Não há endpoint público para criar ou alterar destinatários e percentuais de split. A configuração é feita na conta Domvex. Não envie campos de split nas operações de pagamento.

Callbacks

Receba atualizações no endpoint HTTPS informado na operação.

O callback precisa usar HTTPS na porta 443 e resolver para endereços públicos. Endereços locais ou privados, redirecionamentos e URLs com credenciais são recusados.

Os callbacks de depósitos Pix incluem um aviso inicial de criação e uma atualização após liquidação. O checkout envia o estado da liquidação. Saques enviam o resultado da solicitação. Boletos têm consulta de status autenticada; consulte o endpoint de boleto quando precisar atualizar a cobrança.

Exemplo de evento
{
  "transaction_id": "identificador-da-transacao",
  "status": "COMPLETED",
  "amount": "25.90",
  "type": "Deposit"
}

Responda com um código HTTP 2xx. Valide a referência e consulte o saldo/extrato da própria conta antes de marcar pedidos como pagos. Não confie apenas no conteúdo recebido.

Erros e segurança

Respostas comuns e boas práticas para integração.

HTTPSignificadoAção sugerida
400Campo ausente ou inválido, saldo insuficiente ou operação recusada.Corrija os dados e confira a resposta antes de reenviar.
401Token ausente ou inválido.Autentique novamente com as credenciais da API.
403Credencial sem permissão ou IP não autorizado.Confira as permissões e a lista de IPs da conta.
409A referência já foi usada com dados diferentes ou a cotação mudou.Use uma nova referência ou gere uma nova cotação.
422QR Code ou valor não aceito.Confira o QR e os dados exigidos para aquela operação.
429Limite de requisições atingido.Aguarde antes de tentar novamente.
502 / 503Serviço de pagamento indisponível ou sem resposta conclusiva.Consulte status/extrato antes de repetir uma operação financeira.
Todas as respostas incluem X-Request-Id. Guarde esse identificador ao abrir um chamado. Use HTTPS e nunca registre tokens, documentos, chaves Pix ou dados completos do pagador em logs.

Atualizações da documentação

Registro das mudanças visíveis para quem integra.

19 out 2026 · Nova navegação, busca no topo e leitura reorganizada para desktop e celular. Os endpoints e o contrato OpenAPI foram mantidos.

Breaking changes

Mudanças que exigem uma ação na integração.

Esta atualização muda apenas a apresentação da documentação. Nenhuma rota ou parâmetro da API foi alterado neste lançamento.

Consulte sempre a especificação OpenAPI atual antes de atualizar sua integração.

Precisa de ajuda?

Inclua o identificador da requisição para agilizar a análise.

Envie ao suporte o X-Request-Id, o endpoint e o horário da tentativa. Nunca compartilhe client secret, token, CPF completo ou chave Pix em chamados.
Acessar o portal Domvex