Referência

Introdução à API ValidaPay

Bem-vindo à documentação da API ValidaPay. Este guia vai ajudá-lo a integrar rapidamente nossa solução de pagamentos em sua aplicação.

Novo por aqui? Veja primeiro a Introdução. Se já conhece o produto e quer ir direto ao código, role até Todos os Endpoints.

Recursos Principais

Pix Automático

Receba pagamentos via Pix em tempo real com confirmação automática e webhooks para notificações instantâneas.

API RESTful

Interface moderna e intuitiva com endpoints bem documentados e respostas em JSON padronizadas.

Segurança

Autenticação via OAuth2 (Bearer Token), HTTPS obrigatório e criptografia de ponta a ponta para máxima segurança.

Documentação Completa

Guias detalhados, exemplos de código e referências de API para facilitar sua integração.

Primeiros Passos

1

Obtenha suas credenciais

Para acessar suas credenciais, faça login no painel de integração da ValidaPay: clique aqui para gerar suas credenciais de produção ou sandbox, ou entre em contato com nossa equipe através dos canais de suporte.

2

Explore a documentação

Navegue pelas collections disponíveis e entenda os endpoints disponíveis para sua integração.

3

Faça sua primeira requisição

Comece com o endpoint de Pix e teste a criação de uma cobrança em ambiente de sandbox.

4

Configure os webhooks

Configure os webhooks para receber notificações em tempo real sobre o status dos pagamentos.

Base URL

Produção:

https://api.validapay.com.br

Sandbox:

https://sandbox.validapay.com.br
65 endpoints disponíveis

Todos os endpoints

Pix

Detalhes da cobrança

GET/v1/charges/:chargeId

Devolve a cobrança inteira: situação, valor, comprador, endereço e os dados de pagamento do meio usado. Os blocos `pix` e `boleto` são excludentes — vem preenchido o do `paymentType` da cobrança, e o outro chega como `null`. O mesmo vale para `address`, que é `null` quando o comprador não tem endereço cadastrado. Para acompanhar um pagamento em aberto, prefira `GET /v1/charges/{chargeId}/status`: devolve o essencial e evita carregar comprador e endereço a cada consulta.

Cobrança imediata

POST/v1/charges/pix

Com esta funcionalidade você pode criar um QR Code de cobrança imediata. **Case de uso:** _Como SaaS, quero gerar cobranças preenchendo apenas o valor do produto e nada mais_ **Regras condicionais (COBV):** `name` e `cep` do `customer` só são aceitos junto com `expiration`. Havendo `expiration` e `customer`, o trio `documentNumber`, `name` e `cep` passa a ser obrigatório em bloco. **Resposta:** os campos vêm na raiz — `emv` e `qrCode`, não aninhados sob `pix`. O `qrCode` já é uma data URL PNG pronta para exibir; não é preciso gerar a imagem no seu lado. **Correlação com o pedido:** envie `metadata` na criação e ele volta na resposta e no payload do webhook `payment.success`. É a forma recomendada de amarrar o pagamento ao seu pedido. > ⚠️ **Esta rota não tem idempotência.** `externalId` é aceito e descartado; duas chamadas iguais criam **duas cobranças**. Controle duplicidade no seu lado (índice `pedido → cobrança`) ou use `POST /v1/charges`, que responde `409 DUPLICATE_CHARGE`. O campo `externalTxid` documentado aqui identifica loja, caixa ou vendedor — não serve como chave de idempotência.

Status da cobrança

GET/v1/charges/:chargeId/status

Resposta enxuta para acompanhar o pagamento de uma cobrança, sem comprador, endereço, nota fiscal nem split. Pensada para consulta repetida: enquanto `status` for `PENDING` ou `AWAITING_PAYMENT`, a cobrança segue em aberto; `PAID` preenche `paidAt`. O campo `expiresAt` diz até quando o Pix aceita pagamento, evitando uma segunda consulta só para saber a janela. Valores de `status`: `PENDING`, `PROCESSING`, `AWAITING_PAYMENT`, `PAID`, `FAILED`, `EXPIRED`, `CANCELED`, `ARCHIVED`, `DISPUTE`, `REFUNDED`, `PARTIALLY_REFUNDED` e `CHARGED_BACK`. Para o detalhe completo, use `GET /v1/charges/{chargeId}`.

Split de pagamentos

Subcontas

Criar subconta PF

POST/v1/proposals

Com esta funcionalidade você pode criar subcontas Pessoa Física na ValidaPay. Ao criar a subconta ela ficará associada à sua conta (chamaremos de conta Master). Case de uso: _Como SaaS tenho vários Sellers, preciso gerar cobranças para esses Sellers e receber split em cada venda._ > ⚠️ **Atenção:** Não é possível criar uma subconta com mesmo email e telefone da _master account._ > ⚠️ **Atenção:** Dados de renda/faturamento no campo financialDetails são obrigatórios. Os respectivos códigos estão descritos no apêndice Campos Financeiros ao final da sessão Subcontas ValidaPay

Criar subconta PJ

POST/v1/proposals

Com esta funcionalidade você pode criar subcontas Pessoa Jurídica na ValidaPay. Ao criar a subconta ela ficará associada à sua conta (chamaremos de conta Master). Case de uso: _Como SaaS tenho vários Sellers, preciso gerar cobranças para esses Sellers e receber split em cada venda._ > ⚠️ **Atenção:** Não é possível criar uma subconta com mesmo email e telefone da _master account_ > ⚠️ **Atenção:** Dados de renda/faturamento no campo financialDetails são obrigatórios. Os respectivos códigos estão descritos no apêndice Campos Financeiros ao final da sessão Subcontas ValidaPay

Status de subconta

GET/v1/proposals/:formId

@botton Quando a conta for aprovada, será enviado um evento na URL de webhook cadastrada nas rotas de criação de conta PF e PJ. O evento segue o seguinte layout: ``` json { "event": "account_approved", "status": "CONFIRMED", "account": { "account": "123456", "branch": "0001", "documentNumber": "123456789", "ispb": "13935893", "name": "Werner Heisenberg" }, "onboardingId": "fc0e6dab-8210-4f2d-8fce-2e94990b63ef", "documentNumber": "1234567889", "formId": "7b83fcb4-fe9c-4ad3-8d3a-621fe9c9ffc1", "createdAt": "2025-06-02T17:46:10.1120909" } ```

Listar subcontas

GET/v1/accounts/subaccounts

Com esta rota você poderá listar todas as subcontas associadas à sua _master account_

Listar cobranças

GET/v1/charges

Com esta rota você poderá listar todas as cobranças que a sua _master account_ gerou em uma subcontas

Saldo subcontas

GET/v1/wallet/balance

Com esta funcionalidade você pode verificar o saldo de uma ou várias subcontas > ⚠️ **Atenção:** Para consultar o saldo de várias subcontas envie o header acoountId com o número das subcontas separado por vírgula, por exemplo: 9489623,9489624,9489625

Produtos

Essa página foi útil?