Skip to main content

Leilão de propostas

Ver visão geral do módulo.

As solicitações de empréstimo feitas pelo trabalhador no app CTPS Digital são buscadas na Dataprev e distribuídas por webhook aos inscritos cujos filtros combinam com a solicitação. Cada inscrito pode devolver uma proposta para cada solicitação recebida. As propostas disputam um leilão interno, e só a vencedora é enviada à Dataprev.

Envio aos inscritos​

  • A solicitação é enviada ao mesmo tempo para todos os inscritos que combinam com ela, em chamadas paralelas. Um inscrito lento não atrasa os demais.
  • As solicitações mais recentes são enviadas primeiro.
  • O corpo do webhook traz o bloco auction, com o início (startedAt), o fim do prazo (endsAt) e a duração em segundos (windowSeconds).
  • O webhook aceita o envio respondendo com um status HTTP 2xx.
  • Quando o webhook não aceita, o envio é repetido conforme o máximo de tentativas da inscrição. Sem valor na inscrição, vale a configuração "Reenvios da Solicitação ao Inscrito" (chave proposal_delivery_retries) do grupo Dataprev da empresa.
  • Vazio ou 0 na configuração significa que não há reenvio: a primeira recusa já marca a entrega como falha definitiva.

Prazo do leilão​

  • O leilão de uma solicitação começa no envio aos inscritos.
  • A duração é configurada no grupo de configurações da Dataprev da empresa, em "Tempo do Leilão (segundos)" (chave proposal_auction_seconds).
  • O prazo nunca passa do vencimento da solicitação.
  • Sem valor ou com 0, não há prazo: vence a primeira proposta que chegar.

Envio da proposta​

A proposta é enviada por POST v5/private-payroll-proposals, com a chave de API do usuário da inscrição. É esse usuário que liga a proposta à inscrição que recebeu a solicitação.

Disponibilidade na API de integração

Na versão atual, as rotas de propostas e solicitações (v5/private-payroll-proposals e v5/private-payroll-proposal-requests) estão publicadas apenas nas aplicações web da Semear e não na API de integração autenticada por API Key. Confirme com a equipe da Semear o endereço e a forma de autenticação antes de integrar o envio de propostas.

A proposta também pode ser gerada pela tela ("Gerar Proposta"), por um usuário que não é inscrito. Nesse caso ela participa do leilão como mais um concorrente.

A API recusa a proposta nestes casos:

CódigoSituação
4057018O inscrito já enviou uma proposta para esta solicitação.
4057017O leilão está encerrado: já existe uma vencedora, o prazo terminou com propostas recebidas ou a solicitação venceu.
4057004A solicitação de proposta está expirada.

Como a vencedora é escolhida​

Dentro do prazo

  • Todas as propostas recebidas até o fim do prazo participam. Elas ficam com status bidding ("Em Leilão") até o resultado.
  • Vence a proposta com a menor taxa mensal (monthlyRate).

Empate na menor taxa

  • A vencedora é sorteada entre as empatadas.
  • O sorteio faz rodízio: quem venceu um sorteio anterior só volta a ser sorteado depois que os outros empatados também tiverem vencido. Com os mesmos inscritos empatando sempre, cada um vence uma vez antes de o ciclo recomeçar.

Nenhuma proposta no prazo

  • A primeira proposta que chegar depois do fim do prazo vence na hora.

Depois do resultado

  • A solicitação não aceita mais propostas depois que há uma vencedora ou quando ela vence.
  • As demais propostas passam para lost ("Não Vencedora").

Envio da vencedora à Dataprev​

A vencedora passa para pending ("Pendente de Envio") e é enviada à Dataprev em segundo plano. Os status finais são:

StatusSignificado
sentRegistrada na Dataprev. A solicitação passa a "Proposta Enviada".
rejectedRecusada pela Dataprev por regra de negócio; o motivo fica em status.note.
failedFalha técnica depois das novas tentativas automáticas.
expiredA validade da proposta terminou antes do envio.

Eventos​

O payload de todos os eventos é a própria proposta, no mesmo formato do GET v5/private-payroll-proposals/{id}.

EventoCodeQuando
private_payroll_proposal.won2030A proposta venceu o leilão.
private_payroll_proposal.lost2031Outra proposta venceu ou a solicitação venceu antes do resultado.
private_payroll_proposal.sent2032A proposta vencedora foi registrada na Dataprev.
private_payroll_proposal.failed2033A Dataprev recusou a proposta, o envio falhou ou a proposta expirou antes do envio.

Acompanhar o leilão​

GET v5/private-payroll-proposal-requests/{id}/auction devolve para a solicitação:

  • o status do leilão;
  • o prazo e o tempo restante em milissegundos (remainingMs);
  • como a vencedora foi escolhida (resolution);
  • a lista de propostas, com a vencedora no topo.

Se a solicitação ainda não foi enviada a nenhum inscrito, a resposta é o erro 4054002.

Status do leilãoSignificado
openDentro do prazo, recebendo propostas.
awaiting_firstPrazo encerrado sem propostas; a primeira que chegar vence.
closedEncerrado com proposta vencedora.
expiredA solicitação venceu sem proposta vencedora.