Mocks (Sandbox)
O federal-payroll-api da QI Tech intercepta as chamadas ao SIAPE/SIGEPE em sandbox e retorna respostas mockadas via siape_mocker.py. Apenas os CPFs listados abaixo são reconhecidos — qualquer outro retorna cdRetCode 9999 ("O número do documento informado não é um mock válido no ambiente de teste").
Sucesso completo (consulta + emissão + portabilidade)
CPFs que passam por todos os endpoints (consultarAutorizacoesMargemConsignavelV2, incluirContratoV2, incluirContratoPortabilidade, renovarContratoV2, etc.) com retorno OK:
document_number (CPF) | authority_code | registration_code |
|---|---|---|
| 25256363506 | 17000 | 1354387 |
| 03137300088 | 17000 | 1354387 |
| 20472510010 | 17000 | 1354387 |
| 67050758051 | 17000 | 1354387 |
| 59669701066 | 17000 | 1354387 |
Resposta esperada no webhook federal_payroll.balance (status: succeeded):
nome: KAUAN RIBEIRO PEREIRA
codOrgao: 17000 (MINISTERIO DA ECONOMIA)
cdMatricula: 1354387
autorizacaoEmprestimo: S (válida até 09/10/2024)
autorizacaoPortabilidade: S (válida até 24/10/2024)
contratoPortado:
nrCnpj: 00000000000191
nrContrato: 526985/WU
vlMargemDisp: 100000 (geral), 50000 (portabilidade)
Cenários especiais
CPF sem autorização (unauthorized_institution)
document_number | Comportamento |
|---|---|
71987878353 | Funciona apenas em consultarAutorizacoesMargemConsignavelV2. Retorna servidor "HELEN LUCIA REZENDE DE MORAES" com autorizacaoEmprestimo: N e autorizacaoPortabilidade: N |
Use este CPF pra testar a UX de "peça pro servidor autorizar QI SCD no Portal".
CPF sem margem (consignable_margin_exceeded)
document_number | Comportamento |
|---|---|
33673248090 | Funciona em consultarAutorizacoes (retorna vlMargemDisp: 0) E em incluirContratoV2/incluirContratoPortabilidade/renovarContratoV2 (retorna cdRetCode: 8058 "Funcionário não tem margem para essa solicitação") |
Use este CPF pra testar fluxo de margem insuficiente após autorização concedida.
CPFs fora da whitelist
Qualquer outro CPF retorna:
cdRetCode: 9999
dsRetCode: O número do documento informado não é um mock válido no ambiente de teste
Webhook resultante: federal_payroll.balance com status: failure + failure_reason: mock_error.
Token e Portal do Servidor em Sandbox
- Não há autorização real no Portal do Servidor em sandbox. Os mocks já trazem
autorizacaoEmprestimo: S(ou N) baseado no CPF da whitelist. - O endpoint
consultarAnuenciaContratosretornavoid(não há body) — significa que o mock pula o passo de consulta de anuência.
Portabilidade — dados do contrato origem mockados
Quando você usa um CPF da whitelist e simula portabilidade, os mocks já têm:
| Campo | Valor mockado |
|---|---|
original_financial_institution_document_number | 00000000000191 (Banco do Brasil) |
original_contract_number | 526985/WU |
due_balance mockado | varia conforme vlMargemDisp da resposta |
Use estes valores ao montar o payload de /debt em portabilidade pra que o mock reconheça o contrato origem.
Reset diário
Reservas que não atingiram estado terminal (reserved, canceled, deleted) são encerradas automaticamente às 23:59h pra manter o ambiente limpo.
Cenário end-to-end completo
Sequência recomendada para validar a integração em sandbox:
POST /federal_payroll/balancecom25256363506+authority_code: 17000+registration_code: 1354387- Aguardar webhook
federal_payroll.balance(succeeded) comavailable_balanceretornado POST /debt_simulationcominstallment_face_value≤available_balanceretornadoPOST /debtcomreservation_method: creation(margem livre) ou comrefinanced_credit_operations(port comoriginal_contract_number: 526985/WU)- Aguardar webhook
credit_operation.collateral(pending_consent→success) — em sandbox o consent é automático após o/debt POST /debt/{KEY}/signedcom QI Sign ou data-signature opt-in- Aguardar webhook
debt(disbursed) - (opcional cancelamento)
PATCH /debt/{KEY}/cancel→ recebe PIX QR → simular pagamento → webhookreversal
Janela operacional sandbox
Diferente da produção, o sandbox SIAPE não respeita a janela 07:00-00:00 dias úteis — você pode rodar a qualquer hora, qualquer dia da semana. Em prod a janela é estrita.
Endpoints mockados (referência interna)
O siape_mocker.py cobre estes operation types do SIAPE (SOAP):
| Operation type | Comportamento mockado |
|---|---|
consultarAutorizacoesMargemConsignavelV2 | Retorna dados do servidor + autorização emprestimo/portabilidade |
incluirContratoV2 | Inclui novo contrato — sucesso pra CPFs whitelist |
incluirContratoPortabilidade | Inclui contrato de portabilidade — sucesso pra whitelist |
renovarContratoV2 | Refinanciamento — sucesso pra whitelist |
alterarContrato | Sucesso fixo cdRetCode: 0000 |
consultarContrato | Retorna situação Ativo ou Aguardando Encerramento do Contrato (port) |
encerrarContrato | Sucesso fixo |
consultarAnuenciaContratos | Void (pula passo) |