Cadastre clientes, envie documentação, complete a biometria e receba ofertas de crédito.
Dois processos acontecem em paralelo: a análise de crédito (começa automaticamente no cadastro) e a verificação KYC (o cliente completa no seu próprio ritmo).
| Status | Descrição |
|---|---|
creating | Cadastro recebido, enriquecimento de sócios em andamento |
pending_kyc | Pronto para enviar documentação e biometria |
under_review | Documentos enviados, análise em andamento |
active | Verificado e elegível para ofertas de crédito |
denied | Bloqueado permanentemente |
Cadastre a empresa na Dinie. O campo external_id é a referência interna do seu sistema que você usará para identificar o cliente.
const customer = await client.customers.create({
externalId: "partner-ref-123", // Seu ID interno
cpf: "123.456.789-00", // CPF do sócio
email: "joao@example.com",
phone: "+5511999999999",
cnpj: "12.345.678/0001-90",
});
console.log(customer.status); // "creating"
console.log(customer.kyc); // Itens de verificação pendentesInfo: Se você criar um cliente com o mesmo CPF/CNPJ e
external_id, a API retorna o cliente existente (idempotente). O erro409ocorre apenas quando oexternal_iddifere para o mesmo CPF/CNPJ.
Envie os documentos listados no array customer.kyc logo após o cadastro para acelerar a análise:
import fs from "fs";
await client.customers.uploadKycAttachment(customer.id, {
requirementId: "company_document",
evidenceType: "ccmei",
attachmentType: "file",
file: fs.createReadStream("/path/to/ccmei.pdf"),
});
await client.customers.uploadKycAttachment(customer.id, {
requirementId: "identity_12345678900",
evidenceType: "cnh",
attachmentType: "front",
file: fs.createReadStream("/path/to/cnh-frente.jpg"),
});Formatos suportados: PDF, JPEG, PNG. Envie apenas os tipos listados no array kyc -- tipos não reconhecidos retornam erro 422.
Info: A selfie não pode ser enviada pela API. Ela é capturada pelo próprio cliente durante a sessão de biometria. Consulte o guia de Requisitos de KYC para mais detalhes sobre o fluxo completo.
A análise de crédito começa automaticamente no cadastro. Quando a Dinie gera uma oferta, você recebe o webhook credit_offer.available:
app.post("/webhooks/dinie", express.raw({ type: "application/json" }), (req, res) => {
const event = client.webhooks.unwrap(req.body.toString(), req.headers);
if (event.type === "credit_offer.available") {
const externalId = event.data.external_id;
const amount = event.data.approved_amount;
notifyCustomer(externalId, `Oferta de R$ ${amount} disponível`);
}
res.sendStatus(200);
});Quando o cliente estiver com status active e tiver uma oferta disponível, ele está pronto para contratar. Siga para o guia de Simulação e Contratação.