Manual Consignado da Aeronáutica
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: Reenvio de Webhooks.
O sistema de consignações da Aeronáutica, via API, funciona 24 horas por dia, todos dias da semana, inclusive feriados.
1. Autorização
Antes do envio de qualquer requisição de Consignado do Exército (Consulta, Emissão da dívida, etc), é necessário fazer o upload do consentimento do militar autorizando a QI a proceder com a consulta, averbação e manutenção em folha de pagamento. Para upload da autorização, seguir o passo a passo encontrado na sessão de Upload de Documentos
O upload retornará uma chave única no campo de retorno "document_key" que deverá ser enviado no payload de requisição de Consulta de Margem Consignável em "authorization_document_key", confome melhor detalhado à seguir, no item 3. Consulta de Margem Consignável.
2. Simulação de Cenários de Sucesso nas Consultas de Saldos, Consulta de Lista de Contratos e Averbações em Sandbox
Para fins de teste, temos um conjunto de dados que podem ser utilizados para simular os casos de sucesso em sandbox, são eles:
| document_number | registration_code | token | birthdate |
|---|---|---|---|
| 60221284630 | 18571 | abc123 | 1954-09-08 |
| 57343241400 | 72893 | abc123 | 1998-02-06 |
| 13212590696 | 15410 | abc123 | 1959-11-14 |
Essas informações devem ser enviadas no payload da requisição no momento da simulação e o resultado será enviado por meio do webhook de sucesso correspondente.
3. Consulta de Margem Consignável
Em posse dos dados de CPF, Matrícula do militar e a Chave do Documento de Autorização, o parceiro integrador pode realizar a consulta assíncrona da margem consignável do militar através do seguinte endpoint:
Request
Request Body
{
"document_number": "45507529710",
"registration_code": "146254221",
"authorization_document_key": "f2bc2369-89ea-4a80-9f64-ba7b1566cd31",
}
O CPF deve ser informados em formato de texto, com no máximo 11 caracteres, sem ".", sem "-" e alinhado com zeros à esquerda. A Matrícula também deve ser no formato de texto.
Request Body Params
| Campo | Tipo | Descrição |
|---|---|---|
document_number | string | CPF do militar. |
registration_code | string | Matrícula do militar. |
authorization_document_key | uuid | document_key do termo de autorização. |
Sincronous Response
Response Body
{
"balance_key": "81da8afb-e1b2-4215-8093-c4b5feab8a9f",
"status": "pending_search"
}
Por ser assíncrono, os dados da consulta de margem do tomador serão retornados via webhook.
Response Body Params
| Campo | Tipo | Descrição |
|---|---|---|
balance_key | string | Chave de identificação da consulta de Margem Consignável. |
status | enum | Enumeradores de status de consulta de margem consignável abaixo. |
Enumeradores de Status de Consulta de Margem Consignável
| Enumerador | Descrição |
|---|---|
pending_search | Consulta de margem consignável pendente de resposta do sistema do exército. |
processed | Consulta de margem consignável processada. |
O status 'processed' refere-se apenas ao fato de que a requisição do saldo foi efetivamente eviada e processada, porém não diz respeito ao sucesso ou à falha da mesma, tal informação estará no payload enviado via Webhook explicado à seguir.
Consulta com sucesso
O webhook de sucesso será retornado da seguinte forma:
Body
{
"webhook_type": "airforce_payroll.balance.status_change",
"key": "81da8afb-e1b2-4215-8093-c4b5feab8a9f",
"event_datetime": "2023-05-28T08:43:29Z",
"status": "processed",
"data": {
"military_unit": "Aeronáutica Brasileira",
"military_branch": "IAE",
"category": "Ativo",
"name": "João da Silva",
"document_number": "12345678901",
"registration_code": "ABC123",
"balance": "15000.00",
"birth_date": "1980-01-01",
"grant_date": "2005-03-15",
"allowed_installment_numbers": 24
}
}
Response Body Params success
| Campo | Tipo | Descrição |
|---|---|---|
webhook_type | string | Tipo do webhook. |
key | uuid | Chave de referência do webhook. Neste caso, se trata da balance_key |
event_datetime | string | Data e hora do envio do webhook. |
status | string | Status da consulta de margem consignável. |
data | json | Campo que irá conter os dados referentes à consulta. |
data.military_unit | string | Estabelecimento que o militar está cadastro no sistema eConsig. |
data.military_branch | string | Orgão/organização militar que o militar está. |
data.category | string | Categoria do militar. |
data.name | string | Nome do militar. |
data.document_number | string | CPF do militar. |
data.registration_code | string | Matrícula do militar. |
data.balance | string | Margem disponível para contratação de empréstimo consignado. |
data.birth_date | string | Data de nascimento do militar. |
data.grant_date | string | Data de admissão do militar. |
data.allowed_installment_numbers | string | Número limite de parcelas de um empréstimo consignado para o militar consultado. |
Consulta com falha
O webhook de falha será retornado da seguinte forma:
Body
{
"webhook_type": "airforce_payroll.balance.status_change",
"key": "81da8afb-e1b2-4215-8093-c4b5feab8a9f",
"event_datetime": "2023-05-28T08:43:29Z",
"status": "processed",
"data": {
"title": "insufficient_permission",
"description": "User Has insufficient permissions for this operation.",
"translation": "Usuario nao possui permissoes suficientes para essa operacao.",
"code": "ZP000329",
"extra_fields": {}
}
}
Cada tipo de erro mapeado possui um título, código e descrição mais detalhada. Caso ainda não tenha sido mapeado retornaremos no mesmo formato porém com o título unknown_response. Salvo os campos idênticos, a tabela abaixo descreve com detalhes os parâmetros retornados.
Response body params failure
| Campo | Tipo | Descrição |
|---|---|---|
data.title | string | Título referente ao erro ocorrido. |
data.description | string | Descrição detalhada em inglês do erro ocorrido. |
data.translation | string | Tradução da decrição do erro ocorrido. |
data.code | string | Código do erro recebido. Os 3 últimos dígitos referem-se ao código de erro recebido pela Zetra. (ex: ZP000329) |
data.extra_fields | json | Campo destinado à possíveis atributos extras. |
Requisição de uma Consulta de Margem Consignável
Caso o parceiro queira saber sobre o andamento de alguma entidade Balance criada, ele pode realizar uma requisição da mesma:
Recomendamos fortemente que utilizem o Webhook como referência nas informações da Consulta de Margem Consignável do tomador. Feature passível de remoção no futuro.
Request
Response
Body
{
"status": "processed",
"data": {
"military_unit": "Aeronáutica Brasileira",
"military_branch": "IAE",
"category": "Ativo",
"name": "João da Silva",
"document_number": "12345678901",
"registration_code": "ABC123",
"balance": "15000.00",
"birth_date": "1980-01-01",
"grant_date": "2005-03-15",
"allowed_installment_numbers": 24
}
}
4. Consulta da Lista de Contratos
Em posse dos dados de CPF, Matrícula do militar e Token do possível tomador, o parceiro integrador pode realizar a consulta da lista de contratos do militar disponíveis para compra através do seguinte endpoint:
Request
Request Body
{
"document_number": "45507529710",
"registration_code": "146254221",
"token": "abc1234"
}
O CPF deve ser informados em formato de texto, com no máximo 11 caracteres, sem ".", sem "-" e alinhado com zeros à esquerda. A Matrícula também deve ser no formato de texto.
Request Body Params
| Campo | Tipo | Descrição |
|---|---|---|
document_number | string | CPF do militar. |
registration_code | string | Matrícula do militar. |
token | string | Senha do militar. |
Sincronous Response
Response Body
{
"portability_contracts_report_key": "3e41a8afb-e1b2-4215-8093-c4b5feab529c" ,
"status": "pending_search"
}
Por ser assíncrono, os dados da consulta da lista de contratos do tomador serão retornados via webhook.
Response Body Params
| Campo | Tipo | Descrição |
|---|---|---|
portability_contracts_report_key | string | Chave de identificação da consulta da lista de contratos. |
status | enum | Enumeradores de status de consulta da lista de contratos. |
Enumeradores de Status da Consulta da Lista de Contratos
| Enumerador | Descrição |
|---|---|
pending_search | Consulta da lista de contratos pendente de resposta do sistema do exército. |
processed | Consulta da lista de contratos processada. |
O status 'processed' refere-se apenas ao fato de que a requisição da consulta da lista de contratos foi efetivamente eviada e processada, porém não diz respeito ao sucesso ou à falha da mesma, tal informação estará no payload enviado via Webhook explicado à seguir.
Webhook da Consulta de Lista de Contratos
O webhook de sucesso será retornado da seguinte forma:
Body
{
"webhook_type": "airforce_payroll.portability_contracts_report.status_change",
"key": "3e41a8afb-e1b2-4215-8093-c4b5feab529c",
"event_datetime": "2023-05-28T08:43:29Z",
"status": "processed",
"data": {
"document_number": "45507529710",
"contracts" : [
{
"econsig_id": "2361529",
"consignatory": "BANCO XPTO",
"contract_date": "2022-01-03T15:01:57Z",
"installment_amount": 10.0,
"number_of_installments": 5,
"number_of_paid_installments": 1,
"contract_status":"in_progress"
},
{
"econsig_id": "2361529",
"consignatory": "BANCO XPTO",
"contract_date": "2022-01-03T15:01:57Z",
"installment_amount": 10.0,
"number_of_installments": 5,
"number_of_paid_installments": 1,
"contract_status":"in_progress"
}
]
}
}
Response Body Params
| Campo | Tipo | Descrição |
|---|---|---|
webhook_type | string | Tipo do webhook. |
key | uuid | Chave de referência do webhook. Neste caso, se trata da balance_key |
event_datetime | string | Data e hora do envio do webhook. |
status | string | Status da consulta de margem consignável. |
data | json | Campo que irá conter os dados referentes à consulta. |
data.document_number | string | CPF do militar. |
data.contracts | array | Lista dos contratos e de suas respectivas informações. |
data.contracts.econsig_id | string | Identificador único do contrato no sistema da Zetra. |
data.contracts.consignatory | string | Consignatária do contrato. |
data.contracts.installment_amount | float | Valor da parcela. |
data.contracts.number_of_installments | int | Número total de parcelas do contrato. |
data.contracts.number_of_paid_installments | int | Número de parcelas pagas até a vigência atual. |
data.contracts.contract_status | string | Situação do contrato. |
As possíveis Situações de Contrato estão mapeadas aqui.
| Situações do Contrato | contract_status |
|---|---|
| "Aguard. Confirmação" | waiting_confirmation |
| "Suspensa Pelo Gestor." | suspend_by_manager |
| "Aguard. Liquidação" | waiting_closure |
| "Aguard. Liquidação Portabilidade" | waiting_portability_closure |
| "Aguard. Margem" | waiting_balance |
| "Encerrado por Exclusão" | closed_by_exclusion |
| "Aguard. Deferimento" | waiting_approval |
| "Indeferida" | rejected |
| "Deferida" | accepted |
| "Em Andamento" | in_progress |
| "Suspensa" | suspended |
| "Cancelada" | canceled |
| "Liquidada" | settled |
| "Concluído" | completed |
Estas situações de contrato referem-se também às possíveis situações dos contratos internos.
Requisição de uma Consulta de Lista de Contratos
Caso o parceiro queira saber sobre o andamento de uma Consulta de Lista de Contratos, ele pode realizar uma requisição da mesma:
Recomendamos fortemente que utilizem o Webhook como referência nas informações da Lista de Contratos do tomador. Feature passível de remoção no futuro.
Request
Response
Body
{
"status": "processed",
"data": {
"document_number": "45507529710",
"contracts" : [
{
"econsig_id": "2361529",
"consignatory": "BANCO XPTO",
"contract_date": "2022-01-03T15:01:57Z",
"installment_amount": 10.0,
"number_of_installments": 5,
"number_of_paid_installments": 1,
"contract_status":"in_progress"
},
{
"econsig_id": "2361529",
"consignatory": "BANCO XPTO",
"contract_date": "2022-01-03T15:01:57Z",
"installment_amount": 10.0,
"number_of_installments": 5,
"number_of_paid_installments": 1,
"contract_status":"in_progress"
}
]
}
}
5. Simulação da Operação de Crédito Pessoal
Primeiramente é preciso calcular o valor da operação de Crédtio Pessoal necessária para quitar a operação de crédito original.
O valor do saldo devedor da dívida original deve ser informado no campo disbursed_amount.
A operação deve ser simulada com apenas 1 parcela, desembolso em D0 e a parcela deve ter seu vencimento para D+5 dias úteis, contas a partir da data de desembolso (pagamento) da operação.
Request
{
"borrower": {
"person_type": "natural"
},
"financial": {
"disbursed_amount": 80492.95,
"monthly_interest_rate": 0.03,
"credit_operation_type": "ccb",
"disbursement_date": "2023-03-17",
"issue_date": "2023-03-17",
"fine_configuration": {
"contract_fine_rate": 0,
"interest_base": "workdays",
"monthly_rate": 0
},
"interest_grace_period": 0,
"interest_type": "pre_price_days",
"number_of_installments": 1,
"principal_grace_period": 0,
"first_due_date_delay": 5
}
}