Fluxo Completo - Portabiidade + Refinanciamento
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.
Para iniciar o processo de Portabilidade + Refinanciamento - INSS, primeiramente é necessário coletar os dados do benefício para checagem da elegibilidade como também os dados da conta de pagamento do benefício. Os itens 1 e 2, descrevem o procedimento para consulta da lista de benefícios de um determinado beneficiário e procedimento para consulta dos dados do benefício.
1 - Consulta da lista de benefícios com formalização do Termo de Autorização realizada através do parceiro:
1.1. Titular do benefício é o assinante do Termo de Autorização.
Request
- ENDPOINT/social_security/benefits_request
- MÉTODOPOST
Payload:
payload.json
{
"document_number": "16514548091",
"authorization_term": {
"document_number": "16514548091",
"signature": {
"signer": {
"name": "Nome Devedor",
"phone": {
"number": "887577622",
"area_code": "19",
"country_code": "55"
},
"document_number": "16514548091"
},
"authentication_type": "opt_in",
"authenticity": {
"timestamp": "2023-12-05T21:04:06",
"ip_address": "200.223.171.82",
"fingerprint": {
"lat": "-44.00524157713981",
"long": "-19.807649431219804",
"name": "Nome Cliente",
"model": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",
"localeHashValue": "hash cliente"
},
"third_party_additional_data": {},
"session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"signed_object": {
"document_key": "cfbc8469-89ea-4a80-9f64-ba7b1566c68b"
}
}
}
}
1.2. Titular do benefício não é o assinante do Termo de Autorização (com representante legal).
Como o assinante do termo nesse caso é o representante legal, os dados que preenchem o objeto signer, são os dados do representante legal.
Request
- ENDPOINT/social_security/benefits_request
- MÉTODOPOST
Payload:
payload.json
{
"document_number": "16514548091",
"authorization_term": {
"document_number": "16514548091",
"legal_representative_document_number": "70957091060",
"signature": {
"signer": {
"name": "Nome Representante legal",
"phone": {
"number": "887577622",
"area_code": "19",
"country_code": "55"
},
"document_number": "70957091060"
},
"authentication_type": "opt_in",
"authenticity": {
"timestamp": "2023-12-05T21:04:06",
"ip_address": "200.223.171.82",
"fingerprint": {
"lat": "-44.00524157713981",
"long": "-19.807649431219804",
"name": "Nome Cliente",
"model": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",
"localeHashValue": "hash cliente"
},
"third_party_additional_data": {},
"session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"signed_object": {
"document_key": "cfbc8469-89ea-4a80-9f64-ba7b1566c68b"
}
}
}
}
Nos casos em que houver representante legal, é necessário preencher o campo "legal_representative_document_number" com o CPF do representante legal, e os dados do objeto "signer" devem ser preenchidos com os dados do mesmo.
"document_key": utilizar a GUID retornada no endpoint /upload
Ao invés da chave do documento pdf assinado no objeto “authorization_term.signed_object.document_key", também é possível enviar o texto corrido do Termo de Autorização, através do objeto "authorization_term.signed_object.raw_text".
Response
- MÉTODOPOST
- ENDPOINTsocial_security/benefits_request
body.json
{
"benefits_request_key": "c9d2aa83-006b-4753-92ad-64411a7aa700",
"document_number": "18028522041",
"status": "pending_authorization",
"authorization_term": {
"authorization_term_key": "5a7b6489-8a47-4b61-a85a-6986b058fda6",
"status": "signed"
},
"status_events": [
{
"status": "pending_authorization",
"event_date": "2023-12-22T16:12:50"
}
]
}
Em caso de sucesso na consulta da lista de benefícios:
Webhook
- WEBHOOK_TYPEsocial_security_benefits_request
- STATUSSuccess
Body:
body.json
{
"webhook": {
"key": "54cddd0f-b976-4266-91ea-90279bfb49a1",
"data": [
{
"grant_date": [
"2010-10-18"
],
"benefit_number": 2052711150,
"benefit_status": "elegible"
}
],
"status": "success",
"webhook_type": "social_security_benefits_request",
"event_datetime": "2023-12-22T13:20:44"
}
}
| Campo | Descrição | Valores |
|---|---|---|
| benefit_number | Número do beneficio | - |
| benefit_status | Status do beneficio | Enumeradores |
Em caso de falha na consulta da lista de benefícios:
Webhook
- WEBHOOK_TYPEsocial_security_benefits_request
- STATUSFailure
Body:
body.json
{
"webhook": {
"key": "0020653e-c3b0-4606-af31-2ea4a577a5ce",
"data": {
"enumerator": "inexistent_beneficiary",
"description": "no beneficiary found"
},
"status": "failure",
"webhook_type": "social_security_benefits_request",
"event_datetime": "2023-12-22T15:46:31"
}
}
Detalhamento de campos no webhook de falha
| Campo | Descrição | Valores |
|---|---|---|
| enumerator | Retorno mapeado do código Dataprev | Enumeradores |
Simulando cenários de sucesso e insucesso na consulta de benefício em Sandbox:
A simulação de cenários é baseado no primeiro dígito do CPF informado na operação.
11.1. Para CPFs iniciados com o número 1, será retornado uma resposta assíncrona de sucesso através do Webhook.
11.2. Para os demais CPFs, será retornado uma resposta assíncrona de erro, baseado no primeiro dígito do CPF digitado, de acordo com a tabela abaixo.
| Início do CPF | Enumerador | Descrição |
|---|---|---|
| 2 | inexistent_beneficiary | no beneficiary found |
Todos os CPFs que não tiverem um cenário mapeado para o primeiro dígito, receberão um webhook com um erro padrão de cenário de teste não mapeado.
| Enumerador | Descrição |
|---|---|
| mock_error | Informed document number is not a valid mock on test environment |
2 - Consulta de dados do benefício
2.1. Consulta de dados do benefício com o Termo de Autorização previamente enviado.
Request
- MÉTODOPOST
- ENDPOINT/social_security/balance_request
Payload:
payload.json
{
"document_number": "16514548091",
"benefit_number": 2052711150
}
Response
- MÉTODOPOST
- ENDPOINT/social_security/balance_request
Body:
body.json
{
"balance_request_key": "ffda1935-9cad-47df-b848-cd33c96024e4",
"document_number": "16514548091",
"status": "pending_authorization",
"authorization_term": {
"authorization_term_key": "19196811-366f-4422-a729-4d0aa552449b",
"status": "allowed"
},
"status_events": [
{
"status": "pending_authorization",
"event_date": "2023-12-22T16:18:18"
}
]
}
2.2. Consulta de dados do benefício com envio do Termo de Autorização.
Request
- MÉTODOPOST
- ENDPOINT/social_security/balance_request
Payload:
payload.json
{
"document_number": "14950479032",
"benefit_number": 22255220,
"authorization_term": {
"document_number": "14950479032",
"legal_representative_document_number": "32866210050", // CPF do representante legal (caso aplicável)
"signature": {
"signer": {
"name": "Nome Cliente",
"phone": {
"number": "887577622",
"area_code": "19",
"country_code": "55"
},
"document_number": "14950479032"
},
"authentication_type": "opt_in",
"authenticity": {
"timestamp": "2023-12-05T21:04:06",
"ip_address": "200.223.171.82",
"fingerprint": {
"lat": "-44.00524157713981",
"long": "-19.807649431219804",
"name": "Nome Cliente",
"model": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",
"localeHashValue": "hash cliente"
},
"third_party_additional_data": {},
"session_id": "b75c7ac2-3be3-41b6-b769-4d982a5824a2"
},
"signed_object": {
"document_key": "cfbc8469-89ea-4a80-9f64-ba7b1566c68b"
}
}
}
}
Nos casos em que houver representante legal, é necessário preencher o campo "legal_representative_document_number" com o CPF do representante legal, e os dados do objeto "signer" devem ser preenchidos com os dados do mesmo.
Response
-
MÉTODOPOST
-
ENDPOINT/social_security/balance_request
-
Body:
body.json
{
"balance_request_key": "ffda1935-9cad-47df-b848-cd33c96024e4",
"document_number": "14950479032",
"status": "pending_authorization",
"authorization_term": {
"authorization_term_key": "19196811-366f-4422-a729-4d0aa552449b",
"status": "signed"
},
"status_events": [
{
"status": "pending_authorization",
"event_date": "2023-12-22T16:18:18"
}
]
}
Em caso de sucesso na consulta de dados do benefício
Webhook
- WEBHOOK_TYPE/social_security/balance_request
- STATUSSuccess
Body:
body.json
{
"webhook": {
"key": "ffda1935-9cad-47df-b848-cd33c96024e4",
"data": {
"name": "IVOLANDO MIRANDA",
"state": "SP",
"alimony": "not_payer",
"birth_date": "07021961",
"grant_date": "2022-09-02",
"credit_type": "checking_account",
"block_type": "not_blocked",
"benefit_card": {
"limit": 2083.2,
"balance": 0
},
"benefit_number": "22255220",
"benefit_status": "elegible",
"payroll_card": {
"limit": 2083.2,
"balance": 0
},
"assistance_type": "retirement_by_age",
"document_number": "14950479032",
"benefit_end_date": "2020-12-01",
"consigned_credit": {
"balance": 1000
},
"benefit_situation": "active",
"max_total_balance": 2000,
"used_total_balance": 1000,
"politically_exposed": {
"type": "politically_exposed_level_1",
"is_politically_exposed": true
},
"has_power_of_attorney": false,
"available_total_balance": 1000,
"has_judicial_concession": false,
"number_of_portabilities": 0,
"disbursement_bank_account": {
"bank_code": "341",
"account_digit": "6",
"account_branch": "0155",
"account_number": "000059923"
},
"has_entity_representation": false,
"social_benefit_max_balance": 2000,
"social_benefit_used_balance": 1000,
"benefit_quota_expiration_date": null,
"number_of_active_reservations": 0,
"number_of_suspended_reservations": 0,
"number_of_refinanced_reservations": 0,
"number_of_active_suspended_reservations": 3
},
"status": "success",
"webhook_type": "social_security_balance_request",
"event_datetime": "2023-12-22T16:18:21"
}
}
Detalhamento de campos no webhook de sucesso
| Campo | Descrição | Valores |
|---|---|---|
| assistance_type | Tipo do benefício | Enumeradores |
| benefit_status | Status do beneficio | Enumeradores |
| has_entity_representation | Possui entidade de representação (não permite averbação) | True ou False |
| alimony_code | Classificador da Pensão alimentícia | not_payer, payer, benefit |
| has_judicial_concession | Benefício concedido por liminar | True ou False |
| has_power_of_attorney | Possui procurador? | True ou False |
| credit_type | Tipo de crédito - recebimento do benefício | Magnetic_card, checking_account |
| benefit_situation | Situação do benefício | Enumeradores |
| used_total_balance | Valor total comprometido em averbações de empréstimos, reservado para portabilidade, refinanciamento, alterações, RMC e RCC | Numérico |
| max_total_balance | Valor comprometido possível para a respectiva espécie do benefício | Numérico |
| available_total_balance | Valor total disponível para empréstimo, somando todas as modalidades (diferença entre max_total_balance e used_total_balance) | Numérico |
| benefit_quota_expiration_date | Data de extinção do benefício. A informação está disponível apenas para alguns benefícios de pensão por morte. | String ou nulo |
| block_type | Tipo de bloqueio do benefício | Enumeradores |
| politically_exposed.type | Pessoa politicamente exposta | Enumeradores |
| is_politically_exposed | Pessoa politicamente exposta | True ou False |
Em caso de falha na consulta da lista de benefícios
Webhook
- WEBHOOK_TYPE/social_security/balance_request
- STATUSFailure
Body:
body.json
{
"webhook": {
"key": "37a14593-b934-457c-8cf6-e51f184b1f1c",
"data": {
"enumerator": "inexistent_beneficiary",
"description": "no beneficiary found"
},
"status": "failure",
"webhook_type": "social_security_balance_request",
"event_datetime": "2023-12-22T16:22:29"
}
}
Detalhamento de campos no webhook de falha
| Campo | Descrição | Valores |
|---|---|---|
| enumerator | Retorno mapeado do código Dataprev | Enumeradores |
Simulando cenários de sucesso e insucesso na consulta de dados do benefício em Sandbox:
A simulação de cenários é baseado no primeiro dígito do CPF informado na operação.
11.1. Para CPFs iniciados com o número 1, será retornado uma resposta assíncrona de sucesso através do Webhook.
11.2. Para os demais CPFs, será retornado uma resposta assíncrona de erro, baseado no primeiro dígito do CPF digitado, de acordo com a tabela abaixo.
| Início do CPF | Enumerador | Descrição |
|---|---|---|
| 2 | inexistent_beneficiary | no beneficiary found |
Todos os CPFs que não tiverem um cenário mapeado para o primeiro dígito, receberão um webhook com um erro padrão de cenário de teste não mapeado.
| Enumerador | Descrição |
|---|---|
| mock_error | Informed document number is not a valid mock on test environment |