Consignado Privado · Documentação de Integração

API de Consignado Privado

Guia passo a passo para integração dos correspondentes bancários com a plataforma Presença — do login à efetivação da proposta.

Produto: Consignado Privado Ambiente: Produção Rate limit: 30 req/min
Ambientes e documentação

Antes de começar

Tenha em mãos a documentação funcional, a documentação técnica (Swagger) e a URL base de produção.

Documentação funcional Readme
Documentação técnica Swagger
URL base (produção) presenca-bank-api.azurewebsites.net
Fluxo de integração

Siga rigorosamente a ordem

A sequência abaixo evita erros de fluxo. Cada etapa depende da anterior — não pule passos.

1

Autenticação (Login)

Obtenha o token de acesso que autentica todas as requisições seguintes.

POST /login
2

Gerar Termo

Gere o link do termo LGPD. O fluxo pausa aqui até que o cliente acesse o link e dê o aceite.

Pausa · aguarda aceite do cliente
3

Consulta de Vínculos

Execute somente após o aceite do termo pelo cliente. Busca os empregadores/vínculos ativos.

Somente após aceite
4

Consulta de Margem

Consulta a margem disponível para o vínculo selecionado.

Requer matrícula + CNPJ do vínculo
5

Consultar Tabelas

Simula as ofertas disponíveis com base na margem retornada.

Requer margem do vínculo
6

Criar Operação

Efetiva a proposta enviando os dados da tabela escolhida.

POST /v3/operacoes
Dúvidas frequentes

Perguntas e respostas

1 É possível realizar consultas em lote (vários CPFs de uma vez)?
Não. No momento, o sistema suporta apenas consultas unitárias.
Regra: envie uma requisição por vez, para um único cliente (CPF).
2 Qual o limite de requisições (rate limit)?
Os endpoints de consulta possuem limite de 30 requisições por minuto para garantir a estabilidade do serviço.
Recomendação: configure seu sistema para enviar, no máximo, 1 requisição a cada 2 segundos.
3 Como obter o link de formalização após criar a proposta?
Utilize o endpoint abaixo, substituindo o 0 pelo ID da proposta gerada:

GET /operacoes/{id}/link-formalizacao

Exemplo: https://presenca-bank-api.azurewebsites.net/operacoes/12345/link-formalizacao
4 Como acompanhar o status da proposta?
Para consultar o andamento detalhado (status atual, pendências, pagamentos), utilize:

GET /operacoes/{id}/detalhe

Exemplo: https://presenca-bank-api.azurewebsites.net/operacoes/0/detalhe
Importação e preparação

Collection Postman

Após a configuração no portal, importe a Collection fornecida para o Postman e siga o fluxo passo a passo para criar a proposta. Preencha todos os corpos das requisições com dados válidos do cliente — dados incorretos podem causar erros no fluxo de validação.

MétodoDescriçãoEndpoint
POSTLogin/login
POST1. Gerar Termo de Autorização de Consulta/consultas/termo-inss
PUT2. Assinar Termo de Autorização
POST3. Consultar Vínculos Empregatícios/v3/operacoes/consignado-privado/consultar-vinculos
POST4. Consultar Margem do Vínculo/v3/operacoes/consignado-privado/consultar-margem
POST5. Consultar Tabelas Disponíveis/v5/operacoes/simulacao/disponiveis
POST6. Criar Operação Consignado Privado/v3/operacoes
Modelos de POST e Response

Endpoints e payloads

Preencha todas as informações dos bodys com dados válidos do cliente para evitar erros no fluxo de criação de proposta.

POST 1 · Login /login
Request body
// POST /login
{
  "login": "Usuario",
  "senha": "Senha"
}
Response (200)
{
  "token": "(Token)",
  "expireAt": "2025-11-05T03:58:01Z",
  "usuario": {
    "id": 000000,
    "nome": "Nome Sobrenome",
    "cpf": "00000000000",
    "login": "Usuario",
    "status": {
      "name": "Ativo",
      "id": 2
    }
  }
}
POST 2 · Gerar Termo de Autorização /consultas/termo-inss
Request body
{
  "cpf": "12345678999",
  "nome": "Teste",
  "telefone": "0000000",
  "produtoId": 25
}
Response
{
  "autorizacaoId": "7e8ceced-8495-4410-b2e6-9817f741b508",
  "shortUrl": "http://..."
}
POST 3 · Consultar Vínculo /v3/operacoes/consignado-privado/consultar-vinculos
Request body
{
  "cpf": "00000999000"
}
Response
{
  "id": [
    {
      "matricula": "000000",
      "numeroInscricaoEmpregador": "0000000000",
      "elegivel": true,
      "cpf": "00000000000"
    }
  ]
}
POST 4 · Consulta de Margem /v3/operacoes/consignado-privado/consultar-margem
OBS: o campo cnpj deve ser preenchido com o valor de numeroInscricaoEmpregador do response anterior.
Request body
{
  "cpf": "8880006...",
  "matricula": "431",
  "cnpj": "8800000000000"
}
Response
{
  "numeroInscricaoEmpregador": "00000000000",
  "valorMargem": 936.1,
  "matricula": "431",
  "dataAdmissao": "2025-07-14",
  "dataNascimento": "1997-03-30",
  "valorMargemAvaliavel": 936.1,
  "valorBaseMargem": 2674.58,
  "valorTotalVencimentos": 3238.88,
  "nomeMae": "NOME MAE",
  "sexo": "Feminino"
}
POST 5 · Consulta de Tabelas /v5/operacoes/simulacao/disponiveis
Observações: registroEmpregaticio = matrícula do endpoint 3. ValorSolicitado não precisa enviar. Sexo = M ou F (aceita null). FormaCredito: 1 = poupança / 2 = corrente.
Response
[
  {
    "id": 5165,
    "nome": "Privado CLT-12x -6,99% -15x-",
    "prazo": 12,
    "taxaJuros": 6.99,
    "valorLiberado": 2611.96,
    "tipoCredito": { "name": "Novo", "id": 1 },
    "type": "credito-privado-v3",
    "valorParcela": 444.29
  },
  {
    "id": 5162,
    "nome": "Privado CLT-6x -6,99% 15k-",
    "prazo": 6,
    "taxaJuros": 6.99,
    "valorLiberado": 1615.42,
    "tipoCredito": { "name": "Novo", "id": 1 },
    "type": "credito-privado-v3",
    "valorParcela": 452.85
  }
]
POST 6 · Criação de Proposta /v3/operacoes
Observações: ValorSolicitado não precisa enviar. Sexo = M ou F (aceita null). FormaCredito: 1 = poupança / 2 = corrente.
Response
// 200 OK — detalhe do corpo cortado na fonte original.
// O ID gerado retorna no corpo da resposta.
PAYLOAD Body para Termo Próprio metadados do dispositivo
Modelo de payload (metadados do dispositivo)
{
  "userAgent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36",
  "OperationalSystem": "Android",
  "DeviceModel": "S23",
  "DeviceName": "Android",
  "DeviceType": "Mobile",
  "GeoLocation": {
    "Latitude": "-1.0",
    "Longitude": "-5.0"
  }
}