Subcontas ValidaPay

Referência

Tudo que você precisa saber sobre subcontas ValidaPay antes de integrar: o que são, como funcionam, quando criar PF ou PJ, o ciclo de aprovação e como operar após a ativação.

Uma subconta não é um cadastro auxiliar.

É uma conta bancária digital completa.

O split fecha a venda.

A subconta mantém o seller autônomo.

Cada seller tem saldo próprio.

Você não precisa repassar manualmente.

Gerenciar subcontas é escalar parceiros —

sem acumular risco no seu caixa.

O que é uma subconta ValidaPay

Uma subconta ValidaPay é uma conta bancária digital completa — com número de conta, agência, código ISPB e chave Pix — criada programaticamente via API e vinculada à sua conta master. Cada subconta tem saldo próprio, extrato próprio, capacidade de receber pagamentos via Pix e pode realizar saques para contas bancárias de mesma titularidade.

A grande diferença em relação a sistemas tradicionais de repasse é que o dinheiro cai diretamente na conta do seller no momento do pagamento, via split automático, sem passar pelo seu caixa primeiro. Isso elimina risco de inadimplência interna, simplifica a conciliação financeira e dá autonomia financeira para cada parceiro da sua plataforma.

O processo de criação é 100% via API. Você envia os dados do titular (CPF ou CNPJ, endereço, dados de renda), a ValidaPay executa o processo de KYC (verificação de identidade exigida pelo Banco Central), e quando aprovada a conta está pronta para operar em minutos.

O que é KYC? KYC (Know Your Customer) é o processo de verificação de identidade exigido pelo Banco Central do Brasil para abertura de contas digitais. A ValidaPay executa esse processo automaticamente com base nos dados enviados via API.

Marketplace

Cada seller recebe sua parte automaticamente no pagamento, sem repasse manual.

SaaS com parceiros

Afiliados e revendedores com conta separada, extrato individual e autonomia financeira.

Franquias e filiais

Cada unidade opera de forma independente, com relatórios financeiros separados.

Plataformas de serviço

Prestadores autônomos recebem por serviço prestado sem você intermediar o pagamento.

Conceitos essenciais

ConceitoO que é
Conta masterSua conta ValidaPay principal. Todas as subcontas são criadas e gerenciadas por ela.
SubcontaConta bancária digital de um seller/parceiro, vinculada à master.
formIdIdentificador do processo de onboarding. Retornado na criação, usado para consultar o status.
account.numberNúmero definitivo da conta aprovada. Use como accountId em saldo, saques, extratos e split.
SplitDivisão automática do valor de uma cobrança entre a master e subcontas no momento do pagamento.

Fluxo completo: do cadastro ao primeiro recebimento

O processo tem 6 etapas, da criação da subconta até o primeiro split recebido:

ETAPA 01

Criar subconta

POST /v1/proposals — você envia os dados do seller

ETAPA 02

KYC automático

ValidaPay verifica CPF/CNPJ com os órgãos regulatórios

ETAPA 03

Webhook disparado

Você recebe onboarding.create com o número da conta

ETAPA 04

Salvar número da conta

Persista data.account.number associado ao seller

ETAPA 05

Gerar cobrança com split

Use o número da conta para o seller receber automaticamente

ETAPA 06

Seller recebe

O valor cai na conta do seller no momento do pagamento Pix

Configure o webhook antes de criar subcontas. O número definitivo da conta (data.account.number) é entregue no evento onboarding.create. Sem webhook configurado, você precisará fazer polling com GET /v1/proposals/:formId até a aprovação.

Ciclo de vida e estados

StatusSignificado
PENDINGSubconta criada, KYC em andamento. A ValidaPay está verificando os dados enviados.
CONFIRMEDSubconta aprovada e conta bancária criada. O número da conta foi gerado.
REJECTEDKYC reprovado. Os dados enviados não passaram na verificação regulatória.

Em produção, a aprovação leva alguns minutos. No sandbox, a aprovação acontece automaticamente após a criação.

PF ou PJ: qual tipo criar?

Ambos usam o mesmo endpoint POST /v1/proposals. A diferença está nos campos do body e no tipo de documento do titular.

Subconta PFSubconta PJ
DocumentoCPF — 11 dígitos, somente númerosCNPJ — 14 dígitos, somente números
Quando usarAfiliados, autônomos, freelancers, prestadores individuaisLojas, empresas, MEIs, franquias — negócio formalizado com CNPJ
Campos extrasbirthDate obrigatóriocompanyName, tradingName e legalRepresentative obrigatórios
financialDetailsincomeRange — faixa de renda pessoalestimatedMonthlyRevenue — faturamento mensal estimado
RestriçãoE-mail e telefone não podem ser os mesmos da conta master em ambos os casos

Se o seller é pessoa física autônoma ou afiliado, use PF. Se tem CNPJ (mesmo MEI), use PJ.

Pré-requisitos de integração

  • Credenciais da conta master — client_id e client_secret em app.validapay.com.br/integracao/api
  • Token com escopos proposals/write (criar) e proposals/read (consultar status)
  • URL de webhook acessível publicamente — deve responder HTTP 200 ao receber eventos de onboarding
  • Dados completos do seller — nome, documento, e-mail único, telefone único, endereço e renda
  • Códigos de financialDetails — consulte a página Campos Financeiros para os códigos corretos

Ver tabela de Campos Financeiros →

Testando no sandbox

Use a URL https://sandbox.validapay.com.br para todos os testes. No sandbox, a aprovação é automática — você receberá o webhook onboarding.create em segundos. CPF e CNPJ não precisam ser válidos no sandbox.

  1. Crie uma subconta PF com dados fictícios no sandbox
  2. Aguarde o webhook onboarding.create na sua URL de teste
  3. Anote o data.account.number retornado
  4. Crie uma cobrança Pix com split para essa subconta
  5. Simule o pagamento com Pagar em sandbox
  6. Consulte o saldo da subconta para confirmar o recebimento

Pagar em sandbox →

O que a API de subcontas permite

OperaçãoDescrição
Criar subconta PFOnboarding de titular pessoa física (CPF).
Criar subconta PJOnboarding de empresa (CNPJ).
Status de subcontaConsultar andamento do KYC pelo formId.
Listar subcontasListar todas as subcontas da master account.
Listar cobrançasCobranças geradas em nome de uma subconta.
Saldo subcontasConsultar saldo de uma ou várias subcontas.
Cobrança imediata com splitGerar cobrança Pix com divisão automática para subconta.
Split para Conta MasterCobrança na subconta com split para a master.
Saque subcontaTransferir saldo da subconta via Pix (mesma titularidade).
Extrato subcontaMovimentações financeiras de uma subconta.

Eventos webhook de onboarding

Cadastre estes eventos via POST /v1/users/webhooks ou no painel em Integração → Webhooks (botão + Webhook). Veja sequência, campos e exemplos de payload na página Eventos de Onboarding.

onboarding.backgroundcheckonboarding.documentscopyonboarding.proposalonboarding.create

Split e operações financeiras

Após a subconta ativa, use o número da conta em cobranças com split para que o seller receba automaticamente. Consulte saldo, extrato e saques usando o header accountId com o número da subconta. Saques só são permitidos para contas de mesma titularidade.

Perguntas frequentes

O seller precisa se cadastrar manualmente na ValidaPay?
Não. Você envia todos os dados do seller via API e a ValidaPay cuida do onboarding e KYC. O seller nem precisa saber que tem uma conta na ValidaPay — para ele, é simplesmente o recebimento pelos produtos ou serviços na sua plataforma.
Quanto tempo leva a aprovação de uma subconta em produção?
Em produção, o KYC é executado automaticamente e a aprovação normalmente acontece em minutos. Casos com análise manual podem levar mais tempo. Monitore via webhooks de onboarding ou polling com GET /v1/proposals/:formId.
O que acontece se a subconta for rejeitada no KYC?
O status vai para REJECTED. Identifique qual dado estava incorreto (nome divergente da Receita Federal, CPF/CNPJ inválido, endereço inconsistente), corrija no seu sistema e crie uma nova subconta com um novo POST /v1/proposals.
Posso criar subconta com o mesmo e-mail ou telefone da conta master?
Não. E-mail e telefone precisam ser únicos — não podem ser os mesmos da conta master nem de outra subconta existente. A API retorna erro 400 com código DUPLICATE_EMAIL ou DUPLICATE_PHONE.
Qual a diferença entre formId e account.number?
formId é o ID do processo de onboarding — retornado na criação, serve para consultar o status enquanto a conta está em análise. account.number é o número definitivo da conta bancária aprovada, retornado no webhook onboarding.create — esse é o identificador que você salva e usa em saldo, saques, extratos e split.
Posso criar várias subcontas em paralelo?
Sim. Você pode enviar múltiplos POST /v1/proposals em sequência para onboarding em lote. Cada criação retorna um formId independente. Respeite os rate limits e implemente idempotência no processamento dos webhooks.