Mocks (Sandbox)
Não utilize dados pessoais reais (CPF, CNPJ etc.) em ambiente sandbox.
A social-security-api intercepta as chamadas à Dataprev em ambiente sandbox/dev e retorna respostas mockadas via dataprev_mocker.py. A consulta de saldo/margem (DataprevMocker.get_balance_mocker) resolve o document_number em duas etapas:
- Tenta um match exato do CPF contra a massa de teste.
- Se não encontrar, usa o primeiro dígito do CPF como chave.
Se nenhuma das duas resolver, retorna o erro fixo:
{
"erros": [
{
"codigo": "QIE",
"mensagem": "CPF divergente da massa de teste informada na documentação."
}
]
}
com HTTP 412.
Cenários por primeiro dígito (fallback)
Qualquer CPF de teste cujo primeiro dígito seja um dos abaixo cai num destes cenários genéricos — útil quando você não precisa de um CPF fixo:
| 1º dígito | Cenário | margemDisponivel | Status |
|---|---|---|---|
1 | Margem completa, elegível, sem bloqueios | 431.3 | 200 |
2 | Erro Dataprev D1 — dados do benefício incompletos/inconsistentes/nulos | — | 412 |
3 | Margem de cartão/RCC reduzida (R$ 75,90) | 431.3 | 200 |
4 | Margem completa (idêntico ao dígito 1) | 431.3 | 200 |
8 | Margem de cartão/RCC zerada | 431.3 | 200 |
CPFs com primeiro dígito 0, 5, 6, 7 ou 9 (e que não tenham match exato) caem no erro QIE acima.
Além desses, o mocker reconhece 42 CPFs com match exato — a tabela completa está abaixo.
CPFs com match exato
Campos já mapeados para o schema público da QI: consigned_credit.balance vem de margemDisponivel, available_total_balance vem de valorDisponivelAverbacaoEmprestimo. Boa parte dos CPFs com retirement_invalidity_work_accident existe só pra cobrir uma faixa de valores de available_total_balance (de R$ 50 a R$ 900) — útil pra testar simulação de dívida contra um teto de margem específico.
| CPF | Benefício (código) | Elegível | Situação | Bloqueio | consigned_credit.balance | available_total_balance | Status |
|---|---|---|---|---|---|---|---|
18166261553 | retirement_by_contribution_time (42) — margem negativa | Sim | ATIVO | - | -7.84 | -7.84 | 200 |
30449750345 | pension_by_death_statute (22) | Não | INATIVO | Bloqueado por TBM | 1000 | 0 | 200 |
58992386400 | pension_by_death_statute (22) | Não | ATIVO | Bloqueado por TBM | 1000 | 0 | 200 |
15588881010 | retirement_capin_extra_emploee (37) | Sim | ATIVO | - | 1000 | 200 | 200 |
80436724154 | retirement_invalidity_work_accident (92) | Não | INATIVO | Bloqueado por TBM | 1000 | 5000 | 200 |
34166302540 | pension_by_death_federal_emploee (27) | Não | ATIVO | Bloqueado por TBM | 1000 | 5000 | 200 |
71020884851 | pension_by_death_diplomat (20) | Não | ATIVO | Bloqueado por TBM | 1000 | 5000 | 200 |
76241089684 | retirement_invalidity_work_accident (92) | Não | ATIVO | Bloqueado por TBM | 1000 | 5000 | 200 |
44559483922 | pension_by_death (21) | Não | ATIVO | Bloqueado por TBM | 1000 | 5000 | 200 |
14429281238 | pension_by_death_statute (22) | Sim | ATIVO | - | 1000 | 300 | 200 |
15843101037 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 2000 | 200 |
13686315092 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 2000 | 200 |
14937159097 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 50 | 200 |
15986213009 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 1000 | 200 |
17427272048 | retirement_by_age (41) | Sim | ATIVO | - | 1000 | 1600 | 200 |
16110575070 | retirement_by_age (41) | Sim | ATIVO | - | 1000 | 2000 | 200 |
14996024054 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 100 | 200 |
17702273003 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 150 | 200 |
12228342009 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 200 | 200 |
11709160071 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 250 | 200 |
12452312002 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 300 | 200 |
10650137019 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 350 | 200 |
17287554097 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 400 | 200 |
19815793039 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 450 | 200 |
11985375079 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 500 | 200 |
14732376029 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 750 | 200 |
10178596043 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 600 | 200 |
17859801060 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 650 | 200 |
11524380857 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 700 | 200 |
19447847056 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 800 | 200 |
10813389038 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 850 | 200 |
35776131499 | retirement_invalidity_work_accident (92) | Sim | ATIVO | - | 1000 | 900 | 200 |
17283313079 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 300 | 200 |
14552515004 | retirement_by_age (41) | Sim | ATIVO | - | 1000 | 300 | 200 |
14036419005 | retirement_invalidity_social_security (32) | Sim | ATIVO | - | 1000 | 300 | 200 |
13423241020 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 200 | 200 |
12382929090 | retirement_special (46) | Sim | ATIVO | - | 1000 | 200 | 200 |
73527133011 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 300 | 200 |
55111830081 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 300 | 200 |
83995332030 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 300 | 200 |
65954790019 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 300 | 200 |
16257311080 | retirement_by_contribution_time (42) | Sim | ATIVO | - | 1000 | 300 | 200 |
Todos os CPFs acima retornam bloqueadoParaEmprestimo: false, exceto os marcados com "Bloqueado por TBM" na coluna Bloqueio (que ainda assim respondem HTTP 200 com elegivelEmprestimo: false).
Exemplo de requisição (funciona com qualquer CPF da tabela):
POST /social_security/balance_request/synchronous
{
"document_number": "18166261553",
"benefit_number": "2052711150"
}
Resposta (HTTP 200) para o CPF de margem negativa, já mapeada para o schema público:
{
"assistance_type": "retirement_by_contribution_time",
"available_total_balance": -7.84,
"consigned_credit": {
"balance": -7.84
},
"payroll_card": {
"balance": 0,
"limit": 2083.2
},
"benefit_card": {
"balance": 0,
"limit": 2083.2
},
"block_type": "not_blocked",
"benefit_situation": "active"
}
Referências
dataprev_mocker.py— massa de teste completa- Consulta Offline de Saldo — schema de resposta completo