Subcontas

Criar subconta PF

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).

POST/v1/proposals
Base URL Produção:https://api.validapay.com.br
Base URL Sandbox:https://sandbox.validapay.com.br

Case de uso:

Como SaaS tenho vários Sellers, preciso gerar cobranças para esses Sellers e receber split em cada venda.

⚠️ Atenção: a criação de cada subconta custa R$ 15,00, debitados do saldo da conta master quando a proposta é enviada. Se não houver saldo, a criação é recusada com 409 INSUFFICIENT_BALANCE_FOR_SUBACCOUNT_FEE. No sandbox não há cobrança.

⚠️ 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

Authorizations

bearer

Authorization

string obrigatório

Cabeçalho de autenticação Bearer no formato Bearer {{token}} onde {{token}} é o seu token OAuth2.

Escopos requeridos

proposals/write

Body

application/json

Content-Type:application/json
JSON
{
    "documentNumber": "11122233396",
    "phoneNumber": "+5511912345678",
    "email": "empresa@exemplo.com.br",
    "motherName": "Teste Mãe",
    "fullName": "Richard Feynman",
    "socialName": "",
    "birthDate": "31-12-2000",
    "address": {
        "postalCode": "06455030",
        "street": "Alameda Xingu",
        "number": "350",
        "addressComplement": "",
        "neighborhood": "Alphaville Industrial",
        "city": "Barueri",
        "state": "SP"
    },
    "isPoliticallyExposedPerson": false,
    "financialDetails": {
        "declaredIncome": "1DINP02", 
        "occupation": "ONP07", 
        "netWorth": "NWNP02" 
    },
    "webhookUrl": "https://api.teste.com.br" 
}

Schema

documentNumberstringobrigatório
CPF do titular
Regra:^(\d{11}|\d{14})$
phoneNumberstringobrigatório
Número de telefone do titular
emailstringobrigatório
email do titular
Regra:email
motherNamestringobrigatório
fullNamestringobrigatório
Nome completo do titular
birthDatestringobrigatório
Data de nascimento do titular
isPoliticallyExposedPersonbooleanobrigatório
socialNamestringopcional
addressobject
financialDetailsobject
webhookUrlstringopcional
URL onde você gostaria de receber a notificação de criação de conta
const url = 'https://sandbox.validapay.com.br/v1/proposals';

const options = {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer {{token}}',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "documentNumber": "11122233396",
    "phoneNumber": "+5511912345678",
    "email": "empresa@exemplo.com.br",
    "motherName": "Teste Mãe",
    "fullName": "Richard Feynman",
    "socialName": "",
    "birthDate": "31-12-2000",
    "address": {
        "postalCode": "06455030",
        "street": "Alameda Xingu",
        "number": "350",
        "addressComplement": "",
        "neighborhood": "Alphaville Industrial",
        "city": "Barueri",
        "state": "SP"
    },
    "isPoliticallyExposedPerson": false,
    "financialDetails": {
        "declaredIncome": "1DINP02", 
        "occupation": "ONP07", 
        "netWorth": "NWNP02" 
    },
    "webhookUrl": "https://api.teste.com.br" 
}
)
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));

Response Examples

201▾
JSON
{
    "status": "UNFINISHED",
    "message": "Formulário criado com sucesso",
    "formId": "a6358673-dd00-4c6d-9592-df393513a78a"
}
200▾
JSON
{
    "status": "FINISHED",
    "message": "Formulário atualizado com sucesso",
    "formId": "cda0e605-44f7-4cbc-850c-ef3a2073c685"
}