KYC (Know Your Costumer)

O processo de KYC é obrigatório para todas as operações de crédito da plataforma e tem como objetivo validar a identidade e a elegibilidade da empresa antes do desembolso.

A plataforma oferece dois modelos de KYC:

ModeloDescrição
EmbarcadoO KYC é executado automaticamente pela Celcoin no momento da criação da CCB. Nenhuma ação adicional é necessária.
ExternoO parceiro executa o KYC no próprio ambiente e encaminha uma hash de evidência para a plataforma antes da criação da CCB.

Modelo 1 — KYC Embarcado

O KYC embarcado está integrado à esteira de crédito da Celcoin. Ao criar uma operação de crédito (CCB), o processo de verificação é iniciado automaticamente para a empresa vinculada.

O status do KYC é refletido na esteira via webhook pelo evento APPLICATION_STATUS_UPDATED:

  • KYC_PROCESSING — verificação em andamento
  • CANCELED com status_description: "KYC_REJECTED" — empresa reprovada

Nenhuma chamada adicional é necessária para este modelo.

Antecipação da consulta

É possível antecipar o KYC de uma empresa antes da criação da CCB. Isso permite identificar eventuais reprovações mais cedo no fluxo, evitando que a operação seja criada para uma empresa inelegível.

POST /banking/originator/business/background-check

Body

CampoTipoObrigatórioDescrição
taxpayer_idstringSimCNPJ da empresa
namestringSimRazão social da empresa

Exemplo

curl --request POST \
  'https://platform.flowfinance.com.br/banking/originator/business/background-check' \
  --header 'Authorization: Bearer <seu_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "taxpayer_id": "00000000000100",
    "name": "Empresa Teste LTDA"
  }'

Modelo 2 — KYC Externo

Neste modelo, o parceiro é responsável por executar o KYC no próprio ambiente utilizando o provedor de sua preferência. Após a execução, ele deve encaminhar para a plataforma uma hash de evidência que comprove a realização do processo.

⚠️

A hash de evidência deve ser enviada antes da criação da CCB. Caso contrário, a operação ficará travada na esteira aguardando a validação do KYC.

A hash é gerada livremente pelo parceiro — não há um formato específico exigido pela plataforma. O importante é que ela identifique unicamente a evidência de KYC executada.

POST /banking/originator/business/background-check/external

Body

CampoTipoObrigatórioDescrição
taxpayer_idstringSimCNPJ da empresa
namestringSimRazão social da empresa
kyc_validation_hashstringSimHash gerada pelo parceiro como evidência da execução do KYC

Exemplo

curl --request POST \
  'https://platform.flowfinance.com.br/banking/originator/business/background-check/external' \
  --header 'Authorization: Bearer <seu_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "taxpayer_id": "00000000000100",
    "name": "Empresa Teste LTDA",
    "kyc_validation_hash": "hash-gerada-pelo-parceiro"
  }'

Comparativo entre os modelos

KYC EmbarcadoKYC Externo
Quem executaCelcoinParceiro
Quando ocorreAutomaticamente na criação da CCBAntes da criação da CCB
Ação necessáriaNenhuma (ou antecipação opcional)Envio da hash de evidência obrigatório
Impacto se não executadoNão se aplicaOperação trava na esteira

Observações

O modelo de KYC utilizado (embarcado ou externo) é definido na configuração do produto junto à Celcoin. Em caso de dúvidas sobre qual modelo está habilitado para o seu produto, consulte seu Gerente de Conta.




Motivos e Tratamento das Reprovações


Quando uma CCB é cancelada em decorrência da análise de KYC, o motivo é disponibilizado no webhook da CCB, seguindo uma nomenclatura padronizada pela Celcoin.

O retorno segue o formato: KYC_DENIED-{REASON}

Quando houver mais de um motivo, os enums serão separados por hífen (-).

Exemplos:

KYC_DENIED-CPF_IRREGULAR

KYC_DENIED-CPF_IRREGULAR-CPF_HOLDER_DECEASED

A alteração é exclusiva para cancelamentos decorrentes da análise de KYC. Os demais motivos de cancelamento da CCB permanecem inalterados.


Motivos e tratamentos

EnumSignificadoQuando é retornadoComo tratar
INTERNAL_POLICY_RESTRICTIONRestrição relacionada a sanções ou listas restritivasA análise identifica uma condição relacionada a sanções ou listas restritivas que impede a aprovação do KYC.Validar os dados do titular. Caso exista divergência, deve ser regularizado antes de uma nova análise.
CPF_HOLDER_DECEASEDCPF com registro de óbitoÉ identificado registro ou indicativo de óbito associado ao titular do CPF.Validar os dados do titular. Caso exista divergência, deve ser regularizado antes de uma nova análise.
CPF_IRREGULARCPF irregular na Receita FederalO CPF apresenta situação cadastral diferente de regular na Receita Federal.O titular deve regularizar a situação cadastral do CPF antes de uma nova análise.
CPF_VALIDATION_FAILEDFalha na consulta do CPFNão foi possível concluir a consulta necessária para validação do CPF.Validar os dados do titular. Caso exista divergência, deve ser regularizada antes de uma nova análise.
INSUFFICIENT_DATADados insuficientes para análiseNão existem dados suficientes para concluir a análise de KYC.Validar os dados informados e realizar uma nova análise após a correção.
UNMAPPED_RESTRICTIONMotivo da restrição não identificadoA análise identifica uma restrição que ainda não possui um motivo específico entre os retornos padronizados.Iremos tratar internamente. Em caso de dúvidas entre em contato com a Celcoin para coletar mais detalhes.
PROVIDER_UNAVAILABLE_RETRY_EXHAUSTEDTentativas de processamento esgotadasNão foi possível concluir a análise mesmo após as tentativas automáticas realizadas pela Celcoin.Validar os dados informados e tentar realizar uma nova análise.
PROVIDER_CONFIGURATION_ERRORErro na configuração da análiseUma inconsistência na configuração utilizada no processo impede a conclusão da análise.Iremos tratar internamente. Uma nova tentativa deve ocorrer somente após a correção da configuração.

Os motivos apresentados consolidam os cenários atualmente mapeados pela Celcoin.

Importante: a integração deve estar preparada para receber mais de um motivo no mesmo retorno. Quando isso ocorrer, os motivos serão concatenados após KYC_DENIED e separados por hífen (-). Motivos ainda não mapeados serão identificados como UNMAPPED_RESTRICTION.