Skip to main content

Mocks (Sandbox)

Sandbox militar usa Zetra real de homologação

Ao contrário do SIAPE, o military-payroll-api em sandbox NÃO usa mocks locais. Em sandbox a integração aponta para o endpoint Host-a-Host de homologação da Zetra (eConsig):

  • Sandbox: https://www.econsig.com.br/central_homologa/services/HostaHostService-v8_0?wsdl
  • Produção: https://api.econsig.com.br/central/services/HostaHostService

Os dados de teste (CPFs, matrículas, tokens) são fornecidos pela própria Zetra via planilha de homologação oficial. Suporte Zetra: suporte@econsig.com.br.

Convênio QI Sociedade — Exército Brasileiro​

ItemValor
ClienteQI_SOCIEDADE
ConvênioQI_SOCIEDADE-EB
Usuário APIqi_sociedade_xml
Senha APIqi12345
Código Serviço001
Descrição ServiçoEMPRÉSTIMO
Código VerbaZQD

Servidores de Teste​

Servidores fictícios cadastrados na Zetra homologação. Todos com senha do servidor = abc123.

Cenário: Margem Negativa​

Servidor sem margem disponível — toda tentativa de reserva retorna falha.

#MatrículaCPFData Nascimento
1132722899279.315.128-981983-04-01
2143320397213.628.178-051978-02-17

Cenário: Margem Limite R$ 500,00​

Margem reduzida — útil para testar limites e validação INSUFFICIENT_MARGIN.

#MatrículaCPFData Nascimento
3346578694432.108.069-001997-04-21
4982435311432.108.069-001993-03-20

[!info] Matrículas 3 e 4 compartilham o mesmo CPF — útil para testar cenário "mesmo militar, múltiplas matrículas/órgãos".

Cenário: Margem Limite R$ 10.000,00​

Margem confortável — usar para testar fluxos completos de margem livre, refinanciamento e portabilidade.

#MatrículaCPFData Nascimento
5346578694540.770.447-151997-04-21
6961683333734.119.817-681963-04-09

Cenário: BLOQUEADO​

Servidor com bloqueio em folha — Zetra retorna military_blocked (código 352).

#MatrículaCPFData Nascimento
7234674321045.672.387-021975-01-01
8342542124472.635.472-871964-03-06

Como mapear nos payloads QI​

Quando construir o payload de POST /military_payroll/balance:

{
"document_number": "27931512898",
"registration_code": "132722899",
"authorization_document_key": "<document_key do POST /upload>",
"token": "abc123"
}
  • document_number — CPF sem máscara (remova . e - da tabela acima).
  • registration_code — matrícula direto da tabela.
  • token — senha do servidor (abc123 para todos os testes).
  • authorization_document_key — upload de qualquer PDF/PNG; em sandbox a Zetra não valida o conteúdo do termo.

Webhook esperado por cenário​

CenárioWebhook military_payroll.balance.status_change
Margem Negativa (1, 2)status: failed, failure_reason: invalid_balance ou consignable_margin_exceeded
Margem Limite R$ 500 (3, 4)status: succeeded, balance: 500.00, allowed_installment_numbers: [...]
Margem Limite R$ 10.000 (5, 6)status: succeeded, balance: 10000.00, allowed_installment_numbers: [...]
BLOQUEADO (7, 8)status: failed, failure_reason: military_blocked (Zetra 352)
CPF/matrícula fora da tabelastatus: failed, failure_reason: military_not_found (Zetra 293) ou invalid_registration_code (Zetra 210)

Fluxo end-to-end recomendado​

Para validar margem livre, use teste 5 ou teste 6 (margem alta):

  1. POST /upload com PDF qualquer → document_key.
  2. POST /military_payroll/balance com 27931512898 (margem negativa, pra testar failure) ou 54077044715 (margem 10k).
  3. Aguardar webhook military_payroll.balance.status_change.
  4. Em caso de sucesso, POST /debt_simulation com installment_face_value ≤ balance retornado.
  5. POST /debt com reservation_method: creation (margem livre) ou refinancing (port/refin).
  6. Aguardar webhook credit_operation.collateral (successfully_accepted → successfully_reserved).
  7. POST /debt/{KEY}/signed com QI Sign ou data-signature opt-in.
  8. Aguardar webhook debt (disbursed).
  9. (opcional cancelamento) PATCH /debt/{KEY}/cancel dentro de 7 dias úteis → recebe PIX QR → simular pagamento → webhook reversal.

Para testar portabilidade com contrato externo, combine teste 5 ou 6 com um original_contract_number fictício (Zetra homologação aceita strings arbitrárias nesse campo durante port em sandbox).

Códigos Zetra observados em sandbox​

CódigoMensagemMapeamento na QI
000Operação realizada com sucessosucceeded
210Matrícula inválidainvalid_registration_code
241Erro de comunicaçãocommunication_error (QI retenta automaticamente)
293Militar não encontradomilitary_not_found
352Militar bloqueado em folhamilitary_blocked
359Margem consignável excedidaconsignable_margin_exceeded
360Margem disponível verificadaretorno de consultarMargem

Operação 24/7 em sandbox​

A Zetra em homologação opera 24h/dia, todos os dias — sem janela operacional restrita (mesmo comportamento da produção).

Reset de reservas​

Reservas Zetra em homologação persistem indefinidamente salvo cancelamento explícito. Limpe seu ambiente cancelando as reservas que não forem necessárias (PATCH /debt/{KEY}/cancel).

Não há mocks locais ativos​

O arquivo src/connectors/zetra_mocker.py no repo military-payroll-api existe mas não é invocado no fluxo de runtime — EconsigConnector chama diretamente o ECONSIG_SERVICE_ADDRESS configurado por ambiente. Se algum dia for necessário introduzir mocks locais (ex: Zetra fora do ar bloqueando QA), o ZetraMocker está disponível para ser ativado, mas hoje toda integração de teste passa pela Zetra real de homologação.