Leilão de propostas
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
0na 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.
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ódigo | Situação |
|---|---|
4057018 | O inscrito já enviou uma proposta para esta solicitação. |
4057017 | O leilão está encerrado: já existe uma vencedora, o prazo terminou com propostas recebidas ou a solicitação venceu. |
4057004 | A 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:
| Status | Significado |
|---|---|
sent | Registrada na Dataprev. A solicitação passa a "Proposta Enviada". |
rejected | Recusada pela Dataprev por regra de negócio; o motivo fica em status.note. |
failed | Falha técnica depois das novas tentativas automáticas. |
expired | A 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}.
| Evento | Code | Quando |
|---|---|---|
private_payroll_proposal.won | 2030 | A proposta venceu o leilão. |
private_payroll_proposal.lost | 2031 | Outra proposta venceu ou a solicitação venceu antes do resultado. |
private_payroll_proposal.sent | 2032 | A proposta vencedora foi registrada na Dataprev. |
private_payroll_proposal.failed | 2033 | A 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ão | Significado |
|---|---|
open | Dentro do prazo, recebendo propostas. |
awaiting_first | Prazo encerrado sem propostas; a primeira que chegar vence. |
closed | Encerrado com proposta vencedora. |
expired | A solicitação venceu sem proposta vencedora. |