Pular para o conteúdo
Última atualização

Cadastro e Ofertas

Cadastre clientes, envie documentação, complete a biometria e receba ofertas de crédito.

Visão Geral do Fluxo

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

Ciclo de vida do cliente

StatusDescrição
creatingCadastro recebido, enriquecimento de sócios em andamento
pending_kycPronto para enviar documentação e biometria
under_reviewDocumentos enviados, análise em andamento
activeVerificado e elegível para ofertas de crédito
deniedBloqueado permanentemente

Criar um Cliente

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 pendentes

Info: Se você criar um cliente com o mesmo CPF/CNPJ e external_id, a API retorna o cliente existente (idempotente). O erro 409 ocorre apenas quando o external_id difere para o mesmo CPF/CNPJ.

Enviar Documentos

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.

Receber a Oferta de Crédito

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);
});

Próximo Passo

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.