Pular para o conteúdo principal

Mocks (Sandbox)

Aviso Importante!

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:

  1. Tenta um match exato do CPF contra a massa de teste.
  2. 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ígitoCenáriomargemDisponivelStatus
1Margem completa, elegível, sem bloqueios431.3200
2Erro Dataprev D1 — dados do benefício incompletos/inconsistentes/nulos412
3Margem de cartão/RCC reduzida (R$ 75,90)431.3200
4Margem completa (idêntico ao dígito 1)431.3200
8Margem de cartão/RCC zerada431.3200

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.

CPFBenefício (código)ElegívelSituaçãoBloqueioconsigned_credit.balanceavailable_total_balanceStatus
18166261553retirement_by_contribution_time (42) — margem negativaSimATIVO--7.84-7.84200
30449750345pension_by_death_statute (22)NãoINATIVOBloqueado por TBM10000200
58992386400pension_by_death_statute (22)NãoATIVOBloqueado por TBM10000200
15588881010retirement_capin_extra_emploee (37)SimATIVO-1000200200
80436724154retirement_invalidity_work_accident (92)NãoINATIVOBloqueado por TBM10005000200
34166302540pension_by_death_federal_emploee (27)NãoATIVOBloqueado por TBM10005000200
71020884851pension_by_death_diplomat (20)NãoATIVOBloqueado por TBM10005000200
76241089684retirement_invalidity_work_accident (92)NãoATIVOBloqueado por TBM10005000200
44559483922pension_by_death (21)NãoATIVOBloqueado por TBM10005000200
14429281238pension_by_death_statute (22)SimATIVO-1000300200
15843101037retirement_by_contribution_time (42)SimATIVO-10002000200
13686315092retirement_by_contribution_time (42)SimATIVO-10002000200
14937159097retirement_by_contribution_time (42)SimATIVO-100050200
15986213009retirement_by_contribution_time (42)SimATIVO-10001000200
17427272048retirement_by_age (41)SimATIVO-10001600200
16110575070retirement_by_age (41)SimATIVO-10002000200
14996024054retirement_invalidity_work_accident (92)SimATIVO-1000100200
17702273003retirement_invalidity_work_accident (92)SimATIVO-1000150200
12228342009retirement_invalidity_work_accident (92)SimATIVO-1000200200
11709160071retirement_invalidity_work_accident (92)SimATIVO-1000250200
12452312002retirement_invalidity_work_accident (92)SimATIVO-1000300200
10650137019retirement_invalidity_work_accident (92)SimATIVO-1000350200
17287554097retirement_invalidity_work_accident (92)SimATIVO-1000400200
19815793039retirement_invalidity_work_accident (92)SimATIVO-1000450200
11985375079retirement_invalidity_work_accident (92)SimATIVO-1000500200
14732376029retirement_invalidity_work_accident (92)SimATIVO-1000750200
10178596043retirement_invalidity_work_accident (92)SimATIVO-1000600200
17859801060retirement_invalidity_work_accident (92)SimATIVO-1000650200
11524380857retirement_invalidity_work_accident (92)SimATIVO-1000700200
19447847056retirement_invalidity_work_accident (92)SimATIVO-1000800200
10813389038retirement_invalidity_work_accident (92)SimATIVO-1000850200
35776131499retirement_invalidity_work_accident (92)SimATIVO-1000900200
17283313079retirement_by_contribution_time (42)SimATIVO-1000300200
14552515004retirement_by_age (41)SimATIVO-1000300200
14036419005retirement_invalidity_social_security (32)SimATIVO-1000300200
13423241020retirement_by_contribution_time (42)SimATIVO-1000200200
12382929090retirement_special (46)SimATIVO-1000200200
73527133011retirement_by_contribution_time (42)SimATIVO-1000300200
55111830081retirement_by_contribution_time (42)SimATIVO-1000300200
83995332030retirement_by_contribution_time (42)SimATIVO-1000300200
65954790019retirement_by_contribution_time (42)SimATIVO-1000300200
16257311080retirement_by_contribution_time (42)SimATIVO-1000300200

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):

ENDPOINT
/social_security/balance_request/synchronous
MÉTODO
POST
ENDPOINT
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