---
updatedAt: 2026-09-09T12:35:47.000Z
agentTools:
  projectIndex: https://developers.celcoin.com.br/llms.txt
---

# Criação de Contas (Onboarding)

Orientações para clientes que utilizam a nossa solução de Onboarding - KYC.

# Introdução

Este documento tem como objetivo apoiar o cliente a compreender a integração com o produto Onboarding - KYC. Nesse documento iremos explicar o Fluxo, a autenticação e os Endpoints da integração. Para utilização destes serviços é necessário realizar a **contratação do Onboarding Celcoin** junto a solução do BaaS.

## Pré requisitos para implementação:

* Possuir uma chave API da Celcoin, essa chave API é enviada após contratar o serviço conosco. [link](https://www.celcoin.com.br/).

* Ter familiaridade com APIs Rest usando o protocolo [OAuth 2.0](https://oauth.net/2/).

* Ter o produto/solução contratada, caso queira usar a funcionalidade em ambiente produtivo, por favor entre em contato com a nossa equipe comercial através do e-mail <corp@celcoin.com.br.> Para dúvidas técnicas, basta entrar em contato com o suporte através do [link](https://suporte.celcoin.com.br/hc/pt-br/requests/new).

* Após finalizar a integração, realizar a [homologação](https://developers.celcoin.com.br/docs/homologacao-baas).

<Callout icon="👍" theme="okay">
  ### Importante

  **Sandbox**

  No ambiente de sandbox, possuímos o seguinte comportamento:<br />**Utilize o campo phoneNumber para PF**<br />**Utilize o campo contactNumber para PJ**<br />Final do telefone terminando em:<br />1 - Aprovado em ambos os webhooks e criará a conta (Independente dos demais dados informados)<br />2 - Reprovado no primeiro webhook (Independente dos demais dados informados)<br />3 - Aprova a primeira etapa do processo e reprova a segunda. (Independente dos demais dados informados)<br />Diferente de telefone final terminado em 1, 2 e 3 seguirá com o cenário próximo da realidade (Necessário informar dados reais em casos desse).<br />**OBS: O comportamento respeitará a configuração utilizada para o seu caso, fluxo 1 ou fluxo 2.**

  Após ativar a conta em sandbox, para realizar operações é necessário [adicionar saldo](https://developers.celcoin.com.br/docs/gerar-lan%C3%A7amento).

  **_Informações importantes para o processo em produção nas&#x20;_**[Considerações finais](https://developers.celcoin.com.br/docs/utilizacao-do-onboarding-celcoin#considera%C3%A7%C3%B5es-finais)
</Callout>

# Fluxo de integração Opção 1

**Para dar início ao processo, é necessário escolher um dos fluxos disponíveis: Fluxo 1 ou Fluxo 2.**

O primeiro passo é coletar os dados do seu cliente, (detalhados no tópico de Endpoints). Com esses dados coletados, você deverá fazer uma requisição utilizando o método POST em um dos Endpoints disponíveis:<br />• proposal/natural-person, para contas Pessoa Física (PF)<br />• proposal/legal-person, para contas Pessoa Jurídica (PJ)

Após essa requisição, uma proposta será gerada e submetida a uma análise de Background Check com nosso fornecedor. O resultado será enviado via Webhook.<br />Se aprovado, além do retorno com o status "Approved", enviaremos um segundo webhook em aproximadamente 1 minut contendo o link do webview para a jornada de captura de Selfie, FaceMatch e envio de documentos, que deve ser compartilhado com o cliente final.<br />Assim que a jornada for concluída, realizaremos novas verificações, incluindo documentoscopia e OCR.<br />O resultado da Documentoscopia será enviado via Webhook. Caso aprovado, enviaremos também um webhook confirmando a criação da conta no BaaS.<br />Em casos de reprovação, enviaremos o motivo de rejeição (caso permitido) em uma listagem no webhook, conforme detalhado no tópico de webhooks.

<Image src="https://files.readme.io/d96ebb5-Box.png" align="center" />

## Recomendações Fluxo 1

Recomendamos esse fluxo para clientes que possuem uma jornada faseada do processo de KYC. Onde é realizado o Background Check primeiro e depois a documentoscopia.<br />O grande benefício desse fluxo é que caso tenha reprovação na etapa de Background Check, não será necessário fazer a etapa de documentoscopia para aquela proposta. Caso a sua jornada seja contínua, recomendamos que olhe a documentação do fluxo 2.

## Criar propostas

A criação das propostas devem ser realizadas através dos [*endpoints*](https://developers.celcoin.com.br/reference/propostas)

Consulte a Recipe do fluxo com o **passo a passo**, **requests e responses**:

<Recipe slug="criação-de-contas-pf" title="Criação de contas PF" />

<br />

> **Ao criar uma proposta de abertura de contas a mesma não pode ser cancelada, nem pelo cliente (via API) e nem pela Celcoin, caso o cliente não queira seguir com a abertura da conta, apenas informe que não envie a documentação via Webview.**
>
> **A proposta tem uma validade de 30 dias, após este prazo a mesma é expirada automaticamente.**

<br />

<Callout icon="🙍‍♂️" theme="default">
  ### Pessoa Física

  Se a proposta for para uma pessoa física. (onboarding-proposal/natural-person) [_endpoint_](https://developers.celcoin.com.br/reference/criar-proposta-pessoa-fisica)

  URL Sandbox: [https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/natural-person](https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/natural-person)

  **Exemplo Request:**

  ```json Conta PF
  {
      "clientCode": "a7e9ea3f-69e4-4599-92b4-6cb8a79c3512", //código cliente
      "documentNumber": "91170215025", //documento
      "phoneNumber": "+5511912345678", // celular
      "email": "testekyc@celcoin.com.br", //email
      "motherName": "Teste Mãe", //nome da mãe
      "fullName": "Teste teste", //nome completo
      "socialName": "", //nome social
      "birthDate": "31-12-2000", //data de nascimento
      "address": { //Endereço
          "postalCode": "06455030", //CEP
          "street": "Alameda Xingu", //Rua
          "number": "350", //Número
          "addressComplement": "", //Complemento
          "neighborhood": "Alphaville Industrial", //Bairro
          "city": "Barueri", //Cidade
          "state": "SP" //Estado
      },
      "isPoliticallyExposedPerson": false, //Pessoa exposta politicamente
      "onboardingType": "BAAS", //Tipo do Onboarding
      "financialDetails": {
          "declaredIncome": "1DINP02", // Renda declarada
          "occupation": "ONP07", // Profissão
        "netWorth": "NWNP02" // Patrimônio 
      }
  }
  ```
</Callout>

<br />

**Exemplo Response:**

> ```json Conta PF
>   {
>       "body": {
>           "proposalId": "de20636c-5361-4df4-8a34-c01995a6976d",
>           "clientCode": "b9a77b3d-b519-4193-ac59-4f88de04d8a4",
>           "documentNumber": "83262483559"
>       },
>       "version": "1.0.0",
>       "status": "PROCESSING"
>   }
> ```

<br />

Consulte a Recipe do fluxo com o **passo a passo**, **requests e responses**:

<Recipe slug="criação-de-contas-pj" title="Criação de contas PJ" />

<br />

<Callout icon="🏛️" theme="default">
  ### Pessoa Jurídica

  Se a proposta for para uma pessoa jurídica. (onboarding-proposal/legal-person) [_endpoint_](https://developers.celcoin.com.br/reference/criar-proposta-pessoa-juridica)

  **É importante informar todos os sócios do Quadro Societário da empresa, ou pelo menos os que possuem participação societária maior ou igual a 25%.**

  URL Sandbox: [https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/legal-person](https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/legal-person)

  **Exemplo Request:**

  ```json Conta PJ padrão
  {
      "clientCode": "a7e9ea3f-69e4-4599-92b4-6cb8a79c3512", //código cliente
      "contactNumber": "+5511912345678", // celular
      "documentNumber": "87649940000194", //cnpj empresa
      "businessEmail": "testekyc@celcoin.com.br", //email empresa
      "businessName": "Celcoin", //razão social
      "tradingName": "Celcoin Instituição de Pagamento", //nome fantasia
      "companyType": "PJ", //tipo da empresa.Informe como PJ casos divergentes de Natureza Juridica Empresário Individual.
      "owner": [//Informar no primeiro array o sócio que ficará responsável pelo envio dos documentos no webview.
          {
              "ownerType": "SOCIO", //Utilizar Socio, representante ou demais socios
              "documentNumber": "72352781027", //documento
              "fullName": "Nome Teste", //nome completo
              "phoneNumber": "+5511912345128", //celular
              "email": "sociokyc@celcoin.com.br", //email
              "motherName": "Nome Mae", //nome da mãe
              "socialName": "Nome", //nome social
              "birthDate": "02-02-1990", //data de nascimento
              "address": { //Endereço
                  "postalCode": "06455030", //CEP
                  "street": "Alameda Xingu", //Rua
                  "number": "50", //número
                  "addressComplement": "", //Complemento
                  "neighborhood": "Alphaville Industrial", //Bairro
                  "city": "Barueri", //Cidade
                  "state": "SP" //Estado
              },
              "isPoliticallyExposedPerson": false, //Pessoa exposta politicamente
              "financialOwnerDetails": {
                  "ownerDeclaredIncome": "ODIB02", //Renda declarada em caso de sócio PF
                  "ownerDeclaredRevenue": "ODRB02" //Faturamento anual declarado em caso de sócio PJ
                }        
     }
      ],
      "businessAddress": { //Endereço Comercial
          "postalCode": "06455030", //CEP
          "street": "Alamed Xingu", //Rua
          "number": "350", //número
          "addressComplement": "", //Complemento
          "neighborhood": "Alphaville Industrial", //Bairro
          "city": "Barueri", //Cidade
          "state": "SP" //Estado
      },
      "onboardingType": "BAAS", //Tipo do Onboarding
      "financialCompanyDetails": {
        "declaredCompanyRevenue": "DCRB03", //Faturamento anual declarado da empresa
      }
  }
  ```
  ```json Sócio PJ
  //Exemplo de empresa com sócio PJ, necessário informar o Sócio Administrador da outra empresa.
  {
      "clientCode": "a7e9ea3f-69e4-4599-92b4-6cb8a79c3512",
      "contactNumber": "+5511985028123",
      "documentNumber": "42222915000191",
      "businessEmail": "testekyc@celcoin.com.br}",
      "businessName": "Celcoin",
      "tradingName": "Celcoin Instituição de Pagamento",
      "companyType": "PJ",
      "owner": [
          {
              "ownerType": "SOCIO",
              "documentNumber": "72352781027",
              "fullName": "Nome Socio Primeira Empresa",
              "phoneNumber": "+5511912345128",
              "email": "sociokyc@celcoin.com.br",
              "motherName": "Mother Name Teste",
              "socialName": "Nome",
              "birthDate": "22-06-1972",
              "address": {
                  "postalCode": "06455030",
                  "street": "Rua do Teste",
                  "number": "123",
                  "addressComplement": "",
                  "neighborhood": "Alphaville Industrial",
                  "city": "Barueri",
                  "state": "SP"
              },
            "isPoliticallyExposedPerson": false,     
            "financialOwnerDetails": {
              "ownerDeclaredIncome": "ODIB02",
              "ownerDeclaredRevenue": "ODRB02",
            }        
          },
          {
              "ownerType": "SOCIO",
              "documentNumber": "08006528004",
              "fullName": "Nome Socio da Segunda Empresa",
              "phoneNumber": "+5511912345128",
              "email": "CELCOIN.PJ@celcoin.com.br",
              "motherName": "Nome Mãe Socio Empresa",
              "socialName": "Nome Social",
              "birthDate": "22-06-2005",
              "address": {
                  "postalCode": "06455030",
                  "street": "Alameda Xingu",
                  "number": "123",
                  "addressComplement": "",
                  "neighborhood": "Alphaville Industrial",
                  "city": "Barueri",
                  "state": "SP"
              },
            "isPoliticallyExposedPerson": false,         
            "financialOwnerDetails": {
              "ownerDeclaredIncome": "ODIB02",
              "ownerDeclaredRevenue": "ODRB02",
            }        
          }
      ],
      "businessAddress": {
          "postalCode": "06454000",
          "street": "Alameda Rio Negro",
          "number": "503",
          "addressComplement": "sala 2020",
          "neighborhood": "Alphaville Centro Industrial",
          "city": "Barueri",
          "state": "SP"
      },
    "onboardingType": "BAAS", 
    "financialCompanyDetails": {
       "declaredCompanyRevenue": "DCRB03", //Faturamento anual declarado da empresa
    }
  }
  ```

  No atributo “ownerType” deverá ser informado uma das opções: “SOCIO” OU “REPRESENTANTE”. Informe no primeiro array quem irá ficar responsável pelo envio dos documentos e que possui alçada para a abertura da conta.

  Para casos onde existe mais de um sócio, utilize a opção "SOCIO" para o primeiro Sócio e a opção “DEMAIS_SOCIOS” para os demais. Caso seja informado REPRESENTANTE no Webview será obrigatório a inclusão da Procuração de Poderes.<br />No atributo CompanyType deverá ser informado o tipo de empresa MEI ou PJ. Em caso de dúvidas, é imprescindível questionar ao cliente, pois impactará na jornada de KYC.<br />Em caso de envio de MEI é necessário enviar apenas um SOCIO no ownerType.

  Para casos com empresas com sócio PJ, informe o sócio administrador da segunda empresa no request. Exemplo na guia 2 do Request. Além disso, será necessário que o usuário que faça a jornada do Webview realize o envio do contrato social da empresa e da empresa sócia desta empresa.

  Para casos diferentes de MEI o tipo de empresa, informe como tipo PJ.
</Callout>

<br />

**Exemplo Response:**

> ```json Conta PJ padrão
>       "body": {
>           "proposalId": "d95f6080-514d-47b7-9f00-e96c650692a8",
>           "clientCode": "09a5cee1-02b2-461f-ac2f-2dd8bb5335dc",
>           "documentNumber": "53489716000160"
>       },
>       "version": "1.0.0",
>       "status": "PROCESSING"
>   }
> ```

<br />

<Callout icon="📘" theme="info">
  ### Informações financeiras

  Para informações sobre o correto preenchimento dos campos do objeto "financialDetails" acesse nossa documentação complementar: [Informações Financeiras.](https://developers.celcoin.com.br/docs/informa%C3%A7%C3%B5es-financeiras-1)
</Callout>

## Consultar propostas

É possível consultar as propostas criadas e seus status utilizando o seguinte [*endpoint*](https://developers.celcoin.com.br/reference/consultar-proposta)

É possível utilizar os seguintes filtros:<br />• Data início e data fim (Obrigatório caso não inclua o nº da proposta)<br />• Status proposta<br />• DocumentNumber<br />• Nº Proposta

<Callout icon="🚧" theme="warn">
  Os endpoints de consulta devem ser utilizados apenas como fluxo de contingência. O fluxo principal deve ser acompanhado por meio dos webhooks.
</Callout>

Também é possível consultar os status das Propostas no Painel do Cliente através da opção **Consultar Onboarding.**

**URL Sandbox:**<br /><https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal>

**Exemplo Request:**

onboarding-proposal?dateFrom=2024-02-03T06:30:00\&dateTo=2024-03-25T06:30:00

**Exemplo Response:**

> ```json form_data
>   {
>       "body": {
>           "limit": 200,
>           "currentPage": 1,
>           "limitPerPage": 4,
>           "totalPages": 50,
>           "totalItems": 4,
>           "proposal": [
>               {
>                   "proposalId": "0436b237-08f5-44e9-bb18-503e794e890b",
>                   "clientCode": "5f71cb96-12e2-4840-86ae-befea5d50a76",
>                   "documentNumber": "20533957451",
>                   "status": "RESOURCE_CREATED",
>                   "proposalType": "PF",
>                   "createdAt": "2026-02-03T13:10:33.248Z",
>                   "updatedAt": "2026-02-03T13:13:18.777Z",
>                   "documentscopys": [
>                       {
>                           "proposalId": "0436b237-08f5-44e9-bb18-503e794e890b",
>                           "documentNumber": "20533957451",
>                           "documentscopyId": "69821e021ad8630002528bc3",
>                           "status": "APPROVED",
>                           "url": "https://celcoin.cadastro.io/cd06ee5d4c0f9760b686552b618c6167",
>                           "createdAt": "2026-02-03T13:10:32.438Z",
>                           "updateAt": "2026-02-03T13:13:17.756Z"
>                       }
>                   ]
>               },
>               {
>                   "proposalId": "ece3bbb0-3a75-4864-872c-c92f83110df5",
>                   "clientCode": "9e88551d-866f-4682-84c3-ba603addadc6",
>                   "documentNumber": "97774246479",
>                   "status": "REPROVED",
>                   "proposalType": "PF",
>                   "createdAt": "2026-02-04T11:07:36.012Z",
>                   "updatedAt": "2026-03-06T11:10:14.241Z",
>                   "documentscopys": [
>                       {
>                           "proposalId": "ece3bbb0-3a75-4864-872c-c92f83110df5",
>                           "documentNumber": "97774246479",
>                           "documentscopyId": "698352b5dc78c700022cc001",
>                           "status": "REPROVED",
>                           "url": "https://celcoin.cadastro.io/1850b6e1169d9bfb6b2f9ebcb12a1d19",
>                           "createdAt": "2026-02-04T11:07:35.147Z",
>                           "updateAt": "2026-03-06T11:10:12.75Z"
>                       }
>                   ]
>               },
>               {
>                   "proposalId": "566ac81f-806f-4cb3-a071-d97f55b69cee",
>                   "clientCode": "63b6dc08-9b24-48ba-928d-1ca55eaa4c83",
>                   "documentNumber": "30777801434",
>                   "status": "RESOURCE_CREATED",
>                   "proposalType": "PF",
>                   "createdAt": "2026-02-04T11:41:44.523Z",
>                   "updatedAt": "2026-02-04T11:45:02.385Z",
>                   "documentscopys": [
>                       {
>                           "proposalId": "566ac81f-806f-4cb3-a071-d97f55b69cee",
>                           "documentNumber": "30777801434",
>                           "documentscopyId": "69835ab34f3fba0002ece3a7",
>                           "status": "APPROVED",
>                           "url": "https://celcoin.cadastro.io/3c578f135a07661d4ef16f797c427667",
>                           "createdAt": "2026-02-04T11:41:43.66Z",
>                           "updateAt": "2026-02-04T11:45:01.522Z"
>                       }
>                   ]
>               },
>               {
>                   "proposalId": "0e3e147c-9379-4860-99a6-9f06bfce1357",
>                   "clientCode": "9938c59f-f17f-4225-a894-8ae0d772429c",
>                   "documentNumber": "36223674821",
>                   "status": "RESOURCE_CREATED",
>                   "proposalType": "PF",
>                   "createdAt": "2026-02-04T11:48:32.105Z",
>                   "updatedAt": "2026-02-04T11:48:46.513Z",
>                   "documentscopys": [
>                       {
>                           "proposalId": "0e3e147c-9379-4860-99a6-9f06bfce1357",
>                           "documentNumber": "36223674821",
>                           "documentscopyId": "69835c4ae646d10002647098",
>                           "status": "APPROVED",
>                           "createdAt": "2026-02-04T11:48:31.211Z",
>                           "updateAt": "2026-02-04T11:48:46.089Z"
>                       }
>                   ]
>               }
>           ]
>       },
>       "version": "1.0.0",
>       "status": "SUCCESS"
>   }
>
> ```

## Buscar documentos

É possível buscar os documentos associados as propostas através do [*endpoint*](https://developers.celcoin.com.br/reference/buscar-arquivos-proposta)

É possível utilizar os seguintes filtros:<br />• Nº Proposta (ProposalId)<br />• ClientCode

Também é possível utilizar ambos os filtros, porém caso um dos parâmetros estejam errados não irá retornar nada.

**Observação:** As URLs retornadas possuem duração de 15minutos, após a expiração é necessário realizar uma nova chamada.

**URL Sandbox:**<br /><https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/files>

**Exemplo Request:**

onboarding-proposal/files?ProposalId=3257b215-bef9-402b-a779-104441b520b4

**Exemplo Response:**

> ```json form_data
>   {
>       "body": {
>           "files": [
>               {
>                   "type": "CNH_FRONT",
>                   "url": "https://onboardingexterno.blob.core.windows.net/onboarding/SANDBOX/972/30777801434/566ac81f-806f-4cb3-a071-d97f55b69cee/30777801434_69835ab34f3fba0002ece3a7_CNH_FRONT.jpg?sv=2025-05-05&se=2026-04-09T18%3A17%3A45Z&sr=b&sp=r&sig=lsC3SETLIDtDKhr6ntKez4T3csq9wxSEb%2BuCq5I33yY%3D",
>                   "expirationTime": "2026-04-09T15:17:45Z"
>               },
>               {
>                   "type": "SELFIE",
>                   "url": "https://onboardingexterno.blob.core.windows.net/onboarding/SANDBOX/972/30777801434/566ac81f-806f-4cb3-a071-d97f55b69cee/30777801434_69835ab34f3fba0002ece3a7_SELFIE.jpg?sv=2025-05-05&se=2026-04-09T18%3A17%3A45Z&sr=b&sp=r&sig=aX%2BnSUTiDsBKbClh%2FmougHk%2Bqm1OsgVSNJRnSjnQ2rw%3D",
>                   "expirationTime": "2026-04-09T15:17:45Z"
>               }
>           ],
>           "clientCode": "63b6dc08-9b24-48ba-928d-1ca55eaa4c83",
>           "documentNumber": "30777801434",
>           "proposalId": "566ac81f-806f-4cb3-a071-d97f55b69cee"
>       },
>       "version": "1.0.0",
>       "status": "SUCCESS"
>   }
>
> ```

## Buscar tagueamento jornada webview

É possível buscar os dados referentes a jornada Webview através do [*endpoint*](https://developers.celcoin.com.br/reference/buscar-tagueamento-jornada-webview)<br />Através do retorno é possível identificar em qual etapa da jornada o usuário parou o processo de envio dos documentos e selfie.

É possível utilizar os seguintes filtros:<br />• Nº Proposta (ProposalId)<br />• ClientCode

Também é possível utilizar ambos os filtros, porém caso um dos parâmetros estejam errados não irá retornar nada.

**Observação:** Os dados retornados possuem um pequeno delay para retornar no endpoint, após o abandono/conclusão da jornada. Temos uma limitação de 10 requests por minuto por proposta.

**URL Sandbox:**<br /><https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/tagging-journey>

**Exemplo Request:**

onboarding-proposal/tagging-journey?ProposalId=3257b215-bef9-402b-a779

**Exemplo Response:**

> ```json form_data
>   {
>       "body": {
>           "proposalId": "566ac81f-806f-4cb3-a071-d97f55b69cee",
>           "clientCode": "63b6dc08-9b24-48ba-928d-1ca55eaa4c83",
>           "documentNumber": "30777801434",
>           "processedAt": "09/04/2026",
>           "status": "RESOURCE_CREATED",
>           "link": "https://celcoin.cadastro.io/3c578f135a07661d4ef16f797c427667",
>           "totalDevices": 1,
>           "devices": [
>               {
>                   "browser": {
>                       "name": "Chrome",
>                       "version": "126.0.0.0"
>                   },
>                   "os": {
>                       "name": "Android",
>                       "version": "10",
>                       "versionname": null
>                   },
>                   "platform": {
>                       "type": "mobile",
>                       "vendor": null,
>                       "model": null
>                   },
>                   "engine": {
>                       "name": "Blink",
>                       "version": null
>                   },
>                   "useragent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36"
>               }
>           ],
>           "lastStep": {
>               "timestamp": "09/04/2026",
>               "stepName": "STEP_DONE-1",
>               "secondsFromPrevious": -32,
>               "secondsFromNext": null,
>               "deviceBrowserName": null,
>               "deviceOsName": null,
>               "deviceOsVersion": null,
>               "devicePlatformType": null
>           },
>           "stepsArray": [
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_INSTRUCTIONS-1",
>                   "secondsFromPrevious": null,
>                   "secondsFromNext": 2,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_CAMERA_ACCESS-1",
>                   "secondsFromPrevious": -2,
>                   "secondsFromNext": 27,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_LIVENESS_IPROOV-1",
>                   "secondsFromPrevious": -27,
>                   "secondsFromNext": 59,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_LIVENESS_IPROOV_PREVIEW-1",
>                   "secondsFromPrevious": -59,
>                   "secondsFromNext": 3,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_UPLOAD_DOCUMENT-1",
>                   "secondsFromPrevious": -3,
>                   "secondsFromNext": 1107,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_DOCUMENT_TYPE-1",
>                   "secondsFromPrevious": -1107,
>                   "secondsFromNext": 21,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_SEND_DOCUMENT_TYPE-1",
>                   "secondsFromPrevious": -21,
>                   "secondsFromNext": 12,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_DD-1",
>                   "secondsFromPrevious": -12,
>                   "secondsFromNext": 27,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_DD_PREVIEW-1",
>                   "secondsFromPrevious": -27,
>                   "secondsFromNext": 32,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_DONE-1",
>                   "secondsFromPrevious": -32,
>                   "secondsFromNext": null,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               }
>           ]
>       },
>       "version": "1.0.0",
>       "status": "SUCCESS"
>   }
>
> ```

## Eventos da jornada do KYC

**Evento: onboarding-backgroundcheck**

Evento que informa o status do processo de Background Check.<br />Status inicial = Pending

```json form-data
//Exemplo Pending
{
  "body": {
    "proposalId": "4915eca3-ad55-467e-973b-05a773290e38",
    "clientCode": "4a3aba31-4c40-411b-a3d9-345e2d43d8ea",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS"
  },
  "createTimestamp": "2024-03-05T16:43:33Z",
  "entity": "onboarding-backgroundcheck",
  "status": "PENDING",
  "webhookId": "9f0587ee-a057-4323-a61c-b89d45acacae"
}

```

Em caso de aprovação ou reprovação do Backgroundcheck. Status Approved ou Reproved.

```json form-data
//Exemplo Aprovado
{
  "body": {
    "proposalId": "aa3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252jj",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS"
  },
  "createTimestamp": "2024-03-05T18:02:10Z",
  "entity": "onboarding-backgroundcheck",
  "status": "APPROVED",
  "webhookId": "dce44989-dd518-4abe-85ec-9c863cf39295"
}

//Exemplo Reprovado
{
  "body": {
    "proposalId": "4915eca3-ad55-467e-973b-05a773290e38",
    "clientCode": "4a3aba31-4c40-411b-a3d9-345e2d43d8ea",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "RejectedReason":[
      "O CPF não está regular na Receita Federal.",
      "CNPJ inativo ou baixado.",
     ]
  },
  "createTimestamp": "2024-03-05T16:43:33Z",
  "entity": "onboarding-backgroundcheck",
  "status": "REPROVED",
  "webhookId": "9f0587ee-a057-4323-a61c-b89d45acacae"
}
```

**Evento: onboarding-documentscopy**

Evento que informa o status do processo de Documentoscopia.<br />Status inicial = Pending

```json form-data
//Exemplo Pending
{
  "body": {
    "proposalId": "aa3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "urlDocumentscopy": "https://celcoin.beta.cadastro.io/a1258b5d8212d80f360139418e7d5123"
  },
  "createTimestamp": "2024-03-05T18:02:17Z",
  "entity": "onboarding-documentscopy",
  "status": "PENDING",
  "webhookId": "4de73327-ba5a-4240-85d6-8d36e3bf323d"
}

```

O campo “urlDocumentscopy” consiste no link com a jornada para a captura dos documentos do seu cliente e também a captura da selfie. A URL não possui tempo de expiração.

Quando o cliente finalizar a jornada da URL<br />Status = Processing

```json form-data
//Exemplo Processing
{
  "body": {
    "proposalId": "aa3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
  },
  "createTimestamp": "2024-03-05T18:02:17Z",
  "entity": "onboarding-documentscopy",
  "status": "PROCESSING",
  "webhookId": "4de73327-ba5a-4240-85d6-8d36e3bf323d"
}

```

Em caso de aprovação ou reprovação da Documentoscopia. Status Approved ou Reproved.

```json form-data
//Exemplo Aprovado
{
  "body": {
    "proposalId": "aa1a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS"
  },
  "createTimestamp": "2024-03-06T13:19:40Z",
  "entity": "onboarding-documentscopy",
  "status": "APPROVED",
  "webhookId": "a5c339e8-4021-4ab5-980f-b0d1a28e7fad"
}

//Exemplo Reprovado
{
  "body": {
    "proposalId": "aa1a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "RejectedReason":[
      "O CPF não está regular na Receita Federal.",
      "CNPJ inativo ou baixado.",
     ]
  },
  "createTimestamp": "2024-03-06T13:19:40Z",
  "entity": "onboarding-documentscopy",
  "status": "REPROVED",
  "webhookId": "a5c339e8-4021-4ab5-980f-b0d1a28e7fad"
}

```

**Evento: webhook onboarding-file**

Evento que envia a URL que contém os documentos enviados pelo cliente na jornada. Esse evento será enviado após o webhook onboarding-documentscopy com status Processing.

Para saber quais os tipos de documentos possíveis consulte a tabela de apoio no final da documentação.

```json form-data
{
  "body": {
    "proposalId": "3d81a091-1023-48c2-8a10-f5307a6c12ef",
    "clientCode": "28c6d5f9-8dbc-4192-80c0-ad7d757f12d1",
    "documentNumber": "52154397000170",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "files": [
      {
        "type": "CNH_FRONT",
        "url": "https://onboardingexterno.blob.core.windows.net/onboarding/HML/123/52154397000170/3d81a091-1023-48c2-8a10-f5307a6c12ef/52154397000170_6633e343bfe9a000089a10ce_CNH_FRONT.jpg?sv=2023-11-03&se=2024-05-02T20%3A24%3A07Z&sr=b&sp=r&sig=SSAlANYbRSmrQ7vxO%2BRhd46WIJxmRSwQjfORLwCDmMk%3D",
        "expirationTime": "2024-05-02T17:24:07Z"
      },
      {
        "type": "SELFIE",
        "url": "https://onboardingexterno.blob.core.windows.net/onboarding/HML/123/52154397000170/3d81a091-1023-48c2-8a10-f5307a6c12ef/52154397000170_6633e343bfe9a000089a10ce_SELFIE.png?sv=2023-11-03&se=2024-05-02T20%3A24%3A08Z&sr=b&sp=r&sig=5VDYJ%2B8ampW%2Bwn5UplNpEiAMXhwdI%2B%2BM34tWuuCVYJ0%3D",
        "expirationTime": "2024-05-02T17:24:08Z"
      },
      {
        "type": "CONTRATO_SOCIAL",
        "url": "https://onboardingexterno.blob.core.windows.net/onboarding/HML/123/52154397000170/3d81a091-1023-48c2-8a10-f5307a6c12ef/52154397000170_6633e343bfe9a000089a10ce_CONTRATO_SOCIAL.pdf?sv=2023-11-03&se=2024-05-02T20%3A24%3A08Z&sr=b&sp=r&sig=ainZ0FEJkNfhdg%2FMXqyokBXZb5pWuO5rycHI593Y3i8%3D",
        "expirationTime": "2024-05-02T17:24:08Z"
      }
    ],
    "createTimestamp": "2024-05-02T17:09:08Z",
    "entity": "onboarding-file"
  },
  "webhookId": "f57d7b86-49f3-430e-b870-e0f48555e7c1"
}
```

**Evento: onboarding-proposal**

Resultado da proposta, status Approved ou Reproved.

```json form-data
//Exemplo Aprovado
{
  "body": {
    "proposalId": "aa3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS"
  },
  "createTimestamp": "2024-03-06T13:19:40Z",
  "entity": "onboarding-proposal",
  "status": "APPROVED",
  "webhookId": "412efd4d-5c8f-47fb-b837-71211956b1ef"
}

//Exemplo Reprovado
{
  "body": {
    "proposalId": "bb3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "RejectedReason":[ //motivo da reprovação
      "O CPF não está regular na Receita Federal.",
      "CNPJ inativo ou baixado.",
     ]
  },
  "createTimestamp": "2024-03-06T13:19:40Z",
  "entity": "onboarding-proposal",
  "status": "REPROVED",
  "webhookId": "412efd4d-5c8f-47fb-b837-71211956b1ef"
}
```

Após a aprovação da proposta, uma conta com os dados respectivos será criada no BaaS e o Webhook do BaaS irá retornar as informações.

**Evento: onboarding-create**

Criação da conta no BaaS

O Status será sempre CONFIRMED ou ERROR caso ocorra algum erro na criação.

O onboardingId retornado nesse webhook é o mesmo dado do proposalId.

```json form-data
//Exemplo Confirmed
{
  "entity": "onboarding-create",
  "createTimestamp": "2022-11-04T10:35:16.0511474",
  "status": "CONFIRMED",
  "body": {
    "account": {
      "branch": "0001", //agência da conta
      "account": "30053912934", //número da conta
      "name": "Ms. Rodolfo Marvin",
      "documentNumber": "86913161280"
    },
    "onboardingId": "1e39442d-270f-4f9a-b752-9c08456c6e14", //será o mesmo dado do proposalId
    "clientCode": "1f8ff32f-2d1f-4c28-b316-8020b3d13d43",
    "createDate": "2022-11-04T10:35:16.0511474"
  }
}

//Exemplo Error
{
  "entity": "onboarding-create",
  "createTimestamp": "2022-11-04T10:35:16.0511474",
  "status": "ERROR",
  "error": {
    "errorCode": "CBE020"
     "message":"tradingName é obrigatório e deve ser completo."
},
    "onboardingId": "5e39442d-270f-4f9a-b752-9c07776c6e14",
    "clientCode": "777ff32f-2d1f-4c28-b316-8020b3d77d43",
    "createDate": "2022-11-04T10:35:16.0511474"
  }
}
```

***

# Fluxo de integração Opção 2

**Para dar início ao processo, é necessário escolher um dos fluxos disponíveis: Fluxo 1 ou Fluxo 2.**

O primeiro passo é coletar os dados do seu cliente, (detalhados no tópico de Endpoints). Com esses dados coletados, você deverá fazer uma requisição utilizando o método POST em um dos Endpoints disponíveis:<br />• proposal/natural-person, para contas Pessoa Física (PF)<br />• proposal/legal-person, para contas Pessoa Jurídica (PJ)

Após essa requisição, uma proposta será gerada e um webhook disparado, contendo o link do webview para a jornada de captura de Selfie, FaceMatch e envio de documentos, que deve ser compartilhado com o cliente final.<br />Assim que a jornada for concluída, realizaremos as verificações, incluindo documentoscopia e OCR.<br />O resultado da Documentoscopia será enviado via Webhook. Caso aprovado, realizaremos uma análise de Background Check dos dados informados. O resultado do Background Check será enviado via Webhook. Caso aprovado, enviaremos também um webhook confirmando a criação da conta no BaaS.<br />Em casos de reprovação, enviaremos o motivo de rejeição (caso permitido) em uma listagem no webhook, conforme detalhado no tópico de webhooks.

<Image src="https://files.readme.io/38cad30-Box.png" align="center" />

## Recomendações Fluxo 2

Recomendamos esse fluxo para clientes que possuem uma jornada contínua do processo de KYC.<br />Nesse fluxo é realizado a Documentoscopia primeiro e depois o Background Check. Caso a sua jornada seja faseada, recomendamos que olhe a documentação do fluxo 1.

## Criar propostas

A criação das propostas devem ser realizadas através dos [*endpoints*](https://developers.celcoin.com.br/reference/propostas)

<Callout icon="🙍‍♂️" theme="default">
  ### Pessoa Física

  Se a proposta for para uma pessoa física. (onboarding-proposal/natural-person) [_endpoint_](https://developers.celcoin.com.br/reference/criar-proposta-pessoa-fisica)

  URL Sandbox: [https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/natural-person](https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/natural-person)

  **Exemplo Request:**

  ```json form-data
  {
      "clientCode": "a7e9ea3f-69e4-4599-92b4-6cb8a79c3512", //código cliente
      "documentNumber": "91170215025", //documento
      "phoneNumber": "+5511912345678", // celular
      "email": "testekyc@celcoin.com.br", //email
      "motherName": "Teste Mãe", //nome da mãe
      "fullName": "Teste teste", //nome completo
      "socialName": "", //nome social
      "birthDate": "31-12-2000", //data de nascimento
      "address": { //Endereço
          "postalCode": "06455030", //CEP
          "street": "Alameda Xingu", //Rua
          "number": "350", //Número
          "addressComplement": "", //Complemento
          "neighborhood": "Alphaville Industrial", //Bairro
          "city": "Barueri", //Cidade
          "state": "SP" //Estado
      },
      "isPoliticallyExposedPerson": false, //Pessoa exposta politicamente
      "onboardingType": "BAAS", //Tipo do Onboarding
      "financialDetails": {
         "declaredIncome": "1DINP02", // Renda declarada
         "occupation": "ONP07", // Profissão
         "netWorth": "NWNP02" // Patrimônio
       }
  }
  ```
</Callout>

**Exemplo Response:**

> ```json Conta PF
>   {
>       "body": {
>           "proposalId": "de20636c-5361-4df4-8a34-c01995a6976d",
>           "clientCode": "b9a77b3d-b519-4193-ac59-4f88de04d8a4",
>           "documentNumber": "83262483559"
>       },
>       "version": "1.0.0",
>       "status": "PROCESSING"
>   }
> ```

<Callout icon="🏛️" theme="default">
  ### Pessoa Jurídica

  Se a proposta for para uma pessoa jurídica. (onboarding-proposal/legal-person) [_endpoint_](https://developers.celcoin.com.br/reference/criar-proposta-pessoa-juridica)

  **É importante informar todos os sócios do Quadro Societário da empresa, ou pelo menos os que possuem participação societária maior ou igual a 25%.**

  URL Sandbox: [https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/legal-person](https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/legal-person)

  **Exemplo Request:**

  ```json form-data
  {
      "clientCode": "a7e9ea3f-69e4-4599-92b4-6cb8a79c3512", //código cliente
      "contactNumber": "+5511912345678", // celular
      "documentNumber": "87649940000194", //cnpj empresa
      "businessEmail": "testekyc@celcoin.com.br", //email empresa
      "businessName": "Celcoin", //nome fantasia
      "tradingName": "Celcoin Instituição de Pagamento", //razão social
      "companyType": "PJ", ///tipo da empresa.Informe como PJ casos divergentes de Natureza Juridica Empresário Individual.
      "owner": [//Informar no primeiro array o sócio que ficará responsável pelo envio dos documentos no webview.
          {
              "ownerType": "SOCIO", //Utilizar Socio, representante ou demais socios
              "documentNumber": "72352781027", //documento
              "fullName": "Nome Teste", //nome completo
              "phoneNumber": "+5511912345128", //celular
              "email": "sociokyc@celcoin.com.br", //email
              "motherName": "Nome Mae", //nome da mãe
              "socialName": "Nome", //nome social
              "birthDate": "02-02-1990", //data de nascimento
              "address": { //Endereço
                  "postalCode": "06455030", //CEP
                  "street": "Alameda Xingu", //Rua
                  "number": "50", //número
                  "addressComplement": "", //Complemento
                  "neighborhood": "Alphaville Industrial", //Bairro
                  "city": "Barueri", //Cidade
                  "state": "SP" //Estado
              },
            "isPoliticallyExposedPerson": false, //Pessoa exposta politicamente
            "financialOwnerDetails": {
               "ownerDeclaredIncome": "ODIB02", //Renda declarada em caso de sócio PF
               "ownerDeclaredRevenue": "ODRB02" //Faturamento anual declarado em caso de sócio PJ
              }
          }
      ],
      "businessAddress": { //Endereço Comercial
          "postalCode": "06455030", //CEP
          "street": "Alamed Xingu", //Rua
          "number": "350", //número
          "addressComplement": "", //Complemento
          "neighborhood": "Alphaville Industrial", //Bairro
          "city": "Barueri", //Cidade
          "state": "SP" //Estado
      },
      "onboardingType": "BAAS", //Tipo do Onboarding
      "financialCompanyDetails": {
         "declaredCompanyRevenue": "DCRB03", //Faturamento anual declarado da empresa
       }
  }
  ```
  ```json
  //Exemplo de empresa com sócio PJ, necessário informar o Sócio Administrador da outra empresa.
  {
      "clientCode": "a7e9ea3f-69e4-4599-92b4-6cb8a79c3512",
      "contactNumber": "+5511985028123",
      "documentNumber": "42222915000191",
      "businessEmail": "testekyc@celcoin.com.br}",
      "businessName": "Celcoin",
      "tradingName": "Celcoin Instituição de Pagamento",
      "companyType": "PJ",
      "owner": [
          {
              "ownerType": "SOCIO",
              "documentNumber": "72352781027",
              "fullName": "Nome Socio Primeira Empresa",
              "phoneNumber": "+5511912345128",
              "email": "sociokyc@celcoin.com.br",
              "motherName": "Mother Name Teste",
              "socialName": "Nome",
              "birthDate": "22-06-1972",
              "address": {
                  "postalCode": "06455030",
                  "street": "Rua do Teste",
                  "number": "123",
                  "addressComplement": "",
                  "neighborhood": "Alphaville Industrial",
                  "city": "Barueri",
                  "state": "SP"
              },
              "isPoliticallyExposedPerson": false
          },
          {
              "ownerType": "SOCIO",
              "documentNumber": "08006528004",
              "fullName": "Nome Socio da Segunda Empresa",
              "phoneNumber": "+5511912345128",
              "email": "CELCOIN.PJ@celcoin.com.br",
              "motherName": "Nome Mãe Socio Empresa",
              "socialName": "Nome Social",
              "birthDate": "22-06-2005",
              "address": {
                  "postalCode": "06455030",
                  "street": "Alameda Xingu",
                  "number": "123",
                  "addressComplement": "",
                  "neighborhood": "Alphaville Industrial",
                  "city": "Barueri",
                  "state": "SP"
              },
              "isPoliticallyExposedPerson": false
          }
      ],
      "businessAddress": {
          "postalCode": "06454000",
          "street": "Alameda Rio Negro",
          "number": "503",
          "addressComplement": "sala 2020",
          "neighborhood": "Alphaville Centro Industrial",
          "city": "Barueri",
          "state": "SP"
      },
      "onboardingType": "BAAS"
  }
  ```

  No atributo “ownerType” deverá ser informado uma das opções: “SOCIO” OU “REPRESENTANTE”. Informe no primeiro array quem irá ficar responsável pelo envio dos documentos e que possui alçada para a abertura da conta.

  Para casos onde existe mais de um sócio, utilize a opção "SOCIO" para o primeiro Sócio e a opção “DEMAIS_SOCIOS” para os demais. Caso seja informado REPRESENTANTE no Webview será obrigatório a inclusão da Procuração de Poderes.<br />No atributo CompanyType deverá ser informado o tipo de empresa MEI ou PJ. Em caso de dúvidas, é imprescindível questionar ao cliente, pois impactará na jornada de KYC.<br />Em caso de envio de MEI é necessário enviar apenas um SOCIO no ownerType.

  Para casos com empresas com sócio PJ, informe o sócio administrador da segunda empresa no request. Exemplo na guia 2 do Request. Além disso, será necessário que o usuário que faça a jornada do Webview realize o envio do contrato social da empresa e da empresa sócia desta empresa.
</Callout>

<br />

<Callout icon="📘" theme="info">
  ### Informações financeiras

  Para informações sobre o correto preenchimento dos campos do objeto "financialDetails" acesse nossa documentação complementar: [Informações Financeiras.](https://developers.celcoin.com.br/docs/informa%C3%A7%C3%B5es-financeiras-1)
</Callout>

<br />

**Exemplo Response:**

> ```json form_data
>       "body": {
>           "proposalId": "d95f6080-514d-47b7-9f00-e96c650692a8",
>           "clientCode": "09a5cee1-02b2-461f-ac2f-2dd8bb5335dc",
>           "documentNumber": "53489716000160"
>       },
>       "version": "1.0.0",
>       "status": "PROCESSING"
>   }
> ```

***

<br />

<Callout icon="🗨️" theme="default">
  Nos casos em que o titular da conta (Pessoa Física) ou um dos sócios da empresa (Pessoa Jurídica) não possuir a informação de nome da mãe, o campo de filiação deverá ser preenchido conforme consta no documento oficial apresentado (RG, CIN ou Certidão de Nascimento).

  Nesses cenários, poderão ser utilizadas descrições como: “Ignorado”, “Desconhecido” ou “Não Declarado”

  É importante que o preenchimento seja realizado exatamente conforme apresentado no documento oficial da pessoa vinculada ao cadastro.
</Callout>

***

<br />

## Consultar propostas

É possível consultar as propostas criadas e seus status utilizando o seguinte [*endpoint*](https://developers.celcoin.com.br/reference/consultar-proposta)

É possível utilizar os seguintes filtros:<br />• Data início e data fim (Obrigatório caso não inclua o nº da proposta)<br />• Status proposta<br />• DocumentNumber<br />• Nº Proposta

<Callout icon="🚧" theme="warn">
  Os endpoints de consulta devem ser utilizados apenas como fluxo de contingência. O fluxo principal deve ser acompanhado por meio dos webhooks.
</Callout>

Também é possível consultar os status das Propostas no Painel do Cliente através da opção **Consultar Onboarding.**

**URL Sandbox:**<br /><https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal>

**Exemplo Request:**

onboarding-proposal?dateFrom=2024-02-03T06:30:00\&dateTo=2024-03-25T06:30:00

**Exemplo Response:**

> ```json form_data
>   {
>       "body": {
>           "limit": 200,
>           "currentPage": 1,
>           "limitPerPage": 4,
>           "totalPages": 50,
>           "totalItems": 4,
>           "proposal": [
>               {
>                   "proposalId": "0436b237-08f5-44e9-bb18-503e794e890b",
>                   "clientCode": "5f71cb96-12e2-4840-86ae-befea5d50a76",
>                   "documentNumber": "20533957451",
>                   "status": "RESOURCE_CREATED",
>                   "proposalType": "PF",
>                   "createdAt": "2026-02-03T13:10:33.248Z",
>                   "updatedAt": "2026-02-03T13:13:18.777Z",
>                   "documentscopys": [
>                       {
>                           "proposalId": "0436b237-08f5-44e9-bb18-503e794e890b",
>                           "documentNumber": "20533957451",
>                           "documentscopyId": "69821e021ad8630002528bc3",
>                           "status": "APPROVED",
>                           "url": "https://celcoin.cadastro.io/cd06ee5d4c0f9760b686552b618c6167",
>                           "createdAt": "2026-02-03T13:10:32.438Z",
>                           "updateAt": "2026-02-03T13:13:17.756Z"
>                       }
>                   ]
>               },
>               {
>                   "proposalId": "ece3bbb0-3a75-4864-872c-c92f83110df5",
>                   "clientCode": "9e88551d-866f-4682-84c3-ba603addadc6",
>                   "documentNumber": "97774246479",
>                   "status": "REPROVED",
>                   "proposalType": "PF",
>                   "createdAt": "2026-02-04T11:07:36.012Z",
>                   "updatedAt": "2026-03-06T11:10:14.241Z",
>                   "documentscopys": [
>                       {
>                           "proposalId": "ece3bbb0-3a75-4864-872c-c92f83110df5",
>                           "documentNumber": "97774246479",
>                           "documentscopyId": "698352b5dc78c700022cc001",
>                           "status": "REPROVED",
>                           "url": "https://celcoin.cadastro.io/1850b6e1169d9bfb6b2f9ebcb12a1d19",
>                           "createdAt": "2026-02-04T11:07:35.147Z",
>                           "updateAt": "2026-03-06T11:10:12.75Z"
>                       }
>                   ]
>               },
>               {
>                   "proposalId": "566ac81f-806f-4cb3-a071-d97f55b69cee",
>                   "clientCode": "63b6dc08-9b24-48ba-928d-1ca55eaa4c83",
>                   "documentNumber": "30777801434",
>                   "status": "RESOURCE_CREATED",
>                   "proposalType": "PF",
>                   "createdAt": "2026-02-04T11:41:44.523Z",
>                   "updatedAt": "2026-02-04T11:45:02.385Z",
>                   "documentscopys": [
>                       {
>                           "proposalId": "566ac81f-806f-4cb3-a071-d97f55b69cee",
>                           "documentNumber": "30777801434",
>                           "documentscopyId": "69835ab34f3fba0002ece3a7",
>                           "status": "APPROVED",
>                           "url": "https://celcoin.cadastro.io/3c578f135a07661d4ef16f797c427667",
>                           "createdAt": "2026-02-04T11:41:43.66Z",
>                           "updateAt": "2026-02-04T11:45:01.522Z"
>                       }
>                   ]
>               },
>               {
>                   "proposalId": "0e3e147c-9379-4860-99a6-9f06bfce1357",
>                   "clientCode": "9938c59f-f17f-4225-a894-8ae0d772429c",
>                   "documentNumber": "36223674821",
>                   "status": "RESOURCE_CREATED",
>                   "proposalType": "PF",
>                   "createdAt": "2026-02-04T11:48:32.105Z",
>                   "updatedAt": "2026-02-04T11:48:46.513Z",
>                   "documentscopys": [
>                       {
>                           "proposalId": "0e3e147c-9379-4860-99a6-9f06bfce1357",
>                           "documentNumber": "36223674821",
>                           "documentscopyId": "69835c4ae646d10002647098",
>                           "status": "APPROVED",
>                           "createdAt": "2026-02-04T11:48:31.211Z",
>                           "updateAt": "2026-02-04T11:48:46.089Z"
>                       }
>                   ]
>               }
>           ]
>       },
>       "version": "1.0.0",
>       "status": "SUCCESS"
>   }
>
> ```

## Buscar documentos

É possível buscar os documentos associados as propostas através do [*endpoint*](https://developers.celcoin.com.br/reference/buscar-arquivos-proposta)

É possível utilizar os seguintes filtros:<br />• Nº Proposta (ProposalId)<br />• ClientCode

Também é possível utilizar ambos os filtros, porém caso um dos parâmetros estejam errados não irá retornar nada.

**Observação:** As URLs retornadas possuem duração de 15minutos, após a expiração é necessário realizar uma nova chamada.

**URL Sandbox:**<br /><https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/files>

**Exemplo Request:**

onboarding-proposal/files?ProposalId=3257b215-bef9-402b-a779-104441b520b4

**Exemplo Response:**

> ```json form_data
>   {
>       "body": {
>           "files": [
>               {
>                   "type": "CNH_FRONT",
>                   "url": "https://onboardingexterno.blob.core.windows.net/onboarding/SANDBOX/972/30777801434/566ac81f-806f-4cb3-a071-d97f55b69cee/30777801434_69835ab34f3fba0002ece3a7_CNH_FRONT.jpg?sv=2025-05-05&se=2026-04-09T18%3A17%3A45Z&sr=b&sp=r&sig=lsC3SETLIDtDKhr6ntKez4T3csq9wxSEb%2BuCq5I33yY%3D",
>                   "expirationTime": "2026-04-09T15:17:45Z"
>               },
>               {
>                   "type": "SELFIE",
>                   "url": "https://onboardingexterno.blob.core.windows.net/onboarding/SANDBOX/972/30777801434/566ac81f-806f-4cb3-a071-d97f55b69cee/30777801434_69835ab34f3fba0002ece3a7_SELFIE.jpg?sv=2025-05-05&se=2026-04-09T18%3A17%3A45Z&sr=b&sp=r&sig=aX%2BnSUTiDsBKbClh%2FmougHk%2Bqm1OsgVSNJRnSjnQ2rw%3D",
>                   "expirationTime": "2026-04-09T15:17:45Z"
>               }
>           ],
>           "clientCode": "63b6dc08-9b24-48ba-928d-1ca55eaa4c83",
>           "documentNumber": "30777801434",
>           "proposalId": "566ac81f-806f-4cb3-a071-d97f55b69cee"
>       },
>       "version": "1.0.0",
>       "status": "SUCCESS"
>   }
>
> ```

## Buscar tagueamento jornada webview

É possível buscar os dados referentes a jornada Webview através do [*endpoint*](https://developers.celcoin.com.br/reference/buscar-tagueamento-jornada-webview)<br />Através do retorno é possível identificar em qual etapa da jornada o usuário parou o processo de envio dos documentos e selfie.

É possível utilizar os seguintes filtros:<br />• Nº Proposta (ProposalId)<br />• ClientCode

Também é possível utilizar ambos os filtros, porém caso um dos parâmetros estejam errados não irá retornar nada.

**Observação:** Os dados retornados possuem um pequeno delay para retornar no endpoint, após o abandono/conclusão da jornada. Temos uma limitação de 10 requests por minuto por proposta.

**URL Sandbox:**<br /><https://sandbox.openfinance.celcoin.dev/onboarding/v1/onboarding-proposal/tagging-journey>

**Exemplo Request:**

onboarding-proposal/tagging-journey?ProposalId=3257b215-bef9-402b-a779

**Exemplo Response:**

> ```json form_data
>   {
>       "body": {
>           "proposalId": "566ac81f-806f-4cb3-a071-d97f55b69cee",
>           "clientCode": "63b6dc08-9b24-48ba-928d-1ca55eaa4c83",
>           "documentNumber": "30777801434",
>           "processedAt": "09/04/2026",
>           "status": "RESOURCE_CREATED",
>           "link": "https://celcoin.cadastro.io/3c578f135a07661d4ef16f797c427667",
>           "totalDevices": 1,
>           "devices": [
>               {
>                   "browser": {
>                       "name": "Chrome",
>                       "version": "126.0.0.0"
>                   },
>                   "os": {
>                       "name": "Android",
>                       "version": "10",
>                       "versionname": null
>                   },
>                   "platform": {
>                       "type": "mobile",
>                       "vendor": null,
>                       "model": null
>                   },
>                   "engine": {
>                       "name": "Blink",
>                       "version": null
>                   },
>                   "useragent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36"
>               }
>           ],
>           "lastStep": {
>               "timestamp": "09/04/2026",
>               "stepName": "STEP_DONE-1",
>               "secondsFromPrevious": -32,
>               "secondsFromNext": null,
>               "deviceBrowserName": null,
>               "deviceOsName": null,
>               "deviceOsVersion": null,
>               "devicePlatformType": null
>           },
>           "stepsArray": [
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_INSTRUCTIONS-1",
>                   "secondsFromPrevious": null,
>                   "secondsFromNext": 2,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_CAMERA_ACCESS-1",
>                   "secondsFromPrevious": -2,
>                   "secondsFromNext": 27,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_LIVENESS_IPROOV-1",
>                   "secondsFromPrevious": -27,
>                   "secondsFromNext": 59,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_LIVENESS_IPROOV_PREVIEW-1",
>                   "secondsFromPrevious": -59,
>                   "secondsFromNext": 3,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_UPLOAD_DOCUMENT-1",
>                   "secondsFromPrevious": -3,
>                   "secondsFromNext": 1107,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_DOCUMENT_TYPE-1",
>                   "secondsFromPrevious": -1107,
>                   "secondsFromNext": 21,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_SEND_DOCUMENT_TYPE-1",
>                   "secondsFromPrevious": -21,
>                   "secondsFromNext": 12,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_DD-1",
>                   "secondsFromPrevious": -12,
>                   "secondsFromNext": 27,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_DD_PREVIEW-1",
>                   "secondsFromPrevious": -27,
>                   "secondsFromNext": 32,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               },
>               {
>                   "timestamp": "09/04/2026",
>                   "stepName": "STEP_DONE-1",
>                   "secondsFromPrevious": -32,
>                   "secondsFromNext": null,
>                   "deviceBrowserName": null,
>                   "deviceOsName": null,
>                   "deviceOsVersion": null,
>                   "devicePlatformType": null
>               }
>           ]
>       },
>       "version": "1.0.0",
>       "status": "SUCCESS"
>   }
>
> ```

## Eventos da jornada do KYC

**Evento: onboarding-documentscopy**

Evento que informa o status do processo de Documentoscopia.<br />Status inicial = Pending

```json form-data
//Exemplo Pending
{
  "body": {
    "proposalId": "aa3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "urlDocumentscopy": "https://celcoin.beta.cadastro.io/a1258b5d8212d80f360139418e7d5123"
  },
  "createTimestamp": "2024-03-05T18:02:17Z",
  "entity": "onboarding-documentscopy",
  "status": "PENDING",
  "webhookId": "4de73327-ba5a-4240-85d6-8d36e3bf323d"
}

```

O campo “urlDocumentscopy” consiste no link com a jornada para a captura dos documentos do seu cliente e também a captura da selfie. A URL não possui tempo de expiração.

Quando o cliente finalizar a jornada da URL<br />Status = Processing

```json form-data
//Exemplo Processing
{
  "body": {
    "proposalId": "aa3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
  },
  "createTimestamp": "2024-03-05T18:02:17Z",
  "entity": "onboarding-documentscopy",
  "status": "PROCESSING",
  "webhookId": "4de73327-ba5a-4240-85d6-8d36e3bf323d"
}

```

Em caso de aprovação ou reprovação da Documentoscopia. Status Approved ou Reproved.

```json form-data
//Exemplo Aprovado
{
  "body": {
    "proposalId": "aa1a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS"
  },
  "createTimestamp": "2024-03-06T13:19:40Z",
  "entity": "onboarding-documentscopy",
  "status": "APPROVED",
  "webhookId": "a5c339e8-4021-4ab5-980f-b0d1a28e7fad"
}

//Exemplo Reprovado
{
  "body": {
    "proposalId": "aa1a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "RejectedReason":[
      "O CPF não está regular na Receita Federal.",
      "CNPJ inativo ou baixado.",
     ]
  },
  "createTimestamp": "2024-03-06T13:19:40Z",
  "entity": "onboarding-documentscopy",
  "status": "REPROVED",
  "webhookId": "a5c339e8-4021-4ab5-980f-b0d1a28e7fad"
}

```

**Evento: webhook onboarding-file**

Evento que envia a URL que contém os documentos enviados pelo cliente na jornada. Esse evento será enviado após o webhook onboarding-documentscopy com status Processing.

Para saber quais os tipos de documentos possíveis consulte a tabela de apoio no final da documentação.

**Observação:** As URLs retornadas possuem duração de 15minutos, após a expiração é necessário realizar uma nova chamada através do Endpoint de Buscar Arquivos.

```json form-data
{
  "body": {
    "proposalId": "3d81a091-1023-48c2-8a10-f5307a6c12ef",
    "clientCode": "28c6d5f9-8dbc-4192-80c0-ad7d757f12d1",
    "documentNumber": "52154397000170",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "files": [
      {
        "type": "CNH_FRONT",
        "url": "https://onboardingexterno.blob.core.windows.net/onboarding/HML/123/52154397000170/3d81a091-1023-48c2-8a10-f5307a6c12ef/52154397000170_6633e343bfe9a000089a10ce_CNH_FRONT.jpg?sv=2023-11-03&se=2024-05-02T20%3A24%3A07Z&sr=b&sp=r&sig=SSAlANYbRSmrQ7vxO%2BRhd46WIJxmRSwQjfORLwCDmMk%3D",
        "expirationTime": "2024-05-02T17:24:07Z"
      },
      {
        "type": "SELFIE",
        "url": "https://onboardingexterno.blob.core.windows.net/onboarding/HML/123/52154397000170/3d81a091-1023-48c2-8a10-f5307a6c12ef/52154397000170_6633e343bfe9a000089a10ce_SELFIE.png?sv=2023-11-03&se=2024-05-02T20%3A24%3A08Z&sr=b&sp=r&sig=5VDYJ%2B8ampW%2Bwn5UplNpEiAMXhwdI%2B%2BM34tWuuCVYJ0%3D",
        "expirationTime": "2024-05-02T17:24:08Z"
      },
      {
        "type": "CONTRATO_SOCIAL",
        "url": "https://onboardingexterno.blob.core.windows.net/onboarding/HML/123/52154397000170/3d81a091-1023-48c2-8a10-f5307a6c12ef/52154397000170_6633e343bfe9a000089a10ce_CONTRATO_SOCIAL.pdf?sv=2023-11-03&se=2024-05-02T20%3A24%3A08Z&sr=b&sp=r&sig=ainZ0FEJkNfhdg%2FMXqyokBXZb5pWuO5rycHI593Y3i8%3D",
        "expirationTime": "2024-05-02T17:24:08Z"
      }
    ],
    "createTimestamp": "2024-05-02T17:09:08Z",
    "entity": "onboarding-file"
  },
  "webhookId": "f57d7b86-49f3-430e-b870-e0f48555e7c1"
}
```

**Evento: onboarding-backgroundcheck**

Evento que informa o status do processo de Background Check.<br />Status inicial = Pending

```json form-data
//Exemplo Pending
{
  "body": {
    "proposalId": "4915eca3-ad55-467e-973b-05a773290e38",
    "clientCode": "4a3aba31-4c40-411b-a3d9-345e2d43d8ea",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS"
  },
  "createTimestamp": "2024-03-05T16:43:33Z",
  "entity": "onboarding-backgroundcheck",
  "status": "PENDING",
  "webhookId": "9f0587ee-a057-4323-a61c-b89d45acacae"
}

```

Em caso de aprovação ou reprovação do Background Check. Status Approved ou Reproved.

```json form-data
//Exemplo Aprovado
{
  "body": {
    "proposalId": "aa3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252jj",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS"
  },
  "createTimestamp": "2024-03-05T18:02:10Z",
  "entity": "onboarding-backgroundcheck",
  "status": "APPROVED",
  "webhookId": "dce44989-dd518-4abe-85ec-9c863cf39295"
}

//Exemplo Reprovado
{
  "body": {
    "proposalId": "4915eca3-ad55-467e-973b-05a773290e38",
    "clientCode": "4a3aba31-4c40-411b-a3d9-345e2d43d8ea",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "RejectedReason":[
      "O CPF não está regular na Receita Federal.",
      "CNPJ inativo ou baixado.",
     ]
  },
  "createTimestamp": "2024-03-05T16:43:33Z",
  "entity": "onboarding-backgroundcheck",
  "status": "REPROVED",
  "webhookId": "9f0587ee-a057-4323-a61c-b89d45acacae"
}
```

**Evento: onboarding-proposal**

Resultado da proposta, status Approved ou Reproved.

```json form-data
//Exemplo Aprovado
{
  "body": {
    "proposalId": "aa3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS"
  },
  "createTimestamp": "2024-03-06T13:19:40Z",
  "entity": "onboarding-proposal",
  "status": "APPROVED",
  "webhookId": "412efd4d-5c8f-47fb-b837-71211956b1ef"
}

//Exemplo Reprovado
{
  "body": {
    "proposalId": "bb3a0bd5-22d3-4454-8bd7-9b9ef1b6da2d",
    "clientCode": "d12304dd-8b16-48a8-a2e9-73f1053252ee",
    "documentNumber": "48087438000185",
    "proposalType": "PJ",
    "onboardingType": "BAAS",
    "RejectedReason":[ //motivo da reprovação
      "O CPF não está regular na Receita Federal.",
      "CNPJ inativo ou baixado.",
     ]
  },
  "createTimestamp": "2024-03-06T13:19:40Z",
  "entity": "onboarding-proposal",
  "status": "REPROVED",
  "webhookId": "412efd4d-5c8f-47fb-b837-71211956b1ef"
}

```

Após a aprovação da proposta, uma conta com os dados respectivos será criada no BaaS e o Webhook do BaaS irá retornar as informações.

**Evento: onboarding-create**

Criação da conta no BaaS

O Status será sempre CONFIRMED ou ERROR caso ocorra algum erro na criação.

O onboardingId retornado nesse webhook é o mesmo dado do proposalId.

```json form-data
//Exemplo Sucesso
{
  "entity": "onboarding-create",
  "createTimestamp": "2022-11-04T10:35:16.0511474",
  "status": "CONFIRMED",
  "body": {
    "account": {
      "branch": "0001", //agência da conta
      "account": "30053912934", //número da conta
      "name": "Ms. Rodolfo Marvin",
      "documentNumber": "86913161280"
    },
    "onboardingId": "1e39442d-270f-4f9a-b752-9c08456c6e14", //será o mesmo dado do proposalId
    "clientCode": "1f8ff32f-2d1f-4c28-b316-8020b3d13d43",
    "createDate": "2022-11-04T10:35:16.0511474"
  }
}

//Exemplo erro
{
  "entity": "onboarding-create",
  "createTimestamp": "2022-11-04T10:35:16.0511474",
  "status": "ERROR",
  "error": {
    "errorCode": "CBE305"
     "message":"Já existe um cadastro com o mesmo clientCode enviado."
},
    "onboardingId": "5e39442d-270f-4f9a-b752-9c07776c6e14",
    "clientCode": "777ff32f-2d1f-4c28-b316-8020b3d77d43",
    "createDate": "2022-11-04T10:35:16.0511474"
  }
}
```

#

# **DocLess: reutilização de documentos**

Ao utilizar o DocLess não há alteração no fluxo na criação da proposta e geração do link do webview.&#x20;

A diferença acontece dentro do webview: se o usuário final já enviou documentos anteriormente, ele poderá optar por "Sim, reutilizar documento" e pular a etapa de captura.

As únicas alterações seriam no evento **onboarding-file** e n&#x6F;**&#x20;endpoint de consulta de documentos**.  no campo fileType: quando o cliente optar por utilizar o docless os dois valores retornados são: PERSONAL\_DOC\_FRONT e PERSONAL\_DOC\_BACK.

**Importante ressaltar que o fluxo DocLess utiliza a base inteira que nosso parceiro de documentosCopia possui, não somente clientes que já passaram previamente pelo ambiente exclusivo da Celcoin.**

**Atenção: Os valores existentes não são substituídos, os novos apenas se somam à lista. Como a decisão de reutilizar o documento é do usuário final e não é conhecida previamente pela sua aplicação, todos os valores do campo devem permanecer mapeados na sua integração, incluindo os dois novos. Remover ou deixar de tratar qualquer valor existente pode quebrar o processamento de propostas.**

Consulte a tabela de apoio completa com os tipos de arquivos ao final desta página.

# Integração com o Webview

Esta seção oferecerá suporte à integração do WebView, a jornada que o seu cliente envia os documentos.

**Recomendamos a utilização do Webview nos seguintes navegadores: Google Chrome, Mozilla Firefox e Safari.**

## Android

Para que as integrações para Android funcionem corretamente, é necessário que `setDomStorageEnabled` esteja definido como `true`. Exemplo abaixo:

`myWebView.getSettings().setDomStorageEnabled(true);`

## iOS

Para que as integrações  para iOS funcionem corretamente, é necessário customizar a configuração para permitir a reprodução de mídia sem solicitação de ação do usuário e para reproduzir a mídia. Exemplo abaixo:

```
let webView: WKWebView

init() {
    let audioVisualMediaType: WKAudiovisualMediaTypes = []
    let configuration = WKWebViewConfiguration()
    configuration.mediaTypesRequiringUserActionForPlayback = audioVisualMediaType
    configuration.allowsInlineMediaPlayback = true

    webView = WKWebView(frame: .zero, configuration: configuration)
}
```

## Outras plataformas

Em outras plataformas, por exemplo, Flutter e React Native, você deve procurar as configurações do WebView para permitir a reprodução de mídia sem exigir gestos do usuário e para reproduzir o vídeo da câmera inline, não no controlador nativo de tela cheia.

# Tabelas para apoio

<br />

## Documentos obrigatórios

<br />

| Tipo | Documentos Obrigatórios                                                                                                               |
| :--- | :------------------------------------------------------------------------------------------------------------------------------------ |
| PF   | • RG ou CNH ou RNE<br />• Selfie                                                                                                      |
| PJ   | • RG ou CNH ou RNE<br />• Selfie<br />• Contrato Social<br />**OBS: Em caso de Representante é obrigatório a procuração de poderes.** |
| MEI  | • RG ou CNH ou RNE<br />• Selfie                                                                                                      |

Os documentos podem ser anexados ou ser capturados no momento. Já a selfie, deve ser capturada no momento da abertura de conta, através da jornada de captura de documentos.

<br />

| Tipo Empresa                                             | Documentos Pessoa Jurídica                 |
| :------------------------------------------------------- | :----------------------------------------- |
| EIRELI - Empresa Individual de Responsabilidade Limitada | :Contrato social/Estatuto                  |
| EI - Empresário Individual                               | Requerimento de Empresário                 |
| LTDA - Sociedade Limitada                                | Contrato social/Estatuto                   |
| SLU - Sociedade Limitada Unipessoal                      | Contrato social/Estatuto                   |
| S/A - Sociedade Anônima:                                 | Estatuto/Ata de assembleia de constituição |

<br />

## Parâmetro, possíveis valores e significado

| Parâmetro                  | Possíveis valores                                                                                                                                                                   | Significado                                                                                                                                                                         |
| :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| proposalType               | PF ou PJ                                                                                                                                                                            | Tipo de proposta, se é pessoa física ou pessoa jurídica.                                                                                                                            |
| companyType                | PJ ou MEI                                                                                                                                                                           | Tipo de empresa. (Utilizado para proposalType = PJ)                                                                                                                                 |
| ownerType                  | SOCIO, REPRESENTANTE ou DEMAIS\_SOCIOS                                                                                                                                              | Tipo de pessoa atrelado ao quadro societário.                                                                                                                                       |
| isPoliticallyExposedPerson | True ou False                                                                                                                                                                       | Se a pessoa informada na proposta é [politicamente exposta.](https://www.gov.br/coaf/pt-br/assuntos/informacoes-as-pessoas-obrigadas/o-que-sao-pessoas-expostas-politicamente-peps) |
| onboardingType             | BAAS                                                                                                                                                                                | Tipo de Onboarding. (Por agora única opção disponível BAAS)                                                                                                                         |
| fileType                   | CNH\_FRONT, CNH\_BACK, RG\_FRONT, RG\_BACK, RNE\_FRONT, RNE\_BACK, CONTRATO\_SOCIAL, DOCUMENTO\_FINANCEIRO, PROCURACAO\_PODERES, SELFIE, PERSONAL\_DOC\_FRONT e PERSONAL\_DOC\_BACK | Tipo de arquivo enviado pelo cliente.                                                                                                                                               |

## Entidades, possíveis status e significado do status

| Entidade              | Status                    | Significado                                                                                                                      |
| :-------------------- | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------- |
| Proposal Status       | Created                   | Proposta criada.                                                                                                                 |
| Proposal Status       | Pending                   | Pendente Backgroundcheck (Nesse Status está sendo feito o background Check).                                                     |
| Proposal Status       | Pending\_Documentscopy    | Pendente Documentoscopia (Nesse Status está pendente a realização do envio dos documentos por parte do seu cliente via jornada). |
| Proposal Status       | Processing\_Documentscopy | Processando a Documentoscopia (Nesse Status seu cliente já finalizou a jornada e estamos processando as informações enviadas).   |
| Proposal Status       | Reproved                  | Proposta reprovada.                                                                                                              |
| Proposal Status       | Resource\_error           | Erro ao criar a conta no BaaS.                                                                                                   |
| Proposal Status       | Resource\_Created         | Proposta aprovada e conta criada no BaaS.                                                                                        |
| Documentscopys Status | Created                   | Documentoscopia criada.                                                                                                          |
| Documentscopys Status | Pending                   | Pendente Documentoscopia (Nesse Status está pendente a realização do envio dos documentos por parte do seu cliente via jornada). |
| Documentscopys Status | Processing                | Processando a Documentoscopia (Nesse Status seu cliente já finalizou a jornada e estamos processando as informações enviadas).   |
| Documentscopys Status | Reproved                  | Documentoscopia reprovada.                                                                                                       |
| Documentscopys Status | Approved                  | Documentoscopia aprovada.                                                                                                        |

## Regras Campos

| Campo        | Regras                                                            | Tamanho máximo |
| :----------- | :---------------------------------------------------------------- | :------------- |
| Name         | Regex = ("^(\[A-Za-zÀ-ÖØ-öø-ÿ' -]+)$"));                          | 140 caracteres |
| BusinessName | `Regex = ("^([A-Za-zÀ-ÖØ-öø-ÿ,.@:&*+_<>()!?/\\\\$%\\d' -]+)$"))`; | 350 caracteres |

## Tabela de erros

| **Código** | **Mensagem**                                                                                                 |
| :--------- | :----------------------------------------------------------------------------------------------------------- |
| OBE001     | Token de autorização não enviado.                                                                            |
| OBE002     | Token enviado está no formato incorreto.                                                                     |
| OBE003     | Token inválido.                                                                                              |
| OBE004     | Token expirado.                                                                                              |
| OBE005     | Usuario não encontrado.                                                                                      |
| OBE006     | Cliente não possui produto Onboarding ativo.                                                                 |
| OBE007     | O campo clientCode é obrigatório.                                                                            |
| OBE008     | O campo documentNumber é obrigatório e deve ser um CPF válido.                                               |
| OBE009     | O campo documentNumber é obrigatório e deve ser um CNPJ válido.                                              |
| OBE010     | O campo phoneNumber ou contactNumber é obrigatório e deve ser um telefone válido.                            |
| OBE011     | O campo email é obrigatório e deve ser um email válido.                                                      |
| OBE012     | O campo motherName é obrigatório e deve ser completo.                                                        |
| OBE013     | O campo fullName é obrigatório e deve ser completo.                                                          |
| OBE014     | O campo fullName possui tamanho máximo de 140 caracteres.                                                    |
| OBE015     | socialName inválido.                                                                                         |
| OBE016     | O campo birthDate é obrigatório e deve ser no formato (DD-MM-YYYY).                                          |
| OBE017     | O campo address é obrigatório.                                                                               |
| OBE018     | O campo onboardingType é obrigatório e deve conter um tipo válido.                                           |
| OBE019     | O campo postalCode é obrigatório e deve ser um CEP existente.                                                |
| OBE020     | O campo street é obrigatório deve respeitar o limite de caracteres e conter um formato de texto válido.      |
| OBE021     | Number inválido.                                                                                             |
| OBE022     | AddressComplement inválido.                                                                                  |
| OBE023     | O campo neighborhood é obrigatório e deve conter um formato de texto válido.                                 |
| OBE024     | O campo city é obrigatório e deve conter um formato de texto válido.                                         |
| OBE025     | O campo state é obrigatório e deve ser uma estado valido.                                                    |
| OBE026     | O campo businessEmail é obrigatório e deve ser um email válido.                                              |
| OBE027     | O campo businessName é obrigatório e deve conter um formato de texto válido.                                 |
| OBE028     | O campo tradingName é obrigatório deve respeitar o limite de caracteres e conter um formato de texto válido. |
| OBE029     | O campo owner.documentNumber é obrigatório e deve ser um CPF ou CNPJ válido.                                 |
| OBE030     | O campo owner.name é obrigatório e deve ser completo.                                                        |
| OBE031     | O campo owner.email é obrigatório e deve ser um email válido.                                                |
| OBE032     | O campo owner.address é obrigatório.                                                                         |
| OBE033     | Cadastro não permitido para menores de idade.                                                                |
| OBE034     | Formato do JSON esta fora do padrão. Verifique a documentação.                                               |
| OBE035     | Não foi possivel realizar essa operação. Tente novamente mais tarde.                                         |
| OBE036     | CompanyType inválido.                                                                                        |
| OBE037     | O campo Owners deve conter um array de no mínimo 1 e máximo 10.                                              |
| OBE038     | Owners não podem ser duplicados.                                                                             |
| OBE039     | O campo businessAddress é obrigatório.                                                                       |
| OBE040     | O campo ownerType é obrigatório e deve conter um valor válido.                                               |
| OBE041     | BackgroundCheck não encontrado ou com status diferente de pendente.                                          |
| OBE042     | Erro ao atualizar backgroundCheck.                                                                           |
| OBE043     | Documentscopy  não encontrado ou com status diferente de pendente.                                           |
| OBE044     | Erro ao atualizar documentscopy.                                                                             |
| OBE045     | Status da proposta inexistente verifique a documentação por favor.                                           |
| OBE046     | Data inválida.                                                                                               |
| OBE047     | Limite inserido inválido. Os campos limit ou limitPerPage devem ter valores entre 1 e 200.                   |
| OBE048     | O campo documentNumber deve ser um CPF ou CNPJ válido.                                                       |
| OBE049     | Não foi encontrada nenhuma proposta referente aos dados informados.                                          |
| OBE050     | A data inicial não pode ser maior que a data final.                                                          |
| OBE051     | Ao não enviar o proposalId os campos data inicial e a data final são obrigatórios.                           |
| OBE052     | O intervalo de dias entre a data inicial e a data final não deve ser maior que {0} dias.                     |
| OBE053     | O campo ownerType deve conter pelo menos um sócio ou representante                                           |
| OBE054     | ProposalId e clientCode não enviados. Ao menos um desses parametros deve ser enviado.                        |
| OBE055     | Não foram encontrados arquivos para o proposalId ou clientCode informado(s).                                 |
| OBE056     | Não foram encontradas documentoscopias referentes ao proposalId ou clientCode enviado.                       |
| OBE057     | Ocorreu um erro ao buscar documentos.                                                                        |
| OBE058     | ClientType inválido.                                                                                         |
| OBE059     | SourceType inválido.                                                                                         |
| OBE060     | O campo clientId é obrigatório.                                                                              |
| OBE061     | Source inválido.                                                                                             |
| OBE062     | ClientCode já vinculado a outra proposta, esse campo deve ser único por proposta.                            |
| OBE063     | Não foram encontrados registros para a sua requisição.                                                       |
| OBE064     | Já existe uma proposta em aberto para esse documentNumber.                                                   |
| OBE065     | O campo dateFrom é obrigatório.                                                                              |
| OBE066     | O campo dateTo é obrigatório.                                                                                |
| OBE067     | O campo partner.partnerName deve conter um valor válido.                                                     |
| OBE068     | O campo partner.parameter deve ser preenchido.                                                               |
| OBE069     | Ao enviar os campos partner.parameters, o campo partner.partnerName deve ser obrigatório.                    |
| OBE070     | Não foram encontrados dados, pois o usuário ainda não iniciou a jornada webview. Tente novamente mais tarde. |
| OBE071     | Ocorreu um erro ao consultar parceiro. Favor tentar novamente mais tarde.                                    |
| OBE080     | O campo type de files deve conter um valor válido.                                                           |
| OIE999     | Ocorreu um erro interno durante a chamada da api                                                             |
| CBE669     | Cliente com restrição no BC Protege+                                                                         |
| CBE246     | Não foi possível processar recuperar o Tenant com os parametros informados.                                  |

# Customização

<Callout icon="📚" theme="default">
  ### Customização da jornada

  A jornada disponibilizada via URL é passível de customização, permitindo incluir cores e a logo da sua empresa, para solicitar a customização é necessário abrir um chamado no suporte e enviar o código hexadecimal das cores, dividido por cor primária e cor secundária, Favicon e Logo da empresa (Nos envie a logo sem cores de fundo). (Não é necessário enviar em dimensões específicas pois o ajuste é feito automaticamente).<br />O subdomínio também é passível de alteração, basta informar o nome que desejam para ficar na URL **valor informado**.cadastro.io
</Callout>

<Callout icon="❗️" theme="error">
  ### Motivos de bloqueio Webview

  Para evitar bloqueios de IP no Webview, evite os seguintes casos:<br />• Utilização de Emuladores;<br />• Utilização de VPN;<br />• Utilização de IP de países não condizentes com sua localização;
</Callout>

# Considerações finais

<Callout icon="✅" theme="okay">
  ### Sobre os Fluxos

  Os Endpoints e Webhooks dos fluxos são os mesmos, o que muda são as ordens dos webhooks conforme ordenação descrita na documentação.

  Os fluxos são parametrizáveis, ou seja, caso seja necessário alterar do Fluxo 1 para o Fluxo 2 será necessário abrir um chamado para o suporte.

  **Não utilize emuladores para realizar a jornada do Webview, caso utilize será bloqueado**
</Callout>

<Callout icon="🚧" theme="warn">
  ### Requisição individual por proposta

  Atualmente não é possível criar diversas contas em uma única requisição, em casos desses é necessário enviar em **diferentes requisições**.

  **Quantidade de propostas por documentos**<br />Temos uma validação onde é permitido criar 1 proposta por documento a cada 5 minutos. Logo não é possível criar várias propostas para o mesmo documento enquanto a anterior não estiver finalizada (aprovada ou negada) e não tenha passado os 5 minutos.

  Não temos um limitante de aberturas de propostas, apenas se atente todas as regras e orientações descritas nessa documentação.

  Não é possível cancelar uma proposta aberta, sendo necessário concluir a jornada de KYC (aprovado ou negado) para conseguir abrir uma nova proposta para o mesmo documento, dentro do período de 5 minutos.
</Callout>

<Callout icon="📘" theme="info">
  ### Resultado das propostas

  Em produção, o resultado das análises, tanto da PF quanto da PJ, pode levar até 48horas úteis para ser concluída.
</Callout>

<Callout icon="❗️" theme="error">
  ### Envio categorizado corretamente

  Importante realizar o envio correto do tipo de empresa PJ, caso seja realizado um envio incorreto. Exemplo: deveria ser enviado MEI porém foi enviado PJ, isso pode fazer com que ocorra uma reprovação e também será cobrado o valor do tipo enviado.

  Para casos divergentes de Natureza Jurídica "Empresário Individual" enviar como tipo de empresa PJ.
</Callout>

<Callout icon="❗️" theme="error">
  ### Validade das Propostas

  Propostas com mais de 30 dias em aberto, que estão pendentes de envio de documentação, serão reprovadas com o seguinte motivo: "Proposta reprovada por decurso de prazo, em razão da não apresentação da documentação necessária no período estipulado."<br />\*\*OBS:\*\*Essas propostas reprovadas serão cobradas.

  Para identificar as propostas em aberto basta realizar um GET no [Endpoint](https://developers.celcoin.com.br/docs/utilizacao-do-onboarding-celcoin#consultar-propostas) de consultar proposta e verificar as que estão no Status Pendente Documentoscopia.
</Callout>

<Callout icon="☑️" theme="default">
  ### Validações realizadas

  **Background Check**<br />• Consulta de CPF/CNPJ na Receita Federal;<br />• Ações judiciais da Empresa/Pessoa (Processos criminais, trabalhistas, etc);<br />• Lista de sanções (Nacional: COAF, CEAF, CNEP, MTE, PPE, TSE, CEIS, CEPIM, TCU, Conselho nacional de Justiça. Internacional: EU, FBI, GOV UK, INTERPOL, OFAC, UNSC.);<br />• Exposição e perfil na mídia;<br />• Lista PEP;

  **Documentoscopia**<br />• OCR do documento enviado (Validação dos dados enviados x encontrados na receita x dados do documento enviado);<br />• Pericia Documental/Documentoscopia;<br />• Facematch (Validação entre Selfie x Foto documento físico);<br />• Liveness (Garantia de prova de vida);<br />• Análise do contrato social e procuração de poderes (Validação da autenticidade do documento e QSA);
</Callout>

<Callout icon="👍" theme="okay">
  ### Importante

  **Documentação**

  PF: Aceitamos documentos físicos originais RG, CNH e RNE **(não aceitamos cópias autenticadas)** e no caso de CNH Digital é imprescindível que tenha o QR Code. **(Não aceitamos RG Digital).**<br />PJ: Contrato Social ou em casos de clientes MEI, o Certificado da Condição do Microempreendedor Individual (CCMEI) + documentação PF do sócio.<br />**Não aceitamos documentos com tamanho maior que 10MB**

  **Casos PJ**

  Para contas de Pessoa Jurídica, deverá ser informado no primeiro array o sócio responsável pelo envio da documentação.

  **Webhooks**

  Para cadastrar os webhooks basta acessar a seguinte documentação [aqui](https://developers.celcoin.com.br/docs/gerenciamento-de-webhook)

  Em caso de não receber o webhook é possível realizar uma chamada para receber o reenvio, para mais informações acesse a documentação de reenvio clicando [aqui.](https://developers.celcoin.com.br/docs/reenvio-de-webhook#3-reenviar-webhok)

  **Motivos de Reprovação**

  O campo RejectedReason nos Webhooks quando a proposta é reprovada, informará o motivo da reprovação.

  | RejectedReason                                                                                                          | Descrição                                                                                                                                                    |
  | :---------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | Inconsistência nos dados de biometria facial.                                                                           | Faz uma verificação anti-spoofing na selfie enviada. O que aciona essa regra é ser detectado o spoofing.                                                     |
  | Não identificamos um documento válido nas imagens enviadas.                                                             | Verifica se nas imagens enviadas existe um documento.                                                                                                        |
  | As imagens enviadas não estão legíveis.                                                                                 | Verifica se as imagens enviadas são legíveis.                                                                                                                |
  | Documento informado como tipo CNH porém não foi identificado como CNH.                                                  | Verifica se o documento enviado é uma CNH.                                                                                                                   |
  | Não possui CPF identificado no documento ou informado manualmente.                                                      | Verifica se foi encontrado CPF no documento ou informado manualmente.                                                                                        |
  | Foto de selfie não enviada.                                                                                             | Verifica o envio de selfie.                                                                                                                                  |
  | Cliente reprovado por Facematch, divergência entre Selfie x Foto documento enviado.                                     | Verifica a similaridade entre documento e selfie.                                                                                                            |
  | Não foi possível consultar o CPF na Receita Federal.                                                                    | Verifica se foi possível consultar o CPF na Receita Federal.                                                                                                 |
  | CPF irregular.                                                                                                          | Verifica a regularidade do CPF.                                                                                                                              |
  | O nome na execução (parâmetro/OCR) não condiz com o cadastro da Receita Federal.                                        | Verifica se o nome encontrado na execução (parâmetro/OCR) é o mesmo da base de dados oficial.                                                                |
  | A pessoa está em situação de óbito.                                                                                     | Verifica se o portador do CPF se encontra em situação de óbito.                                                                                              |
  | Documento reprovado na perícia documental.                                                                              | Verifica se a documentoscopia está disponível.                                                                                                               |
  | Documento reprovado na perícia documental.                                                                              | Verifica se o documento foi aprovado na perícia documental.                                                                                                  |
  | Dados informados divergentes dos encontrados no documento.                                                              | Verifica a divergência entre informações coletadas e informadas manualmente.                                                                                 |
  | Restrição identificada em análise de histórico de processos.                                                            | Verifica se o CPF/CNPJ está vinculado a processos.                                                                                                           |
  | Restrição identificada em análise de histórico de processos.                                                            | Verifica se o CPF/CNPJ está vinculado a processos como réu.                                                                                                  |
  | Restrição identificada em análise de histórico de processos.                                                            | Verifica se o CPF/CNPJ está vinculado a processos criminais.                                                                                                 |
  | Perfil não aderente à política de riscos regulatórios                                                                   | Verifica se o portador do CPF possui exposição na mídia.                                                                                                     |
  | Portador do documento é menor de idade.                                                                                 | Verifica se o portador do CPF é maior de idade (18 anos).                                                                                                    |
  | Não foram encontrados dados do CPF informado.                                                                           | Verifica se a fonte dados básicos está retornando valores.                                                                                                   |
  | Perfil não aderente à política de riscos regulatórios                                                                   | Verifica se o portador do CPF ou CNPJ possui exposição política.                                                                                             |
  | Não foi possível consultar o CPF na Receita Federal.                                                                    | Verifica se foi possível consultar o CPF na Receita Federal.                                                                                                 |
  | Cliente reprovado por Facematch, idade estimada do portador do documento x Selfie capturada.                            | Verifica se a idade do portador do CPF corresponde com a idade estimada identificada na selfie.                                                              |
  | Perfil não aderente à política de riscos regulatórios                                                                   | Verifica se não foram encontradas sanções em listas restritivas.                                                                                             |
  | Data de emissão do documento inválida.                                                                                  | Verifica se a data de emissão do documento é válida.                                                                                                         |
  | Número de CPF inválido, ilegível ou não informado.                                                                      | Verifica se o número de CPF é válido.                                                                                                                        |
  | CNPJ informado inválido.                                                                                                | Verifica se o número de CNPJ é válido.                                                                                                                       |
  | Número de CNPJ inautêntico.                                                                                             | Verifica se o número de CNPJ é autêntico.                                                                                                                    |
  | Número de RG inválido ou ilegível.                                                                                      | Verifica se o número do RG é válido.                                                                                                                         |
  | CPF do portador informado divergente do QSA da empresa.                                                                 | Verifica se o portador do CPF é representante legal da empresa.                                                                                              |
  | Dados divergentes. Verifique se os documentos e os dados enviados são do mesmo CPF.                                     | Verifica a divergência entre os dados do documento e informados manualmente.                                                                                 |
  | Não recebemos uma documentação válida.                                                                                  | Verifica se possui documentação.                                                                                                                             |
  | Os dados informados nos parâmetros diferem dos dados lidos no OCR.                                                      | Verifica se os dados informados nos parâmetros são iguais aos lidos pelo OCR.                                                                                |
  | Documento reprovado na perícia documental.                                                                              | Verifica se o documento foi dado como autêntico na biometria e/ou documentoscopia. O que invalida a regra é reprovarmos o documento por ser inautêntico.     |
  | Foram encontradas divergências entre os dados da empresa e dos sócios informados.                                       | Verifica se os dados PF condizem com os dados do quadro societário da empresa.                                                                               |
  | CPF do portador informado divergente do QSA da empresa.                                                                 | Verifica se o QSA informado em attributes é igual ao obtido a partir da consulta ao Serasa.                                                                  |
  | O CPF não está regular na Receita Federal.                                                                              | Verifica a regularidade do CPF.                                                                                                                              |
  | A pessoa está em situação de óbito.                                                                                     | Verifica se o portador do CPF se encontra em situação de óbito.                                                                                              |
  | O documento enviado é um passaporte.                                                                                    | Verifica se o documento enviado não é um passaporte.                                                                                                         |
  | CPF consta como pendente de regularização junto à Receita Federal.                                                      | Verifica se o CPF está com situação pendente de regularização.                                                                                               |
  | CPF consta como nulo junto à Receita Federal.                                                                           | Verifica se o CPF consta como nulo junto à Receita Federal.                                                                                                  |
  | CPF não encontrado na base de dados da Receita Federal.                                                                 | Verifica se encontra o CPF na Receita Federal.                                                                                                               |
  | Data de validade da CNH inválida ou ilegível.                                                                           | Verifica se a data de validade da CNH não está expirada.                                                                                                     |
  | CNPJ inativo ou baixado.                                                                                                | Verifica se o CNPJ está ativo na Receita Federal.                                                                                                            |
  | Número da CNH inválido.                                                                                                 | Verifica se o número do registro da CNH é válido.                                                                                                            |
  | Órgão emissor do RG inválido ou ilegível.                                                                               | Verifica se o órgão emissor do RG é válido.                                                                                                                  |
  | UF do órgão emissor inválida ou ilegível.                                                                               | Verifica se a UF do órgão emissor do documento é válida.                                                                                                     |
  | Dados divergentes ou inexistentes. Verifique se os documentos e os dados enviados são do mesmo CPF.                     | Verifica inexistência ou divergência entre os dados do documento e informados manualmente.                                                                   |
  | Documentação enviada inválida.                                                                                          | Verifica se possui documentação válida.                                                                                                                      |
  | Empresa recém constituída                                                                                               | Verifica se o tempo de vida da empresa é maior que o mínimo exigido.                                                                                         |
  | Inconformidade identificada nos sócios.                                                                                 | Verifica se possui PEPs ou sanções nos sócios de uma empresa.                                                                                                |
  | Empresa recém constituída                                                                                               | Verifica se o tempo de vida de uma empresa de SC é maior que 6 meses.                                                                                        |
  | Selfie enviada com baixa qualidade.                                                                                     | Verifica se foi retornado algum erro relacionado ao processamento da selfie.                                                                                 |
  | Titular falecido.                                                                                                       | Verifica se o CPF é de titular falecido.                                                                                                                     |
  | CPF consta como cancelado junto à Receita Federal.                                                                      | Verifica se o CPF consta como cancelado junto à Receita Federal.                                                                                             |
  | CPF consta como suspenso junto à Receita Federal.                                                                       | Verifica se o CPF consta como suspenso junto à Receita Federal.                                                                                              |
  | Portador do documento está fora do intervalo de idade permitido.                                                        | Verifica se o portador do CPF possui idade dentro dos intervalos configurados.                                                                               |
  | A empresa consultada não possui sócios.                                                                                 | Verifica o quadro societário divulgado pela Receita Federal                                                                                                  |
  | Nome informado no parâmetro divergente dos dados encontrados em fontes oficiais.                                        | Verifica a similaridade entre a união do primeiro e último nome enviado nos parâmetros em comparação com a união do primeiro nome e cada sobrenome da fonte. |
  | Não identificamos a face da pessoa em bases de informações oficiais.                                                    | Verifica se foi possível validar a face da pessoa com base em informações oficiais.                                                                          |
  | Documento é uma carteira de trabalho.                                                                                   | Verifica se o documento não é uma carteira de trabalho.                                                                                                      |
  | Não identificamos a face da pessoa em bases de dados oficiais.                                                          | Verifica se foi possível encontrar a face da pessoa em bases de dados oficiais.                                                                              |
  | Pessoa não alfabetizada.                                                                                                | Verifica se a pessoa é alfabetizada.                                                                                                                         |
  | Idade inferior a 16 anos.                                                                                               | Verifica se o portador do CPF possui idade superior a 16 anos.                                                                                               |
  | O RG enviado não possui cpf.                                                                                            | Verifica se o RG possui um cpf.                                                                                                                              |
  | Documento não aceito pela política de compliance.                                                                       | Identifica se o documento não é do tipo outros.                                                                                                              |
  | O passaporte está fora da validade.                                                                                     | Verifica se o passaporte apresentado está dentro da validade.                                                                                                |
  | O RG foi emitido a mais de 25 anos.                                                                                     | Verifica se o RG foi emitido a menos de 25 anos.                                                                                                             |
  | Identificamos ao menos um CNAE que não aceitamos.                                                                       | A empresa possui ao menos um CNAE válido.                                                                                                                    |
  | Transação não autorizada.                                                                                               | Motivo de rejeição para casos que forem testes mockados.                                                                                                     |
  | O documento foi emitido a mais de 10 anos.                                                                              | Faz uma verificação se o documento enviado foi emitido há mais de 10 anos.                                                                                   |
  | Natureza Legal divergente da informada.                                                                                 | Faz uma verificação se de fato a empresa informada é MEI/ME.                                                                                                 |
  | Proposta reprovada por decurso de prazo, em razão da não apresentação da documentação necessária no período estipulado. | Proposta reprovada por decurso de prazo, em razão da não apresentação da documentação necessária no período estipulado.                                      |
  | Documento enviado não corresponde a um passaporte.                                                                      | Verifica se o documento enviado é um passaporte.                                                                                                             |

  **Os motivos de reprovação não são fixos e podem surgir novos motivos ou alteração na descrição dos mesmos.**

  **Envio categorizado corretamente**

  É importante realizar o envio correto do tipo de empresa PJ, caso seja realizado um envio incorreto. Exemplo: deveria ser enviado MEI porém foi enviado PJ, isso pode fazer com que ocorra uma reprovação e também será cobrado o valor do tipo enviado.

  **ClientCode e ProposalId**

  ClientCode é um identificador único por transação criado por você.<br />ProposalId é um identificador único que geramos após a criação da proposta, esse identificador será utilizado para realizar consultas.**Recomendamos você guardar esses campos.**

  **Consultar Propostas no Painel do Cliente**

  É possível consultar os status das Propostas no Painel do Cliente através da opção **Consultar Onboarding.**

  **Boas Práticas**

  Evite a criação de "polling" com períodos curtos nos Endpoints de consulta, o fluxo de onboarding é todo via webhook orientando sempre as alterações de status e em qual etapa do processo a proposta se encontra.
</Callout>

***

# Homologação

As instruções para realizar a homologação deste produto estão centralizadas neste [link](https://developers.celcoin.com.br/docs/homologacao-baas)