Documentação da API

Bem-vindo ao Developer Hub da VexPay. Nossa API foi construída para permitir integração rápida e segura de pagamentos Pix, Splits e Cashouts em qualquer plataforma.

Base URL da API
https://app.vexpay.com.br/api/

vpn_keyAutenticação

A autenticação é feita via Bearer Token usando sua Secret Key (live_sk_...). Você pode gerar suas chaves na página de configurações.

Authorization: Bearer live_sk_SEU_TOKEN_AQUI

Todas as requisições devem incluir o header de autorização. Requisições sem autenticação ou com token inválido retornarão erro 401 Unauthorized.

qr_code_2Criar Cobrança (Pix In)

Gera um QR Code dinâmico para recebimento de pagamentos via Pix. O QR Code gerado é válido por 24 horas e pode ser pago uma única vez.

POST/pix_in

Parâmetros (JSON)

CampoTipoObrigatórioDescrição
amountFloatSimValor da transação em reais (ex: 50.00)
external_idStringNãoSeu identificador único do pedido
postbackUrlStringSimURL para receber notificação de pagamento
payer.nameStringNãoNome do pagador
payer.documentStringNãoCPF ou CNPJ do pagador (apenas números)
curl -X POST https://app.vexpay.com.br/api/pix_in \
  -H "Authorization: Bearer live_sk_SUA_CHAVE_AQUI" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 50.00,
    "external_id": "PEDIDO_1001",
    "postbackUrl": "https://seu-site.com/webhook/vexpay",
    "payer": { "name": "João Silva", "document": "12345678900" }
  }'

Resposta de Sucesso

JSON Response (200 OK)
{
  "transactionId": "uuid-da-transacao",
  "external_id": "PEDIDO_1001",
  "amount": 50.00,
  "qrcode": "00020126580014br.gov.bcb.pix...",
  "qrcode_base64": "data:image/png;base64,...",
  "status": "PENDING",
  "expires_at": "2026-02-17T12:00:00Z"
}

sendRealizar Saque (Pix Out)

Realiza transferência Pix para uma chave de destino. O valor é debitado do seu saldo disponível na plataforma.

POST/pix_out

Parâmetros (JSON)

CampoTipoObrigatórioDescrição
amountFloatSimValor a ser transferido
external_idStringNãoSeu identificador de referência
pinStringSimPIN de transação da sua conta
creditParty.nameStringSimNome do beneficiário
creditParty.keyStringSimChave Pix de destino
creditParty.keyTypeStringSimTipo da chave: CPF, CNPJ, EMAIL, PHONE, EVP
curl -X POST https://app.vexpay.com.br/api/pix_out \
  -H "Authorization: Bearer live_sk_SUA_CHAVE_AQUI" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 150.00,
    "external_id": "SAQUE_REF_55",
    "pin": "1234",
    "creditParty": {
        "name": "Maria Recebedora",
        "key": "maria@email.com",
        "keyType": "EMAIL"
    }
  }'

Resposta de Sucesso

JSON Response (200 OK)
{
  "transactionId": "uuid-do-saque",
  "external_id": "SAQUE_REF_55",
  "amount": 150.00,
  "status": "PROCESSING",
  "message": "Saque enviado para processamento"
}

call_splitSplit de Pagamentos

O sistema de Split permite dividir automaticamente o valor de uma transação entre múltiplos recebedores quando o pagamento é confirmado. Ideal para marketplaces, afiliados, franquias e parcerias.

Como Funciona

1. Você cria uma transação com split_rules
2. Cliente paga a transação
3. Quando o pagamento é confirmado, o split é processado automaticamente
4. Os recebedores recebem o valor creditado em suas contas

POST/pix_in (com split_rules)

Parâmetros de Split (JSON)

CampoTipoObrigatórioDescrição
split_rulesArrayNãoArray de regras de split
split_rules[].emailStringSim*Email do recebedor (deve estar cadastrado no VexPay)
split_rules[].percentageNumberSimPorcentagem do valor líquido (ex: 30 = 30%)

* O email é obrigatório na criação. Após processamento, o sistema preenche automaticamentecalculated_amount e recipient_id.

Exemplo: Marketplace

Dividir 80% para o vendedor e 20% para a plataforma:

curl -X POST https://app.vexpay.com.br/api/pix_in \
  -H "Authorization: Bearer live_sk_SUA_CHAVE_AQUI" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 1000.00,
    "external_id": "PEDIDO_123",
    "postbackUrl": "https://seu-site.com/webhook/vexpay",
    "split_rules": [
      {
        "email": "parceiro@email.com",
        "percentage": 30
      },
      {
        "email": "outro@email.com",
        "percentage": 20
      }
    ],
    "payer": {
      "name": "João Cliente",
      "document": "12345678900"
    }
  }'

Como o Valor é Calculado

O valor do split é calculado sobre o valor líquido (após taxas):

Fórmula

Valor Líquido = Valor Pago - Taxa
Valor do Split = Valor Líquido × (Porcentagem / 100)

Exemplo de Cálculo

Cenário
Valor pago: R$ 1.000,00
Taxa cobrada: R$ 50,00
Valor líquido: R$ 950,00
Porcentagem: 30%
─────────────────────────
Valor do split: R$ 285,00 (30% de R$ 950,00)

Processamento Automático

O split é processado automaticamente quando o pagamento é confirmado via webhook. Você não precisa fazer nada adicional:

  1. Pagamento é confirmado
  2. VexPay processa o split automaticamente
  3. Valores são debitados/creditados nas contas
  4. Recebedores recebem notificações

Casos de Uso

Marketplace:

Dividir receita entre plataforma e vendedores (ex: 80% vendedor, 20% plataforma)

Sistema de Afiliados:

Pagar comissões a afiliados automaticamente (ex: 15% de comissão)

Franquia:

Repartir valores entre franqueador e franqueado (ex: 70% franqueado, 30% franqueador)

Requisitos

  • Os recebedores devem ter contas cadastradas no VexPay
  • Os emails informados devem estar corretos e ativos
  • A porcentagem deve ser um número entre 0 e 100
  • O split é processado apenas quando o pagamento é confirmado
Importante

O split é processado automaticamente pelo VexPay. Você não precisa fazer chamadas adicionais à API. Basta incluir split_rules ao criar a transação.

notificationsWebhooks

Enviamos uma requisição POST para suapostbackUrl sempre que um pagamento for confirmado ou houver atualização de status.

Payload de Notificação

POST para sua postbackUrl
{
  "transactionId": "uuid-da-transacao",
  "external_id": "PEDIDO_1001",
  "amount": 50.00,
  "status": "PAID",
  "paid_at": "2026-02-16T12:30:00Z",
  "payer": {
    "name": "João Silva",
    "document": "***456789**"
  }
}

Validando o Webhook

Recomendamos que você valide todas as notificações recebidas consultando o status da transação via API antes de liberar o produto/serviço.

errorErros & Status

A API utiliza códigos HTTP padrão para indicar sucesso ou falha das requisições.

Códigos de Status HTTP

CódigoStatusDescrição
200OKRequisição processada com sucesso
400Bad RequestParâmetros inválidos ou ausentes
401UnauthorizedToken de autenticação inválido ou ausente
403ForbiddenSem permissão para esta operação
404Not FoundRecurso não encontrado
422UnprocessableSaldo insuficiente ou regra de negócio
500Server ErrorErro interno do servidor

Status de Transação

StatusDescrição
PENDINGAguardando pagamento
PROCESSINGEm processamento
PAIDPagamento confirmado
FAILEDFalha no processamento
EXPIREDExpirado (não foi pago no prazo)
REFUNDEDValor estornado
VexPay | Intermediador de Pagamentos