Pular para o conteúdo principal

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_coderegistration_code
25256363506170001354387
03137300088170001354387
20472510010170001354387
67050758051170001354387
59669701066170001354387

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_numberComportamento
71987878353Funciona 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_numberComportamento
33673248090Funciona 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 consultarAnuenciaContratos retorna void (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:

CampoValor mockado
original_financial_institution_document_number00000000000191 (Banco do Brasil)
original_contract_number526985/WU
due_balance mockadovaria 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:

  1. POST /federal_payroll/balance com 25256363506 + authority_code: 17000 + registration_code: 1354387
  2. Aguardar webhook federal_payroll.balance (succeeded) com available_balance retornado
  3. POST /debt_simulation com installment_face_valueavailable_balance retornado
  4. POST /debt com reservation_method: creation (margem livre) ou com refinanced_credit_operations (port com original_contract_number: 526985/WU)
  5. Aguardar webhook credit_operation.collateral (pending_consentsuccess) — em sandbox o consent é automático após o /debt
  6. POST /debt/{KEY}/signed com QI Sign ou data-signature opt-in
  7. Aguardar webhook debt (disbursed)
  8. (opcional cancelamento) PATCH /debt/{KEY}/cancel → recebe PIX QR → simular pagamento → webhook reversal

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 typeComportamento mockado
consultarAutorizacoesMargemConsignavelV2Retorna dados do servidor + autorização emprestimo/portabilidade
incluirContratoV2Inclui novo contrato — sucesso pra CPFs whitelist
incluirContratoPortabilidadeInclui contrato de portabilidade — sucesso pra whitelist
renovarContratoV2Refinanciamento — sucesso pra whitelist
alterarContratoSucesso fixo cdRetCode: 0000
consultarContratoRetorna situação Ativo ou Aguardando Encerramento do Contrato (port)
encerrarContratoSucesso fixo
consultarAnuenciaContratosVoid (pula passo)