4 - Onboarding customer
Esta seção descreve a simplificação de onboarding, reunindo todas as etapas em apenas duas
Fluxo do onboarding simplificado
O onboarding ocorre em apenas 2 etapas:
- Criar o registro inicial da conta (retorna o
individual_id) - Enviar os dados cadastrais e documentos utilizando o
individual_id
4.0 - Registro individual
Este endpoint realiza o cadastro inicial da conta e disponibiliza o id, que será utilizado no endpoint 4.1 para registrar os demais dados da conta
[POST] /api/v1/register/individual
| Propriedade | Descrição | Obrigatório | Tipo | Regras / Formato |
|---|
| document | CPF ou CNPJ da conta | Sim | String | 11 a 14 caracteres |
[RESPONSES]
| Código | Descrição |
|---|
| 200 | Registro efetivado |
| 406 | Documento inválido |
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| success | Booleano que identifica o sucesso no registro | Sim | Boolean |
| code | Código de sucesso | Sim | Inteiro |
| individual_id | Id do cliente; Utilizado para consumir endpoints 4.1 e 4.2 | Sim | String |
| document | CPF ou CNPJ da conta | Sim | String |
| status | Estado da conta | Sim | String |
| status_label | Descrição do estado atual da conta | Sim | String |
| current_step | Etapa atual | Sim | Inteiro |
| tipo_conta | Tipo da conta (cpf ou cnpj) | Sim | String |
| pending_fields | Nome dos campos pendentes | Sim | Array |
| uploaded_files | Arquivos de documentos com upload já realizados | Sim | Array |
{
"success": true,
"code": 200,
"individual_id": "2ea01e63-a6e6-46b0-8b81-7a7bcaad2c0f",
"document": "12345678910",
"status": "em_cadastro",
"status_label": "Em cadastro",
"current_step": 1,
"tipo_conta": "cpf",
"pending_fields": [
"name",
"email",
"phone_number",
"code",
"document_name",
"mother_name",
"gender",
"birth_date",
"marital_status",
"nationality",
"nationality_state",
"document_number",
"document_state",
"issuance_date",
"document_issuance",
"pep",
"foto_selfie",
"postal_code",
"number",
"street",
"city",
"neighborhood",
"state",
"country"
],
"uploaded_files": []
}
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| success | Booleano que identifica a falha na consulta | Sim | Boolean |
| message | Mensagem de retorno sobre a consulta | Sim | String |
| code | Código de erro | Sim | Inteiro |
{
"success": false,
"message": "Documento inválido",
"code": 406
}
4.1 - Atualizar cadastro
Este endpoint realiza a atualização cadastral do usuário apontado;
Para requisitar este endpoint, é necessário ter iniciado o onboarding através do endpoint “Início do registro individual” (/api/v1/register/individual)
Serão atualizados apenas os campos que forem enviados no payload; pode-se enviar parcialmente e aos poucos que haverá a atualização apenas dos campos recebidos
⚠️ Importante sobre obrigatoriedade dos campos
Neste endpoint, nenhum campo é obrigatório por requisição.
Os campos marcados como Obrigatório = Sim indicam que:
- São obrigatórios para a conclusão total do onboarding.
- Podem ser enviados de forma parcial, em múltiplas requisições.
- Os arquivos dos documentos são obrigatórios de acordo com o campo enviado em
document_name
[POST] /api/v1/register/simplify/{individual_id}
Pessoa física
| Propriedade | Descrição | Obrigatório | Tipo | Regras / Formato |
|---|
| name | Nome completo da pessoa física | Sim | String | 2 a 150 caracteres |
| email | E-mail do cliente | Sim | String | 5 a 150 caracteres |
| phone | Telefone com DDD | Sim | String | 10 a 15 números |
| password | Senha da conta | Sim | String | 10 a 100 caracteres |
| mother_name | Nome da mãe | Sim | String | 2 a 150 caracteres |
| father_name | Nome do pai | Não | String | 2 a 150 caracteres |
| birth_date | Data de nascimento | Sim | String | YYYY-MM-DD |
| gender | Sexo do cliente | Sim | String | 1 caractere; Domínio 1.1 |
| nationality_state | Estado de nascimento | Sim | String | UF com 2 letras |
| marital_status | Estado civil | Sim | Integer | Domínio 1.2 |
| pep | Pessoa politicamente exposta | Sim | Integer | Domínio 1.4 |
| renda_mensal | Renda mensal | Sim | Decimal | |
| comprovante_renda | Comprovante de renda | Sim | Base64 | base64 |
| selfie | Selfie segurando o documento | Sim | Base64 | base64 |
| document_name | Tipo de documento | Sim | String | 2 a 3 caracteres; Domínio 1.0 |
| document_number | Número do documento | Sim | String | 2 a 40 caracteres |
| document_state | Estado de emissão | Sim | String | UF com 2 letras |
| issuance_date | Data de emissão do documento | Sim | String | YYYY-MM-DD |
| document_issuance | Órgão emissor | Sim | String | 2 a 40 caracteres |
| rg_frente | Frente do RG | Condicional | Base64 | base64 |
| rg_verso | Verso do RG | Condicional | Base64 | base64 |
| cnh_frente | Frente da CNH | Condicional | Base64 | base64 |
| cnh_verso | Verso da CNH | Condicional | Base64 | base64 |
| rne_frente | Frente do RNE | Condicional | Base64 | base64 |
| rne_verso | Verso do RNE | Condicional | Base64 | base64 |
| postal_code | CEP do endereço | Sim | String | 8 a 9 caracteres |
| street | Rua | Sim | String | 2 a 100 caracteres |
| number | Número do endereço | Sim | String | 1 a 20 caracteres |
| neighborhood | Bairro | Sim | String | 1 a 50 caracteres |
| state | Estado | Sim | String | UF com 2 letras |
| city | Cidade | Sim | String | 1 a 80 caracteres |
| country | País | Sim | String | 2 caracteres (ISO) |
| complement | Complemento | Não | String | até 100 caracteres |
| comprovante_endereco | Comprovante de endereço | Sim | Base64 | base64 |
| accept_communications | Aceite de comunicações | Sim | Integer | 0 = Não, 1 = Sim |
| accept_privacy | Aceite da política de privacidade | Sim | Integer | 0 = Não, 1 = Sim |
[PAYLOAD]
{
"name": "Ana Paula Souza Melo",
"email": "ana.paulaMelo@gmail.com",
"phone": "18998752547",
"password": "Mudar@123",
"mother_name": "Carla Souza Melo",
"father_name": "Roberto Souza Melo",
"gender": "F",
"birth_date": "2000-01-01",
"nationality_state": "SP",
"marital_status": 1,
"pep": 0,
"renda_mensal": 2500.00,
"comprovante_renda": "{{arquivo_base64}}",
"selfie": "{{arquivo_base64}}",
"document_name": "rg",
"document_number": "123456",
"document_state": "SP",
"issuance_date": "2004-01-01",
"document_issuance": "SSP",
"rg_frente": "{{arquivo_base64}}",
"rg_verso": "{{arquivo_base64}}",
"postal_code": "12345678",
"street": "Rua das flores",
"number": "123",
"neighborhood": "Jd. das rosas",
"state": "SP",
"city": "São Paulo",
"country": "BR",
"complement": "",
"comprovante_endereco": "{{arquivo_base64}}",
"accept_communications": 1,
"accept_privacy": 1
}
Pessoa Jurídica
| Propriedade | Descrição | Obrigatório | Tipo | Regras / Formato |
|---|
| tipo_conta | Tipo da conta (cpf ou cnpj) | Sim | String | Valor fixo: cnpj |
| name | Razão social da empresa | Sim | String | 2 a 200 caracteres |
| nome_fantasia | Nome fantasia da empresa | Sim | String | 2 a 200 caracteres |
| foundation_date | Data de fundação | Sim | String | YYYY-MM-DD |
| capital_social | Capital social da empresa | Sim | Decimal | Valor positivo |
| profitable | Empresa possui faturamento | Sim | String | 1 caractere: Y ou N |
| cnae | CNAE principal | Sim | String | 7 dígitos |
| cnae_description | Descrição do CNAE | Sim | String | até 200 caracteres |
| email | E-mail da empresa | Sim | String | 5 a 150 caracteres |
| phone | Telefone da empresa com DDD | Sim | String | 10 a 15 números |
| password | Senha da conta | Sim | String | 10 a 100 caracteres |
| postal_code | CEP do endereço da empresa | Sim | String | 8 números |
| street | Rua | Sim | String | 2 a 100 caracteres |
| number | Número do endereço | Sim | String | 1 a 20 caracteres |
| complement | Complemento | Não | String | até 100 caracteres |
| neighborhood | Bairro | Sim | String | 1 a 50 caracteres |
| city | Cidade | Sim | String | até 80 caracteres |
| state | Estado | Sim | String | UF com 2 letras |
| country | País | Sim | String | 2 caracteres (ISO) |
| cartao_cnpj | Cartão CNPJ | Sim | Base64 | base64 |
| contrato_social | Contrato social | Sim | Base64 | base64 |
| comprovante_endereco | Comprovante de endereço da empresa | Sim | Base64 | base64 |
| selfie | Selfie do representante legal | Sim | Base64 | base64 |
| foto_faturamento | Foto do faturamento | Sim | Base64 | base64 |
| comprovante_renda | Comprovante de renda | Sim | Base64 | base64 |
| accept_communications | Aceite de comunicações | Sim | Integer | 0 = Não, 1 = Sim |
| accept_privacy | Aceite da política de privacidade | Sim | Integer | 0 = Não, 1 = Sim |
| socios[] | Lista de sócios da empresa | Sim | Array | |
| socios[].document | CPF ou CNPJ do sócio | Sim | String | 11 a 14 caracteres |
| socios[].name | Nome completo do sócio | Sim | String | 2 a 150 caracteres |
| socios[].email | E-mail do sócio | Sim | String | 5 a 150 caracteres |
| socios[].phone | Telefone do sócio com DDD | Sim | String | 10 a 15 números |
| socios[].password | Senha da conta do sócio | Sim | String | 10 a 100 caracteres |
| socios[].mother_name | Nome da mãe | Sim | String | 2 a 150 caracteres |
| socios[].father_name | Nome do pai | Sim | String | 2 a 150 caracteres |
| socios[].gender | Sexo do sócio | Sim | String | 1 caractere; Domínio 1.1 |
| socios[].birth_date | Data de nascimento | Sim | String | YYYY-MM-DD |
| socios[].nationality | Nacionalidade | Sim | String | 2 a 150 caracteres |
| socios[].nationality_state | Estado de nascimento | Sim | String | UF com 2 letras |
| socios[].marital_status | Estado civil | Sim | Integer | Domínio 1.2 |
| socios[].pep | Pessoa politicamente exposta | Sim | Integer | Domínio 1.4 |
| socios[].renda_mensal | Renda mensal | Sim | Decimal | Valor positivo |
| socios[].comprovante_renda | Comprovante de renda do sócio | Sim | Base64 | base64 |
| socios[].document_name | Tipo de documento | Sim | String | 2 a 3 caracteres; Domínio 1.0 |
| socios[].document_number | Número do documento | Sim | String | 2 a 40 caracteres |
| socios[].document_state | Estado de emissão do documento | Sim | String | UF com 2 letras |
| socios[].issuance_date | Data de emissão do documento | Sim | String | YYYY-MM-DD |
| socios[].document_issuance | Órgão emissor | Sim | String | 2 a 40 caracteres |
| socios[].selfie | Selfie do sócio com documento | Sim | Base64 | base64 |
| socios[].rg_frente | Frente do RG | Sim | Base64 | base64 |
| socios[].rg_verso | Verso do RG | Sim | Base64 | base64 |
| socios[].cnh_frente | Frente da CNH | Sim | Base64 | base64 |
| socios[].cnh_verso | Verso da CNH | Sim | Base64 | base64 |
| socios[].rne_frente | Frente do RNE | Sim | Base64 | base64 |
| socios[].rne_verso | Verso do RNE | Sim | Base64 | base64 |
| socios[].postal_code | CEP do endereço | Sim | String | 8 números |
| socios[].street | Rua | Sim | String | 2 a 100 caracteres |
| socios[].number | Número do endereço | Sim | String | 1 a 20 caracteres |
| socios[].neighborhood | Bairro | Sim | String | 1 a 50 caracteres |
| socios[].state | Estado | Sim | String | UF com 2 letras |
| socios[].city | Cidade | Sim | String | até 80 caracteres |
| socios[].country | País | Sim | String | 2 caracteres (ISO) |
| socios[].complement | Complemento | Não | String | até 100 caracteres |
| socios[].percentual_participacao | Percentual de participação | Sim | Decimal | 0 a 100 |
| socios[].comprovante_endereco | Comprovante de endereço do sócio | Sim | Base64 | base64 |
| socios[].accept_communications | Aceite de comunicações | Sim | Integer | 0 = Não, 1 = Sim |
| socios[].accept_privacy | Aceite da política de privacidade | Sim | Integer | 0 = Não, 1 = Sim |
[PAYLOAD]
{
"tipo_conta": "cnpj",
"name": "Empresa Multi Socios LTDA",
"nome_fantasia": "Multi Socios",
"foundation_date": "2015-06-15",
"capital_social": 50000.00,
"profitable": "Y",
"cnae": "6201501",
"cnae_description": "Desenvolvimento de Software",
"email": "financeiro@multisocios.com",
"phone": "19999999999",
"password": "Empresa@2024",
"postal_code": "04538-132",
"street": "Rua Clodomiro Amazonas",
"number": "1435",
"complement": "Cj 92",
"neighborhood": "Itaim Bibi",
"city": "São Paulo",
"state": "SP",
"country": "BR",
"cartao_cnpj": "{{arquivo_base64}}",
"contrato_social": "{{arquivo_base64}}",
"comprovante_endereco": "{{arquivo_base64}}",
"selfie": "{{arquivo_base64}}",
"foto_faturamento": "{{arquivo_base64}}",
"comprovante_renda": "{{arquivo_base64}}",
"accept_privacy": 1,
"accept_communications": 1,
"socios": [
{
"document": "59384172046",
"name": "Carlos Eduardo Menezes",
"email": "cadu.menezes@exemplo.com",
"phone": "11987456321",
"password": "Senha@987",
"mother_name": "Patrícia Helena Menezes",
"father_name": "Roberto Almeida Menezes",
"gender": "M",
"birth_date": "1990-11-08",
"nationality": "Brasileiro",
"nationality_state": "MG",
"marital_status": 2,
"pep": 0,
"renda_mensal": 8200.50,
"comprovante_renda": "{{arquivo_base64}}",
"selfie": "{{arquivo_base64}}",
"document_name": "rg",
"document_number": "512345678",
"document_state": "MG",
"document_issuance": "SSP",
"issuance_date": "2018-06-21",
"rg_frente": "{{arquivo_base64}}",
"rg_verso": "{{arquivo_base64}}",
"postal_code": "30140071",
"street": "Avenida Afonso Pena",
"number": "1450",
"neighborhood": "Centro",
"state": "MG",
"city": "Belo Horizonte",
"country": "BR",
"complement": "Sala 304",
"percentual_participacao": 50.00,
"comprovante_endereco": "{{arquivo_base64}}",
"accept_communications": 1,
"accept_privacy": 1
},
{
"document": "87421953068",
"name": "Fernanda Ribeiro Alves",
"email": "fernanda.alves@exemplo.com",
"phone": "21996547832",
"password": "Trocar@456",
"mother_name": "Luciana Ribeiro Alves",
"father_name": "Marcos Antônio Alves",
"gender": "F",
"birth_date": "1988-02-17",
"nationality": "Brasileira",
"nationality_state": "RJ",
"marital_status": 1,
"pep": 0,
"renda_mensal": 12450.75,
"comprovante_renda": "{{arquivo_base64}}",
"selfie": "{{arquivo_base64}}",
"document_name": "rg",
"document_number": "223456789",
"document_state": "RJ",
"document_issuance": "DETRAN",
"issuance_date": "2016-09-03",
"rg_frente": "{{arquivo_base64}}",
"rg_verso": "{{arquivo_base64}}",
"postal_code": "20040030",
"street": "Rua da Quitanda",
"number": "85",
"neighborhood": "Centro",
"state": "RJ",
"city": "Rio de Janeiro",
"country": "BR",
"complement": "Apto 1202",
"percentual_participacao": 30.00,
"comprovante_endereco": "{{arquivo_base64}}",
"accept_communications": 1,
"accept_privacy": 1
}
]
}
[RESPONSES]
| Código | Descrição |
|---|
| 200 | Cadastro atualizado |
| 403 | Falha na atualização |
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| success | Booleano que identifica o sucesso na atualização | Sim | Boolean |
| message | Mensagem de retorno sobre a atualização | Sim | String |
| code | Código de sucesso | Sim | Inteiro |
{
"success":true,
"message":"Data updateded",
"code":200
}
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| success | Booleano que identifica a falha na atualização | Sim | Boolean |
| message | Mensagem de retorno sobre a atualização | Sim | String |
| code | Código de falha | Sim | Inteiro |
{
"success": false,
"message": "Invalid individual id",
"code": 403
}
4.2 - Capturar dados pendentes de onboarding simplificado
[GET] /api/v1/register/simplify/{individual_id}
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| individual_id | Id do cliente | Sim | String |
[RESPONSES]
| Código | Descrição |
|---|
| 200 | Dados de onboarding consultados |
| 403 | Não foi encontrado nenhum cadastro |
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| success | Booleano que identifica o sucesso na consulta | Sim | Boolean |
| message | Mensagem de retorno sobre a consulta | Sim | String |
| code | Código de sucesso | Sim | Inteiro |
| tipo_conta | Tipo da conta (cpf ou cnpj) | Sim | String |
| status | Estado da conta | Sim | String |
| status_label | Descrição do estado atual da conta | Sim | String |
| pending | Lista de campos pendentes para conclusão do cadastro | Sim | Array |
| socios_pending | Lista de pendências dos sócios da conta | Sim | Array |
| compliance_notes | Observações registradas da conta | Sim | String |
| selected_doc_up_type | Tipo do documento enviado para validação | Sim | String |
| user_data | Objeto com dados básicos da conta consultada | Sim | Objeto |
{
"success": true,
"message": "",
"code": 200,
"tipo_conta": "cnpj",
"status": "em_cadastro",
"status_label": "Em cadastro",
"pending": [
"socios",
"name",
"email",
"accept_communications",
"accept_privacy"
],
"socios_pending": [],
"compliance_notes": "",
"selected_doc_up_type": null,
"user_data": {
"phone": null,
"phone_confirmed": false,
"doc": null,
"document_number": "48255920000187"
}
}
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| success | Booleano que identifica a falha na consulta | Sim | Boolean |
| message | Mensagem de retorno sobre a consulta | Sim | String |
| code | Código de falha | Sim | Inteiro |
{
"success": false,
"message": "Invalid individual id",
"code": 403
}