> For the complete documentation index, see [llms.txt](https://docs.vemprojuca.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vemprojuca.com/emprestimos/credito-do-trabalhador-clt-api-v3.md).

# Crédito do Trabalhador (CLT) - API V3

## Funcionamento geral da API

A API é separada em 3 simples etapas:

1. **Consulta de Elegibilidade e Margem**: Endpoint vai verificar se o usuário está dentro dos critérios de elegibilidade e se tem margem disponível.
2. **Personalização:** Endpoint para personalizar a oferta do usuário
3. **Envio da pré oferta:** Endpoint que gera o link de pré-oferta de contrato&#x20;

O cliente acessando o link de pré-oferta irá confirmar seu pedido e receber o link para fluxo de KYC e assinatura de contrato.

O retorno e acompanhamento do status da proposta serão enviados por webhook e por relatórios/dashboards.

&#x20;\
Basta pedir para o seu contato comercial disponibilizar isso.

### Criando contato e verificando margem disponível

**Descrição**

Envio de dados básicos do cliente para consulta de elegibilidade e margem.

**Importante**

{% hint style="info" %}
Antes de chamar o endpoint de contato,  o cliente deverá autorizar a consulta de margem através de opt in do seguinte termo:

Termo de Autorização

Eu, portador do CPF XXX.XXX.XXX-XX, autorizo o MTE/DATAPREV a disponibilizar as informações abaixo indicadas para apoiar a contratação/simulação de empréstimo consignado, a fim de subsidiar a proposta pelos bancos BMP SOCIEDADE DE CRÉDITO DIRETO S.A . e UY3 SOCIEDADE DE CRÉDITO DIRETO S.A. (doravante denominados simplesmente como “Instituições Financeiras”).

Informações a serem disponibilizadas:

• CPF

• Matrícula

&#x20;• Inscrição do empregador (código e descrição)

• Número da inscrição do empregador

• Nome

• Sexo (código e descrição)

• Data de nascimento

• Código da categoria do trabalhador

• Elegibilidade (sim/não)

• Motivo de inelegibilidade (caso aplicável)

&#x20;• Valor total dos vencimentos

&#x20;• Valor base da margem

• Valor da margem disponível

&#x20;• Data de admissão

• Data de desligamento

• Código do motivo do desligamento

&#x20;• Pessoa exposta politicamente (código e descrição)

• Quantidade de empréstimos ativos ou suspensos

• Alertas de afastamento, aviso prévio e desligamento

• Informações sobre empréstimos existentes que foram informados previamente pela instituição financeira, quais sejam:

• empréstimo com descontos em folha de pagamento, com parcelas vincendas;

• empréstimo não consignado, sem garantia (créditos pessoais, também chamados de empréstimos pessoais), com parcelas vincendas.

&#x20;

Este termo autoriza estas Instituições Financeiras a consultar as informações acima descritas durante um período de 30 dias. Este pedido poderá ser efetuado pelas Instituições Financeiras em até 45 dias após o aceite deste documento.

Declaro, para os devidos fins, que sou o legítimo titular do CPF informado, não estando utilizando dados de terceiros, assumindo integral responsabilidade civil e penal por quaisquer prejuízos ou implicações legais decorrentes do uso indevido de informações.&#x20;

Este termo também confirma que estou de acordo com os Termos de Uso, Política de Privacidade e Condições de Assinatura de Contratos do Juca, disponíveis em[ https://vemprojuca.com/termos/](https://vemprojuca.com/termos/).

<br>
{% endhint %}

*Exemplo de aplicação:*

<figure><img src="/files/3BOMlS7vGRDnmob8ccTF" alt=""><figcaption></figcaption></figure>

#### Endpoint: /external/clt/v3/contato/sincrono

Esse endpoint começa o processo de simulação do cliente.&#x20;

ip e useragent são exigências da Dataprev como evidências da autorização do cliente para consulta de margem

{% hint style="info" %}

A data de aniversário permitida é entre 18 e 55 anos.

```json
{
    "celular": "21998886471",
    "cpf": "06999315256",
    "datanascimento": "11/06/1993",
    "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
    "ip":"189.60.173.44",
    "acceptMessage": true,
    "acceptTerms": true,
}
```

{% endhint %}

{% tabs %}
{% tab title="200 - Response" %}
{% hint style="info" %}
1 - Os valores estão em reais

2- uuid , na segunda linha do json, é o id que deverá ser armazenado e referenciado nos outros endpoints.

3- margem\_max é o valor máximo de parcela permitido para o cliente

4- max\_value é o valor máximo liquido que o cliente pode receber em conta

5 - max\_installments é o número máximo de parcelas permitido para o cliente

6 - last\_simulation é uma primeira simulação que fazemos mostrando o máximo que esse cliente poderia receber

7- mes\_primeira\_parcela é o mês competência que será cobrado a primeira parcela. Exemplo, se estiver 01/2026, significa que o salário referente ao trabalho realizado em janeiro de 2026 será abatido para pagar a primeira parcela. O dia vai depender se o cliente recebe no final de janeiro ou inicio de fevereiro.
{% endhint %}

```json
{
    "tax_id": "XXXXXX",
    "uuid": "8cc2ff48-2848-4540-83a4-97ad81778433",
    "margem_max": 2748,
    "max_installments": 24,
    "max_value": 25761.639859317325,
    "last_simulation": {
        "valor": 2748.0,
        "simulacoes": [
            {
                "resumo_financeiro": {
                    "valor_financiado": 31546.734575760478,
                    "parcelas": 24,
                    "valor_parcela": 2748.0,
                    "iof_total": 1053.0845300790822,
                    "seguro": 4732.010186364071,
                    "valor_liquido_emprestimo": 25761.639859317325,
                    "juros_mes": "5.99%",
                    "juros_ano": "100.99%",
                    "juros_dia_360": "0.194103%",
                    "data_hoje": "2025-12-10",
                    "dias_para_parcela_0": 48,
                    "saldo_parcela_0": 34520.27484162755,
                    "mes_primeira_parcela": "01/2026"
                }
            }
        ]
    }
}
```

{% endtab %}

{% tab title="400 - Response" %}

```json
{
    "status": "Error",
    "message": "Infelizmente não encontramos oferta disponível",
    "error": "Infelizmente não encontramos oferta disponível",
    "tax_id": "1",
    "uuid": "84605f5d-9429-4acf-8735-a3dedcd0b936"
}
```

{% endtab %}
{% endtabs %}

### Personalizar simulação

#### Endpoint: /external/calculadora/clt

Esse endpoint altera os parâmetros da simulação do cliente.&#x20;

{% hint style="info" %}
1 - É extremamente importante que você armazene os valores  de "margem\_max", "max\_installments" e "max\_value " e não permita o cliente simular usando valores acima disso.

2- Use **"value"** quando você quiser simular o **valor que o cliente deseja receber na conta**.

3- Use **"pmt"** quando você quiser simular o **valor que o cliente deseja pagar por parcela**.

4 - parcelas disponíveis: 12,18,24,30,36

{% endhint %}

{% tabs %}
{% tab title="POST" %}

```json
 {
    "valor": 1200,
    "parcelas": 18,
    "tipo": "pmt", // pmt or value
    "uuid": "8cc2ff48-2848-4540-83a4-97ad81778433"
}
```

{% endtab %}

{% tab title="200 - Response" %}
{% hint style="info" %}
1 - Os valores estão em reais

2- valor\_liquido\_emprestimo é o que o cliente receberá em conta

{% endhint %}

```json
{
    "valor": 1200.0,
    "simulacoes": [
        {
            "resumo_financeiro": {
                "valor_financiado": 11882.831510615111,
                "parcelas": 18,
                "valor_parcela": 1200.0,
                "iof_total": 372.43149765286125,
                "seguro": 1782.4247265922666,
                "valor_liquido_emprestimo": 9727.975286369985,
                "juros_mes": "5.99%",
                "juros_ano": "100.99%",
                "juros_dia_360": "0.194103%",
                "data_hoje": "2025-12-10",
                "dias_para_parcela_0": 48,
                "saldo_parcela_0": 13002.886516133105,
                "mes_primeira_parcela": "01/2026"
            }
        }
    ]
}
```

{% endtab %}

{% tab title="400 - Response" %}

```json
Nessa versão a API não vai recusar valores acima dos máximos permitidos..
Por isso, ela não vai acusar erros.
```

{% endtab %}
{% endtabs %}

### Pré oferta

{% hint style="info" %}
Após o aceite da simulação, uma pré oferta  será criada e o cliente  deverá acessar pelo link disponibilizado
{% endhint %}

#### Endpoint: external/clt/preproposta

{% hint style="info" %}
tipoconta: "Savings" para poupança, "Checking" para conta corrente. Deve ser no CPF do cliente e não pode ser conta salário.

No link de pré oferta o cliente vai passar por uma última validação, onde caso seja aprovado, ele vai conseguir acessar a oferta simulada na API e gerar um link de assinatura/biometria.

A pré-oferta tem validade de 72 horas. Após isso, é necessário gerar uma nova.
{% endhint %}

{% tabs %}
{% tab title="POST" %}

<pre class="language-json"><code class="lang-json">{
<strong>"uuid": "f03b7a74-1fa5-4a04-9697-02ca8ccdc14d",
</strong>"cep": "40026-170",
"endereconumero": "56",
"uf": "BA",
"cidade": "Salvador",
"enderecocomplemento": "",
"bairro": "Centro Histórico",
"rua": "Rua do Tabuão",
"agencia": "0000",
"conta": "7000285-2",
"tipoconta": "Savings",
"banco": "Caixa"
}
</code></pre>

{% endtab %}

{% tab title="200 - Response" %}

```json
{
    "status": "Sucess",
    "link": "https://juca.ai/K67w0P",
    "uuid": "8cc2ff48-2848-4540-83a4-97ad81778433"
}

```

{% endtab %}

{% tab title="400 - Response" %}

```json
{
    "status": "Error",
    "message": "Dados bancários inválidos"
}
```

{% endtab %}
{% endtabs %}

### Lista de bancos

Aceitamos somente os bancos abaixo:

```
bank = {
        "Banco do Brasil": "001",
        "Santander": "033",
        "Inter": "077",
        "Caixa": "104",
        "Bradesco": "237",
        "Nubank": "260",
        "Itaú": "341",
        "C6": "336",
        "Pan": "623",
        "Bmg": "318",
        "Banrisul": "041",
        "Banese": "047",
        "Banco Real de Brasilia": "070",
        "Sicoob": "756",
        "Banco Banestes": "021",
        "Agibank": "121",
        "BMP": "274",
        "Sicredi": "748",
        "Banco BV": "655"
        }
```

### Reapresentação de pagamento

**Endpoint: external/clt/dadosbancarios**

Endpoint utilizado para reapresentação de pagamento

{% tabs %}
{% tab title="Post" %}

```json
{
"uuid": "d4fbebe9-5eee-46b5-bffc-3b938bc7b66f",
"bank_name": "Bradesco",
"bank_account_type": "Checking",
"bank_account": "00084146-3",
"bank_agency": "2065"
}
```

{% endtab %}

{% tab title="200 - Response" %}

```json
{
"message": "success"
}
```

{% endtab %}
{% endtabs %}

Status das propostas

Será recebido via Webhook. Para cadastro, fale com nossa equipe comercial.

### Lista de Status

A lista de status abaixo está em ordem de fluxo, começando com proposta aberta para simulação e terminando com em proposta paga.

<table><thead><tr><th width="334">Status</th><th>Descrição</th><th>Observação</th></tr></thead><tbody><tr><td><strong>pre_aprovado</strong></td><td>quando a pre proposta é criada</td><td><p>{"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",</p><p>"status" : "pre_aprovado",                 "message" : "Usuário pré aprovado",                 "link" : "link"}</p></td></tr><tr><td><strong>expirada</strong></td><td>quando a pre proposta expira</td><td><p>{"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",<br>"status" : "expirada",<br>"message" : "Proposta expirada"<br>}</p></td></tr><tr><td><strong>proposta_solicitada</strong></td><td>Quando uma solicitação de proposta é realizada para o banco</td><td><p>{"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",</p><p> "status" : "proposta_solicitada", "message" : "Proposta solicitada ao banco" }</p></td></tr><tr><td><strong>proposta_cadastrada</strong></td><td>Proposta criada e sms sendo enviado</td><td><p>{"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",</p><p>"status":"proposta_cadastrada", "message" : "O SMS está sendo enviado para o cliente. Aguardando a assinatura e envio de fotos.", "link" : "XXXX"}</p></td></tr><tr><td><strong>proposta_aprovada_pagamento</strong></td><td>Proposta aprovada e na fila de pagamento</td><td><p>{"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",</p><p> "status" : "proposta_aprovada_pagamento", "message" : "Proposta aprovada e enviada para a fila de pagamento." }</p></td></tr><tr><td><strong>pago</strong></td><td>Proposta paga na conta bancária indicada</td><td><p>return {"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",<br>"status" : "pago",<br>"message" : "Sucesso! Proposta fechada e o dinheiro já foi depositado na conta indicada."<br>}</p></td></tr><tr><td><strong>pagamento_falhou_dados</strong></td><td>Tentativa de pagamento falhou pois dados bancários estavam incorretos pois dados bancários estavam incorretos.</td><td><p>{"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",</p><p> "status" : "pagamento_falhou_dados", "message" : "Tentativa de pagamento falhou pois dados bancários estavam incorretos. Confirmar abaixo os dados bancários e enviar para pagamento novamente" }</p></td></tr><tr><td><strong>reprovado</strong></td><td>Quando a pré proposta cai pois o cliente é reprovado no motor</td><td><p>{"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",</p><p> "status" : "reprovado", "message" : "Não aprovada" }</p></td></tr><tr><td><strong>proposta_revisao</strong></td><td>Quando a proposta entra em em revisão manual pelo banco</td><td><p>{"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",<br>"status" : "proposta_revisao",<br>"message" : "Proposta em revisão pelo banco"<br>}</p></td></tr><tr><td><strong>proposta_cancelada</strong></td><td>quando a proposta é cancelada</td><td><p>{"uuid":"XXX",</p><p>"created_at":"2026-02-05 11:24:07",<br>"status" : "proposta_cancelada",<br>"message" : "Proposta cancelada."<br>}</p></td></tr></tbody></table>

#### Fluxograma e Status da API

<figure><img src="/files/ONxYSdTZ5ibVVLHET7U9" alt=""><figcaption></figcaption></figure>
