# QI Tech — Lending-as-a-Service

Documentação da QI Tech em texto corrido, para colar em um LLM.
Fonte: https://docs.qitech.com.br
73 página(s).

Índice:
- Atualizar cessionário do contrato de crédito (/documentation/emissao_de_divida/atualizar_cessionario_047911bb-d3fb-48fe-88fd-aebdeb7e11ad)
- Atualizar informações das partes relacionadas ao contrato de crédito (/documentation/emissao_de_divida/atualizar_dados_da_parte_relacionada)
- Autorizar desembolso (/documentation/emissao_de_divida/autorizar_desembolso)
- Cancelar dívida antes de desembolsar (/documentation/emissao_de_divida/cancelamento/cancelar_divida_antes_de_desembolsar)
- Cancelar permanentemente (/documentation/emissao_de_divida/cancelamento/cancelar_permanentemente)
- Emissão de pix qr code de devolução (/documentation/emissao_de_divida/cancelamento/desistencia/cancelamento_de_divida_em_ate_sete_dias_apos_o_desembolso)
- Consulta de pix qr code de devolução (/documentation/emissao_de_divida/cancelamento/desistencia/consulta_de_pix_qr_code_de_devolucao)
- Introdução (/documentation/emissao_de_divida/cancelamento/desistencia/introducao)
- Introdução (/documentation/emissao_de_divida/cancelamento/introducao)
- Catálogo de Erros - Lending-as-a-Service (/documentation/emissao_de_divida/catalogo_de_erros_laas)
- Configurar data de desembolso (/documentation/emissao_de_divida/configurar_data_de_desembolso)
- Consulta de dívida (/documentation/emissao_de_divida/consulta_de_divida)
- Consulta de dívida por Contract Number (/documentation/emissao_de_divida/consulta_por_contract_number)
- Consulta de dívida por Credit Operation Key (/documentation/emissao_de_divida/consulta_por_credit_operation_key)
- Consulta de dívida por Requester Identifier Key (/documentation/emissao_de_divida/consulta_por_requester_identifier_key)
- Desembolso da operação (/documentation/emissao_de_divida/desembolso_da_operacao)
- Emissão de dívida PF (/documentation/emissao_de_divida/emissao/emissao_de_divida_pf)
- Emissão de dívida PJ (/documentation/emissao_de_divida/emissao/emissao_de_divida_pj)
- Exemplos de payload de desembolso (/documentation/emissao_de_divida/emissao/exemplo_payloads_desembolso)
- Assinaturas alternativas (/documentation/emissao_de_divida/formalizacao/assinatura_de_contrato)
- Assinatura de contrato com OPT-IN (/documentation/emissao_de_divida/formalizacao/assinatura_opt_in)
- Envio do PDF assinado (/documentation/emissao_de_divida/formalizacao/assinatura_pdf)
- Assinatura de contrato com selfie (/documentation/emissao_de_divida/formalizacao/assinatura_selfie)
- Assinatura de contrato (/documentation/emissao_de_divida/formalizacao/introducao_formalizacao)
- Gerar Boleto ou PIX para uma Parcela (/documentation/emissao_de_divida/gerar_boleto_ou_pix_para_uma_parcela)
- Introdução (/documentation/emissao_de_divida/introducao)
- Monitoramento do correspondente bancário (/documentation/emissao_de_divida/mcb)
- Metadata (/documentation/emissao_de_divida/metadata)
- Não me perturbe (/documentation/emissao_de_divida/nao_me_perturbe)
- Introdução (/documentation/emissao_de_divida/reapresentacao_de_conta_bancaria)
- Reenviar documentos das partes relacionadas ao contrato de crédito (/documentation/emissao_de_divida/reenviar_documentos_das_partes_relacionadas)
- Ações pós-desembolso (/documentation/emissao_de_divida/reprocessar_acao_pos_desembolso)
- Alterar Dados de Desembolso (/documentation/emissao_de_divida/reprocessar_multiplas_datas/trocar_conta)
- Alterar Data de Desembolso (/documentation/emissao_de_divida/reprocessar_multiplas_datas/trocar_data)
- Seguro (/documentation/emissao_de_divida/seguro)
- Simulação de dívida antigo (/documentation/emissao_de_divida/simulacao_de_divida_antigo)
- Simulação de dívida novo (/documentation/emissao_de_divida/simulacao_de_divida_novo)
- Simulando erros em Sandbox (/documentation/emissao_de_divida/simulando_erros)
- Possíveis status de uma dívida (/documentation/emissao_de_divida/status_de_uma_divida)
- Consulta de instituições financeiras (/documentation/lista_de_instituicoes_financeiras/consulta_de_instituicoes_financeiras)
- Configuração de notificação (/documentation/notificacoes/configuracao_de_notificacao)
- Configuração de template (/documentation/notificacoes/configuracao_template)
- Gerenciamento de Notificações Personalizadas (/documentation/notificacoes/introducao)
- Reenvio de Notificações (/documentation/notificacoes/reenvio_de_notificacoes)
- Templates (/documentation/notificacoes/template)
- Eventos (/documentation/notificacoes/tipos_de_evento)
- Configurando Webhooks (/documentation/primeiros_passos/configurando_webhooks)
- Configurar IP de Integração (/documentation/primeiros_passos/configurar_ip_de_integracao)
- Introdução (/documentation/primeiros_passos/inicio)
- Endpoints de teste (/documentation/primeiros_passos/teste_de_autenticacao/endpoints_de_teste)
- Possíveis erros (/documentation/primeiros_passos/teste_de_autenticacao/possiveis_erros)
- Exemplo completo de teste de autenticação (/documentation/primeiros_passos/teste_de_autenticacao/teste_de_autenticacao_completo)
- Teste de autenticação (/documentation/primeiros_passos/teste_de_autenticacao/teste_de_autenticacao_v2)
- Validação de Webhooks (/documentation/primeiros_passos/teste_de_autenticacao/webhook_v2)
- Troca de chaves (/documentation/primeiros_passos/troca_de_chaves)
- Consulta de valor presente de uma operação (/documentation/refinanciamento/consulta_de_valor_presente_de_uma_operacao)
- introducao (/documentation/refinanciamento/introducao)
- Simulando um refinanciamento (/documentation/refinanciamento/simulando_refinanciamento)
- Criar um refinanciamento (/documentation/refinanciamento/solicitando_refinanciamento)
- Cancelar uma renegociação (/documentation/renegociacao/cancelar_uma_renegociacao)
- Consultar uma renegociação (/documentation/renegociacao/consultar_uma_renegociacao)
- Criar uma renegociação (/documentation/renegociacao/criacao_de_uma_renegociacao)
- Listar renegociações (/documentation/renegociacao/listar_renegociacoes)
- Pagamento de renegociação (/documentation/renegociacao/pagamento_renegociacao)
- Renegociação em lote (/documentation/renegociacao/renegociacao_em_lote)
- Simulação de uma renegociação (/documentation/renegociacao/simulacao_de_uma_renegociacao)
- Consulta de documentos (/documentation/upload_de_documentos/consulta_documents)
- Upload de documentos (/documentation/upload_de_documentos/)
- Webhooks de dívida (/documentation/webhooks/dividas)
- Webhooks de gestão de risco (/documentation/webhooks/gestao_de_risco)
- Webhooks de indevidos (/documentation/webhooks/indevidos)
- Webhooks de pagamento de parcelas (/documentation/webhooks/pagamento_de_parcela)
- Webhooks de parcelas (/documentation/webhooks/parcelas)

---

# Atualizar cessionário do contrato de crédito

URL: /documentation/emissao_de_divida/atualizar_cessionario_047911bb-d3fb-48fe-88fd-aebdeb7e11ad

    ### Importante:

    Para atualização de cessionário, os seguintes requisitos devem ser atendidos:
    - a operação de crédito não pode estar cancelada;
    - a operação de crédito não pode estar no meio de um processo de cessão;
    - a operação de crédito não pode estar cedida;
    - deve existir uma configuração de cessão com o novo comprador.

## Request

ENDPOINT /debt/ DEBT-KEY /purchaser
MÉTODO PATCH

**Request Body**

```json
{
  "purchaser_document_number": "01234567890001"
}
```

### Path Params

| Campo | Tipo | Descrição |
|---|---|---|
| `debt_key` * | string | debt_key da operação. |

## Response

STATUS 201

**Response Body**

```json
{}
```

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Credit Operation is already in assignment process for changing the purchaser.\", \"translation\": \"A opera\u00e7\u00e3o de cr\u00e9dito est\u00e1 em processo de cess\u00e3o e n\u00e3o pode ter seu comprador alterado.\", \"extra_fields\": {}, \"code\": \"COP000376\"}"
}
```

---

# Atualizar informações das partes relacionadas ao contrato de crédito

URL: /documentation/emissao_de_divida/atualizar_dados_da_parte_relacionada

## Request

ENDPOINT /debt/ DEBT-KEY /related_party/ RELATED-PARTY-KEY
MÉTODO PATCH

### Pessoa Física
**Request Body**

```json
{
  "name": "Teste teste",
  "email": "teste@teste.com",
  "address": {
    "street": "Rua teste",
    "neighborhood": "Bairro teste",
    "number": "123",
    "postal_code": "09725540",
    "city": "S\u00e3o Caetano do sul",
    "state": "SP"
  },
  "phone": {
    "country_code": "55",
    "area_code": "11",
    "number": "41234123"
  },
  "mother_name": "M\u00e3e Teste",
  "document_identification_number": "1234567",
  "nationality": "Brasileiro",
  "marital_status": "single",
  "profession": "Diretor Executivo",
  "birth_date": "1999-01-01",
  "document_identification_date": "2015-01-01",
  "document_identification_type": "cnh",
  "gender": "female"
}
```

### Pessoa Jurídica
**Request Body**

```json
{
	"name": "Teste teste",
	"email": "teste@teste.com",
	"address": {
		"street": "Rua teste",
		"neighborhood": "Bairro teste",
		"number": "123",
		"postal_code": "09725540",
		"city": "S\u00e3o Caetano do sul",
		"state": "SP"
	},
	"phone": {
		"country_code": "55",
		"area_code": "11",
		"number": "41234123"
	},
	"trading_name": "Nome fantasia teste",
	"foundation_date": "2020-01-01",
	"simples_nacional_participant": false
}
```

### Path Params

| Campo | Tipo | Descrição |
|---|---|---|
| `debt_key` * | string | debt_key da operação. |
| `related_party_key` * | string |  key da parte relacionada que os documentos serão enviados. |

## Response

STATUS 201

**Response Body**

```json
{
	"status": "waiting_signature",
	"data": {
		"annual_cet": 26.0802,
		"cet": 1.95,
		"installments": [**],
		"disbursed_issue_amount": 2209.06,
		"contract_fees": [{
			"fee_amount": 22.71,
			"fee_type": "spread"
		}],
		"prefixed_interest_rate": {
			"created_at": "2023-07-21T16:30:07",
			"interest_base": "calendar_days_365",
			"annual_rate": 0.23872053,
			"monthly_rate": 0.018,
			"daily_rate": 0.00058669
		},
		"contract_fee_amount": 22.71,
		"requester_identifier_key": "af0e8a5d-650e-4348-b955-a424307c44df",
		"iof_charge_method": "financed",
		"external_contract_fee_amount": 0,
		"borrower": {
			"document_number": "04062377942",
			"related_party_key": "c3b213ee-897a-4e42-9697-6c0b56fb0020",
			"name": "TESTE TESTE"
		},
		"additional_iof": 8.629534,
		"entry": null,
		"external_contract_fees": [**],
		"collaterals": [**],
		"total_pre_fixed_amount": 1088.47822388,
		"contract": {
			"urls": [
				"https://storage.googleapis.com/live-doc-api/documents/a0e3678a-9d48-47e8-8e00-ed9435713588/teste.pdf"
			],
			"number": "0008938245/TT"
		},
		"net_external_contract_fee_amount": 0,
		"number_of_installments": 8,
		"total_iof": 61.87,
		"base_iof": 53.2421439,
		"issue_amount": 2270.93,
		"assignment_amount": 2293.64
	},
	"event_datetime": "2023-07-21 16:30:11",
	"webhook_type": "debt",
	"key": "01d62579-be1e-482f-b766-069786b44344"
}
```

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Collateral type social_security is not allowed for update related party.\", \"translation\": \"O tipo de garantia social_security n\u00e3o permite atualizar a parte relacionada.\", \"extra_fields\": {}, \"code\": \"COP000328\"}"
}
```

---

# Autorizar desembolso

URL: /documentation/emissao_de_divida/autorizar_desembolso

## Request

ENDPOINT /debt/ DEBT-KEY /allow_disbursement
MÉTODO POST

**Request Body**

```json
{
   "allow_disbursement": true
}

```

### Path Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `debt_key` *(obrigatório)* | string | ID da divida emitida. |

### Body Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `allow_disbursement` | string | Indicação de autorização para desembolso. |

## Response

STATUS 201

**Request Body**

```json
{
  "additional_iof": 45.65,
  "credit_operation_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "contract_number": "0000192840/AMT",
  "annual_cet": 226.17,
  "assigned": false,
  "assigned_at": null,
  "assignment_amount": 6844.51,
  "issue_amount": 6844.51,
  "disbursed_issue_amount": 6594,
  "final_disbursement_amount": 6594,
  "base_iof": 204.86,
  "calculus_correction": null,
  "cet": 10.35,
  "collateral_constituted": true,
  "collateral_type": null,
  "contract_fee_amount": 0,
  "external_contract_fee_amount": 0,
  "net_external_contract_fee_amount": 0,
  "creditor_bank_account_key": null,
  "disbursement_date": "2026-01-01",
  "disbursement_start_date": "2026-01-01",
  "disbursement_end_date": "2026-01-01",
  "first_due_date": "2026-12-10",
  "number_of_installments": 4,
  "interest_grace_period": 0,
  "interest_payment_month_period": 1,
  "interest_subsidy_amount": 0,
  "interest_subsidy_percentage": 0,
  "iof_charge_method": "financed",
  "ipoc_code": "3240250202021123456789090000542149/T",
  "issue_date": "2026-02-02",
  "issuer_document_number": "12345678909",
  "issuer_name": "teste",
  "origin_key": "8bf10bc5-345e-4d4c-b038-650bc7277c6e",
  "principal_amortization_month_period": 1,
  "principal_grace_period": 0,
  "purchaser_document_number": "32402502000135",
  "requester_key": "783ea550-9e70-4482-bcae-127a913b5b1e",
  "requester_identifier_key": "8bf10bc5-345e-4d4c-b038-650bc7277c6e",
  "settlement_bank_account_key": null,
  "share_quantity": 7,
  "third_party_account_key": "5d068423-6094-49e4-b15b-7740038295a8",
  "total_iof": 250.51,
  "original_total_iof": null,
  "facial_biometrics_enabled": false,
  "selfie_enabled": false,
  "tax_exempt_amount": 0,
  "is_allowed_to_disburse": true,
  "is_refinancing": false,
  "is_portability": false,
  "credit_rating": null,
  "first_due_date_delay": null,
  "operation_extra_fields": {},
  "if_code": null,
  "disbursement_key": "f754470c-e979-45c7-8956-bbd6960823f3",
  "created_at": "2026-02-02T20:00:12",
  "is_amendment": false,
  "all_day_disbursement": true,
  "disbursement_inelegibility_reason": null,
  "disbursement_inelegibility_reason_issued": null,
  "portability_amount": 0,
  "disburse_before_assign": true,
  "requester_name": "Requester Teste",
  "disbursed_at": null,
  "assignment_key": null,
  "isin_number": null,
  "extra_fields": {
  },
  "financial_index": null,
  "payroll_data": null,
  "kyc": null,
  "entry": null,
  "amendment_credit_operation": null,
  "disbursement_confirmed_at": null,
  "portability_origin_contract": null,
  "credit_operation_status": {
    "translation_path": "co.CreditOperationStatus.waiting_disbursement",
    "translation_ptbr": "Aguardando Desembolso",
    "enumerator": "waiting_disbursement"
  },
  "credit_operation_type": {
    "translation_path": "co.CreditOperationType.ccb",
    "enumerator": "ccb"
  },
  "operation_type": {
    "translation_path": "co.OperationType.structured_operation",
    "enumerator": "structured_operation"
  },
  "custodian": {
    "translation_path": "co.Custodian.qi_scd",
    "enumerator": "qi_scd"
  },
  "payment_and_settlement_agent": {
    "enumerator": "qi_scd",
    "translation_path": "co.PaymentAndSettlementAgent.qi_scd"
  },
  "interest_type": {
    "translation_path": "co.InterestType.pre_price_days",
    "enumerator": "pre_price_days"
  },
  "document_certifier": {
    "translation_path": "co.DocumentCertifier.qi_sign",
    "enumerator": "qi_sign"
  },
  "assignment_status": {
    "enumerator": "not_assigned"
  },
  "origin_type": {
    "enumerator": "lego-api",
    "translation_path": "co.OriginType.lego-api"
  },
  "payment_type": {
    "translation_path": "co.PaymentType.unmonitored",
    "enumerator": "unmonitored"
  },
  "signature_method": {
    "enumerator": "email"
  },
  "central_depository": null,
  "registration_institution": {
    "translation_path": "co.RegistrationInstitution.qi_scd",
    "enumerator": "qi_scd"
  },
  "tax_configuration": {
    "iof_additional_rate": 0.0038,
    "iof_rate": 0.000082
  },
  "prefixed_interest_rate": {
    "annual_rate": 2.1384283767,
    "daily_rate": 0.0031383999,
    "interest_base": {
      "translation_path": "co.InterestBase.calendar_days_365",
      "enumerator": "calendar_days_365",
      "year_days": 365
    },
    "monthly_rate": 0.1,
    "created_at": "2026-02-02T20:00:12"
  },
  "post_fixed_interest_rate": null,
  "original_prefixed_interest_rate": {
    "annual_rate": 2.13842838,
    "daily_rate": 0.0031384,
    "interest_base": {
      "translation_path": "co.InterestBase.calendar_days_365",
      "enumerator": "calendar_days_365",
      "year_days": 365
    },
    "monthly_rate": 0.1,
    "created_at": "2026-02-02T20:00:12"
  },
  "fine_configuration": {
    "contract_fine_rate": 0,
    "fine_delay_rate": {
      "annual_rate": 0,
      "daily_rate": 0,
      "interest_base": {
        "translation_path": "co.InterestBase.calendar_days",
        "enumerator": "calendar_days",
        "year_days": 360
      },
      "monthly_rate": 0,
      "created_at": "2026-02-02T20:00:12"
    }
  },
  "early_settlement_configuration": {
    "early_settlement_configuration_type": {
      "enumerator": "fixed_rate",
      "translation_path": "co.EarlySettlementConfigurationType.fixed_rate"
    },
    "effective_end_date": null,
    "fixed_interest_rate": 0
  },
  "resource_source_account": {
    "enumerator": "third_party",
    "translation_path": "co.ResourceSourceAccount.third_party"
  },
  "endorsement": null,
  "rebate_account": null,
  "contract_fees": [],
  "external_contract_fees": [],
  "disbursement_account": [
    {
      "account_branch": "2874",
      "account_digit": "0",
      "account_number": "99581339",
      "account_type": "checking_account",
      "amount_receivable": null,
      "digitable_line": null,
      "disbursement_account_key": "bfe5dd10-2fb4-41a8-b1e1-02811b2266f6",
      "disbursement_type": "pix",
      "document_number": "12345678909",
      "end_to_end_id": null,
      "financial_institutions": {
        "code_number": 1,
        "is_pix_participant": true,
        "is_active": true,
        "name": "BANCO DO BRASIL S.A.",
        "ispb": 0
      },
      "financial_institutions_code_number": 1,
      "is_pix_disbursement": true,
      "ispb": "0",
      "name": "Name",
      "percentage_receivable": 100,
      "pix_key": null,
      "pix_transfer_key": "4db1ab83-4305-46fa-8373-0dd5ee4abfe9",
      "pix_type": "manual",
      "qr_code_key": null,
      "qr_code_url": null,
      "receipt_document_key": null,
      "receipt_url": null,
      "retry_counter": 0,
      "retry_vector": null,
      "transaction_key": null,
      "webhook_key": null
    }
  ],
  "disbursement_options": [
    {
      "additional_iof": 45.65,
      "annual_cet": 226.17,
      "assignment_amount": 6844.51,
      "base_iof": 204.86,
      "calculus_correction": null,
      "cet": 10.35,
      "contract_fee_amount": 0,
      "contract_fees": [],
      "disbursed_issue_amount": 6594,
      "disbursement_date": "2026-02-02",
      "external_contract_fee_amount": 0,
      "external_contract_fees": [],
      "final_disbursement_amount": 6594,
      "first_due_date": "2026-12-10",
      "installments": [
        {
          "additional_costs": [],
          "business_due_date": "2026-12-10",
          "calendar_days": 311,
          "due_date": "2026-12-10",
          "due_interest": 0,
          "due_principal": 6844.51,
          "fine_amount": null,
          "has_interest": true,
          "installment_number": 1,
          "post_fixed_amount": 0,
          "pre_fixed_amount": 5204.15,
          "principal_amortization_amount": 0,
          "tax_amount": 0,
          "total_amount": 5204.15,
          "workdays": 213
        },
        {
          "additional_costs": [],
          "business_due_date": "2027-01-11",
          "calendar_days": 31,
          "due_date": "2027-01-10",
          "due_interest": 6088.45962499,
          "due_principal": 6844.51,
          "fine_amount": null,
          "has_interest": true,
          "installment_number": 2,
          "post_fixed_amount": 0,
          "pre_fixed_amount": 5204.15,
          "principal_amortization_amount": 0,
          "tax_amount": 0,
          "total_amount": 5204.15,
          "workdays": 19
        },
        {
          "additional_costs": [],
          "business_due_date": "2027-02-10",
          "calendar_days": 31,
          "due_date": "2027-02-10",
          "due_interest": 2203.63074342,
          "due_principal": 6844.51,
          "fine_amount": null,
          "has_interest": true,
          "installment_number": 3,
          "post_fixed_amount": 0,
          "pre_fixed_amount": 3126.65078208,
          "principal_amortization_amount": 2077.49921792,
          "tax_amount": 62.17955159,
          "total_amount": 5204.15,
          "workdays": 21
        },
        {
          "additional_costs": [],
          "business_due_date": "2027-03-10",
          "calendar_days": 28,
          "due_date": "2027-03-10",
          "due_interest": 0,
          "due_principal": 4767.01078208,
          "fine_amount": null,
          "has_interest": true,
          "installment_number": 4,
          "post_fixed_amount": 0,
          "pre_fixed_amount": 437.13921792,
          "principal_amortization_amount": 4767.01078208,
          "tax_amount": 142.67663271,
          "total_amount": 5204.15,
          "workdays": 20
        }
      ],
      "interest_subsidy_amount": 0,
      "issue_amount": 6844.51,
      "net_external_contract_fee_amount": 0,
      "prefixed_interest_rate": {
        "annual_rate": 2.1384283767,
        "daily_rate": 0.0031383999,
        "interest_base": {
          "translation_path": "co.InterestBase.calendar_days_365",
          "enumerator": "calendar_days_365",
          "year_days": 365
        },
        "monthly_rate": 0.1,
        "created_at": "2026-02-02T20:00:12"
      },
      "refinanced_credit_operations": [],
      "share_quantity": 7,
      "tax_exempt_amount": 0,
      "total_iof": 250.51
    }
  ],
  "installments": [
    {
      "additional_costs": [],
      "business_due_date": "2026-12-10",
      "calendar_days": 311,
      "due_date": "2026-12-10",
      "due_interest": 0,
      "due_principal": 6844.51,
      "fine_amount": null,
      "has_interest": true,
      "installment_number": 1,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 5204.15,
      "principal_amortization_amount": 0,
      "tax_amount": 0,
      "total_amount": 5204.15,
      "workdays": 213,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "2db9f3af-a8e2-4398-b0d8-5e26f9f8f710",
      "installment_status": {
        "enumerator": "created",
        "translation_path": "co.InstallmentStatus.created"
      },
      "installment_type": {
        "enumerator": "principal",
        "translation_path": "co.InstallmentType.principal"
      },
      "payment_type": {
        "translation_path": "co.PaymentType.unmonitored",
        "enumerator": "unmonitored"
      },
      "original_due_principal": 6844.51,
      "original_pre_fixed_amount": 5204.15,
      "original_principal_amortization_amount": 0,
      "paid_amount": 0,
      "paid_at": null,
      "original_total_amount": 5204.15,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": null,
      "total_paid_amount": 0,
      "updated_at": null,
      "cetip_settlements": [],
      "events": [],
      "installment_history": [],
      "installment_payment": []
    },
    {
      "additional_costs": [],
      "business_due_date": "2027-01-11",
      "calendar_days": 31,
      "due_date": "2027-01-10",
      "due_interest": 6088.45962499,
      "due_principal": 6844.51,
      "fine_amount": null,
      "has_interest": true,
      "installment_number": 2,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 5204.15,
      "principal_amortization_amount": 0,
      "tax_amount": 0,
      "total_amount": 5204.15,
      "workdays": 19,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "89d1e77c-c9df-4716-a535-78f1d329ee49",
      "installment_status": {
        "enumerator": "created",
        "translation_path": "co.InstallmentStatus.created"
      },
      "installment_type": {
        "enumerator": "principal",
        "translation_path": "co.InstallmentType.principal"
      },
      "payment_type": {
        "translation_path": "co.PaymentType.unmonitored",
        "enumerator": "unmonitored"
      },
      "original_due_principal": 6844.51,
      "original_pre_fixed_amount": 5204.15,
      "original_principal_amortization_amount": 0,
      "paid_amount": 0,
      "paid_at": null,
      "original_total_amount": 5204.15,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": null,
      "total_paid_amount": 0,
      "updated_at": null,
      "cetip_settlements": [],
      "events": [],
      "installment_history": [],
      "installment_payment": []
    },
    {
      "additional_costs": [],
      "business_due_date": "2027-02-10",
      "calendar_days": 31,
      "due_date": "2027-02-10",
      "due_interest": 2203.63074342,
      "due_principal": 6844.51,
      "fine_amount": null,
      "has_interest": true,
      "installment_number": 3,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 3126.65078208,
      "principal_amortization_amount": 2077.49921792,
      "tax_amount": 62.17955159,
      "total_amount": 5204.15,
      "workdays": 21,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "60c36ccb-ee86-4ab2-a8d6-bb84d2a35ad3",
      "installment_status": {
        "enumerator": "created",
        "translation_path": "co.InstallmentStatus.created"
      },
      "installment_type": {
        "enumerator": "principal",
        "translation_path": "co.InstallmentType.principal"
      },
      "payment_type": {
        "translation_path": "co.PaymentType.unmonitored",
        "enumerator": "unmonitored"
      },
      "original_due_principal": 6844.51,
      "original_pre_fixed_amount": 3126.65078208,
      "original_principal_amortization_amount": 2077.49921792,
      "paid_amount": 0,
      "paid_at": null,
      "original_total_amount": 5204.15,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": null,
      "total_paid_amount": 0,
      "updated_at": null,
      "cetip_settlements": [],
      "events": [],
      "installment_history": [],
      "installment_payment": []
    },
    {
      "additional_costs": [],
      "business_due_date": "2027-03-10",
      "calendar_days": 28,
      "due_date": "2027-03-10",
      "due_interest": 0,
      "due_principal": 4767.01078208,
      "fine_amount": null,
      "has_interest": true,
      "installment_number": 4,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 437.13921792,
      "principal_amortization_amount": 4767.01078208,
      "tax_amount": 142.67663271,
      "total_amount": 5204.15,
      "workdays": 20,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "8c4c214c-b360-446b-8cf7-8b2cde065491",
      "installment_status": {
        "enumerator": "created",
        "translation_path": "co.InstallmentStatus.created"
      },
      "installment_type": {
        "enumerator": "principal",
        "translation_path": "co.InstallmentType.principal"
      },
      "payment_type": {
        "translation_path": "co.PaymentType.unmonitored",
        "enumerator": "unmonitored"
      },
      "original_due_principal": 4767.01078208,
      "original_pre_fixed_amount": 437.13921792,
      "original_principal_amortization_amount": 4767.01078208,
      "paid_amount": 0,
      "paid_at": null,
      "original_total_amount": 5204.15,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": null,
      "total_paid_amount": 0,
      "updated_at": null,
      "cetip_settlements": [],
      "events": [],
      "installment_history": [],
      "installment_payment": []
    }
  ],
  "collaterals": [],
  "events": [],
  "cancel_reason": {},
  "after_disbursement_actions": [],
  "cetip_assignments": [],
  "cetip_settlements": [],
  "post_fixed_interest_base": {
    "translation_path": "co.InterestBase.workdays",
    "enumerator": "workdays",
    "year_days": 252
  },
  "disbursement_callback": null,
  "attached_document_list": [
    {
      "document_key": "7546e337-4bcf-4e36-b4c5-fb67b462ed1c",
      "document_type": {
        "enumerator": "ccb_pre_price_days",
        "translation_path": "co.DocumentType.ccb_pre_price_days"
      },
      "document_url": {URL},
      "related_party_key": null,
      "signature_data": null,
      "signature_required": true,
      "signature_url": null,
      "signed": false
    }
  ],
  "related_party_list": [
    {
      "address": {
        "street": "Rua Teste",
        "neighborhood": "",
        "number": "1",
        "postal_code": "99999999",
        "city": "São Paulo",
        "state": "SP",
        "complement": ""
      },
      "attached_document_list": [],
      "birth_date": "1999-01-01",
      "birth_place": null,
      "cnae_code": null,
      "company_document_number": null,
      "created_at": "2026-02-02T20:00:12",
      "document_identification_date": null,
      "document_identification_number": null,
      "document_identification_type": null,
      "email": "alan.turing@email.com",
      "foundation_date": null,
      "gender": null,
      "income": null,
      "individual_document_number": "12345678909",
      "is_pep": false,
      "marital_status": null,
      "mother_name": "Mother Name",
      "name": "Alan Mathison Turing",
      "nationality": null,
      "person_type": "natural",
      "phone": {
        "phone_key": "7d03058a-b55f-425b-a71a-d729216c6abe",
        "country_code": "55",
        "area_code": "11",
        "number": "999999999",
        "phone_type": null
      },
      "profession": null,
      "property_system": null,
      "related_party_key": "2d5ebd7f-b094-45c1-a41e-953b474ae6ce",
      "revenue": null,
      "role_type": {
        "enumerator": "issuer",
        "translation_path": "co.RoleType.issuer"
      },
      "simples_nacional_participant": null,
      "spouse_document_number": null,
      "trading_name": null
    }
  ],
  "refinanced_credit_operations": []
}

```

STATUS 400

**Request Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Cancelar dívida antes de desembolsar

URL: /documentation/emissao_de_divida/cancelamento/cancelar_divida_antes_de_desembolsar

## Request

ENDPOINT /debt/ DEBT-KEY /cancel
MÉTODO PATCH

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "borrower": {
        "document_number": "68394265057",
        "name": "Xuxa Meneguel"
      },
      "contract_fee_amount": 5.56,
      "installments": [
        {
          "bank_slip_key": null,
          "calendar_days": 57,
          "due_date": "2020-09-30",
          "due_principal": -0.00217819,
          "fine_amount": null,
          "has_interest": true,
          "installment_key": "28eb5907-ed25-4a86-bb9d-b6dc944f13df",
          "installment_number": 1,
          "installment_status": "opened",
          "installment_type": "principal",
          "paid_amount": 0,
          "post_fixed_amount": 0,
          "pre_fixed_amount": 268.75782181,
          "principal_amortization_amount": 1111.9,
          "tax_amount": 0,
          "total_amount": 1380.66,
          "workdays": 40
        }
      ],
      "operation_key": "7986dcc7-4331-478f-af47-adfbdf7f4a36",
      "status": "opened"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 100,
    "total_pages": 1,
    "total_rows": 55
  }
}

```

STATUS 400

Response Body

```json
{
  "title": "Bad Request",
  "description": "Operation cc5075bb-cfc3-4cd3-a9b5-527978de673c actual status does not allow cancel operation. Actual status is canceled",
  "translation": "Status da operação cc5075bb-cfc3-4cd3-a9b5-527978de673c não permite cancelamento.Status atual: canceled",
  "code": "LEG000073"
}
```

### Path Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `debt_key` * | string | Chave da divida devolvida no momento da criação da operação de crédito. |

---

# Cancelar permanentemente

URL: /documentation/emissao_de_divida/cancelamento/cancelar_permanentemente

## Request

ENDPOINT /debt/ debt_key /cancel_permanently
MÉTODO POST

## Response

STATUS 200

Response Body

```json
{
  "data": {
    "additional_iof": 38000,
    "annual_cet": "253,2642%",
    "assignment_amount": 10000000,
    "base_iof": 69331,
    "borrower": {
      "document_number": "89940878025962",
      "name": "Parmalat"
    },
    "cet": "11,0900%",
    "collaterals": [],
    "contract": {
      "external_contract_key": "2f0b8b6e-0b60-47f0-b27f-e291c028549b",
      "number": "1907258737/P",
      "signature_information": [
        {
          "signature_url": "https://sign.qitech.com.br/s/hNrwjda",
          "signer_document_number": "94632180173",
          "signer_email": "pedro.alves@yopmail.com",
          "signer_external_key": "07a1c438-43a4-49a9-85a9-29667507453b",
          "signer_name": "Pedro Felipe Henrique Alves",
          "signer_role": "issuer"
        },
        {
          "signature_url": "https://sign.qitech.com.br/s/EaTajda",
          "signer_document_number": "34651104630",
          "signer_email": "patricia.tereza@yopmail.com",
          "signer_external_key": "61a1ea50-769a-410a-8ef8-09f0ce4611f6",
          "signer_name": "Patrícia Tereza Bernardes",
          "signer_role": "guarantor"
        }
      ],
      "urls": [
        "https://storage.googleapis.com/sandbox-doc-api/documents/abedfeab-dcf8-4e13-897b-da02c222cef4/SALGADINHO_SALETE_LTDA-PARMALAT-CCB-1907258737-20220512165254.pdf"
      ]
    },
    "contract_fee_amount": 50000,
    "contract_fees": [
      {
        "fee_amount": 50000,
        "fee_type": "tac"
      }
    ],
    "external_contract_fee_amount": 0,
    "external_contract_fees": [],
    "installments": [
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2019-08-26",
        "calendar_days": 32,
        "digitable_line": null,
        "due_date": "2019-08-26",
        "due_interest": null,
        "due_principal": 10000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "81e4a732-d300-4e39-b6d5-2d9ac8df429b",
        "installment_number": 1,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 10000000,
        "original_pre_fixed_amount": 1125598.54,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 1125598.54,
        "principal_amortization_amount": 1000000,
        "tax_amount": 1312,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 22
      },
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2019-09-25",
        "calendar_days": 30,
        "digitable_line": null,
        "due_date": "2019-09-25",
        "due_interest": null,
        "due_principal": 9000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "bac4fe3e-9559-4380-9f4b-bdda3492738e",
        "installment_number": 2,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 9000000,
        "original_pre_fixed_amount": 946509.06,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 946509.06,
        "principal_amortization_amount": 1000000,
        "tax_amount": 2542,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 22
      },
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2019-10-25",
        "calendar_days": 30,
        "digitable_line": null,
        "due_date": "2019-10-25",
        "due_interest": null,
        "due_principal": 8000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "aaaec4d7-94a0-418d-8a8e-ac7af6787aec",
        "installment_number": 3,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 8000000,
        "original_pre_fixed_amount": 841341.39,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 841341.39,
        "principal_amortization_amount": 1000000,
        "tax_amount": 3772,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 22
      },
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2019-11-25",
        "calendar_days": 31,
        "digitable_line": null,
        "due_date": "2019-11-25",
        "due_interest": null,
        "due_principal": 7000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "bead5a38-c56e-4cfc-98f9-af6d71ec7d65",
        "installment_number": 4,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 7000000,
        "original_pre_fixed_amount": 762003.23,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 762003.23,
        "principal_amortization_amount": 1000000,
        "tax_amount": 5043,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 20
      },
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2019-12-26",
        "calendar_days": 31,
        "digitable_line": null,
        "due_date": "2019-12-26",
        "due_interest": null,
        "due_principal": 6000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "350a89e3-58a7-4879-b7ff-5fa0391da39c",
        "installment_number": 5,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 6000000,
        "original_pre_fixed_amount": 653145.63,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 653145.63,
        "principal_amortization_amount": 1000000,
        "tax_amount": 6314,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 22
      },
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2020-01-27",
        "calendar_days": 32,
        "digitable_line": null,
        "due_date": "2020-01-27",
        "due_interest": null,
        "due_principal": 5000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "bf935dc2-3151-4f66-91c6-35e446b57f2e",
        "installment_number": 6,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 5000000,
        "original_pre_fixed_amount": 562799.27,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 562799.27,
        "principal_amortization_amount": 1000000,
        "tax_amount": 7626,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 20
      },
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2020-02-26",
        "calendar_days": 30,
        "digitable_line": null,
        "due_date": "2020-02-26",
        "due_interest": null,
        "due_principal": 4000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "76aad8ce-3ee1-464c-90db-d72a2729560e",
        "installment_number": 7,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 4000000,
        "original_pre_fixed_amount": 420670.69,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 420670.69,
        "principal_amortization_amount": 1000000,
        "tax_amount": 8856,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 20
      },
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2020-03-25",
        "calendar_days": 28,
        "digitable_line": null,
        "due_date": "2020-03-25",
        "due_interest": null,
        "due_principal": 3000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "fc190222-5baf-4023-9e93-95b25774a37e",
        "installment_number": 8,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 3000000,
        "original_pre_fixed_amount": 293473.82,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 293473.82,
        "principal_amortization_amount": 1000000,
        "tax_amount": 10004,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 20
      },
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2020-04-27",
        "calendar_days": 33,
        "digitable_line": null,
        "due_date": "2020-04-27",
        "due_interest": null,
        "due_principal": 2000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "7c2972a8-def7-4b76-b215-0ade0a5bca13",
        "installment_number": 9,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 2000000,
        "original_pre_fixed_amount": 232548.93,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 232548.93,
        "principal_amortization_amount": 1000000,
        "tax_amount": 11357,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 21
      },
      {
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2020-05-25",
        "calendar_days": 28,
        "digitable_line": null,
        "due_date": "2020-05-25",
        "due_interest": null,
        "due_principal": 1000000,
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "d848c880-f489-4bc1-a9e4-101f8d664317",
        "installment_number": 10,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 1000000,
        "original_pre_fixed_amount": 97824.6,
        "original_principal_amortization_amount": 1000000,
        "original_total_amount": null,
        "paid_amount": 0,
        "paid_at": null,
        "payments": [],
        "post_fixed_amount": null,
        "pre_fixed_amount": 97824.6,
        "principal_amortization_amount": 1000000,
        "tax_amount": 12505,
        "total_amount": null,
        "total_paid_amount": 0,
        "workdays": 19
      }
    ],
    "iof_charge_method": "financed",
    "issue_amount": 10000000,
    "net_external_contract_fee_amount": 0,
    "number_of_installments": 10,
    "post_fixed_interest_base": "workdays",
    "post_fixed_interest_rate": 1,
    "prefixed_interest_rate": {
      "annual_rate": 2.32,
      "created_at": null,
      "daily_rate": 0.0033388,
      "interest_base": "calendar_days",
      "monthly_rate": 0.10516767
    },
    "requester_identifier_key": "b7ddbcfb-3de0-49d8-8014-07972d8b27f2",
    "total_iof": 107331,
    "total_pre_fixed_amount": 5935915.16
  },
  "event_datetime": "2022-05-12 16:53:10",
  "key": "b7ddbcfb-3de0-49d8-8014-07972d8b27f2",
  "status": "waiting_signature",
  "webhook_type": "debt"
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Emissão de pix qr code de devolução

URL: /documentation/emissao_de_divida/cancelamento/desistencia/cancelamento_de_divida_em_ate_sete_dias_apos_o_desembolso

## Request

ENDPOINT /debt/reversal
MÉTODO POST

Request Body

**Sem informar dias de expiração**

```json
{
    "contract_number": "0000049343/TW"
}
```
  
**Informando dias corridos de expiração**

```json
{
    "contract_number": "0000049343/TW",
    "days_to_expire":8
}
```

**Informando dias úteis de expiração**

```json
{
    "contract_number": "0000049343/TW",
    "workdays_to_expire":8
}
```

:::warning Expiração do pix_qr_code
A data de expiração do pix qr code é definida por uma quantidade de dias a partir da data de desembolso da dívida, caso não seja definido no payload, serão 14 dias úteis.
:::

## Response

STATUS 200

Response Body

```json
{
  "amount": "2026.93",
  "copy_paste_pix": "00020126930014br.gov.bcb.pix2571qrcode-h.dev.qitech.app/bacen/cobv/dece8d3e-32ce-439e-8204000053039865802BR5925Joao61080150400062070503***63046ECD",
  "expiration_date": "2022-09-28",
  "payer_document_number": "000000000008",
  "payer_name": "Teste",
  "reversal_key": "f98a1b7c-5e3c-4e6f-8887-c7fedfa0d5b5",
  "status": "waiting_payment"
}

```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

## Definições
| Campo             | Tipo   | Descrição                      |
|-------------------|--------|--------------------------------|
| `contract_number` * | string | Número do contrato de crédito.  |
| `days_to_expire` * | integer | Número de dias corridos de expiração do pix qr code desde o desembolso.  |
| `workdays_to_expire` * | integer | Número de dias úteis de expiração do pix qr code desde o desembolso.  |

---

# Consulta de pix qr code de devolução

URL: /documentation/emissao_de_divida/cancelamento/desistencia/consulta_de_pix_qr_code_de_devolucao

Retorna o pix qr code de devolução previamente gerado para uma operação de crédito em processo de desistência. Utilize este endpoint após criar o estorno em `/debt/reversal` para reobter os dados do qr code (por exemplo, para reexibi-los ao pagador).

## Request

ENDPOINT /credit_operation/{credit_operation_key}/pix_qrcode
MÉTODO GET

:::info
Esta requisição não possui corpo. A `credit_operation_key` deve ser informada como parâmetro de caminho na URL.
:::

## Response

STATUS 200

Response Body

```json
{
  "amount": "2026.93",
  "copy_paste_pix": "00020126930014br.gov.bcb.pix2571qrcode-h.dev.qitech.app/bacen/cobv/dece8d3e-32ce-439e-8204000053039865802BR5925Joao61080150400062070503***63046ECD",
  "debt_key": "a1f3d9c0-8b7e-4c9f-9d1a-1234567890ab",
  "expiration_date": "2022-09-28",
  "payer_document_number": "000000000008",
  "payer_name": "Teste",
  "qr_code_key": "7c3e5b22-4d8e-4a6b-9f11-abcdef123456",
  "reversal_key": "f98a1b7c-5e3c-4e6f-8887-c7fedfa0d5b5",
  "status": "waiting_payment"
}
```

STATUS 404

Response Body — Operação não encontrada

```json
{
  "data": "{\"title\": \"Not Found\", \"description\": \"Credit Operation not found\", \"translation\": \"Operação não encontrada\", \"extra_fields\": {}, \"code\": \"COP000027\"}"
}
```

Response Body — Estorno não encontrado

```json
{
  "data": "{\"title\": \"Not Found\", \"description\": \"Reversal not found.\", \"translation\": \"Estorno não encontrado.\", \"extra_fields\": {}, \"code\": \"COP000205\"}"
}
```

## Definições

### Parâmetros de caminho

| Campo | Tipo | Descrição |
|-------|------|-----------|
| `credit_operation_key` * | string (uuid) | Chave única da operação de crédito para a qual o pix qr code de devolução foi gerado. |

### Campos da resposta

| Campo | Tipo | Descrição |
|-------|------|-----------|
| `amount` | string | Valor do pix qr code de devolução, em reais. |
| `copy_paste_pix` | string | Código pix copia-e-cola gerado para o pagamento. |
| `debt_key` | string (uuid) | Chave da operação de crédito (dívida) associada ao estorno. |
| `expiration_date` | string (date) | Data de expiração do pix qr code, no formato `YYYY-MM-DD`. |
| `payer_document_number` | string | CPF/CNPJ do pagador. |
| `payer_name` | string | Nome do pagador. |
| `qr_code_key` | string (uuid) | Chave única do pix qr code emitido. |
| `reversal_key` | string (uuid) | Chave única do estorno associado ao pix qr code. |
| `status` | string | Status atual do pix qr code (por exemplo, `waiting_payment`). |

---

# Introdução

URL: /documentation/emissao_de_divida/cancelamento/desistencia/introducao

Tendo em vista atender a Código de Proteção e Defesa do Consumidor que permite ao tomador do crédito através de meios digitais realizar o cancelamento da dívida em até 7 dias, a QI Tech viabilizou uma funcionalidade específica para atender a estes casos.

## Funcionamento

Nos sistemas QI Tech existem duas formas de realizar o cancelamento de uma divida por desistencia em 7 dias:

### 1 - Através de devolução do valor recebido no desembolso

Caso seja identificada a devolução do valor total desembolsado de uma operação dentro dos 7 dias após a data de desembolso, seja através do estorno do pix ou uma nova transferência para a conta de origem do desembolso, será realizado o cancelamento automático da operação com o motivo: 'disbursed_amount_refunded'.

### 2 - Através da API de cancelamento

Através do endpoint [POST /debt/reversal](cancelamento_de_divida_em_ate_sete_dias_apos_o_desembolso) é possível realizar a geração de um QR code que, uma vez pago pelo tomador, realiza o cancelamnto da operação.

Em ambos os casos, uma vez que o dinheiro chega a QI Tech, a operação é cancelada e, caso a cessão do contrato já tenha ocorrido, o montante e estornado para o cessionário.

É possivel ultilizar este endpoint até 7 dias após o desembolso e a expiração do QR Code é parametrizada para 14 dias após a sua geração - Após este perioso não é mais possivel realizar o cancelamento do contrato.

## Requisitos

Para o funcionamento correto deste endpoint é necessário entrar em contato com o time de suporte QI Tech para liberação do endpoint e a configuração da conta do cessionário para estorno dos recursos.

---

# Introdução

URL: /documentation/emissao_de_divida/cancelamento/introducao

Existem dois tipos de cancelamento de dívidas que podem ser realizados através dos sistemas QI Tech.

## Cancelamento de dívida antes de desembolsar

A utilização do serviço de cancelamento de operações de crédito da QI Tech, para antes do desembolso, consiste apenas em uma única solicitação em nossa API.

## Cancelamento de dívida em até sete dias após o desembolso

A utilização do serviço de cancelamento de operações de crédito da QI Tech, em até sete dias após o desembolso, consiste apenas em uma única solicitação em nossa API.

Após a solicitação, será devolvido o Pix QR Code. Ao ser pago, a operação será cancelada e todos os estornos são executados automaticamente.

## Webhook

Quando o pagamento é confirmado, nosso serviço executa todas as reversões e envia um webhook para o cliente, conforme exemplo a seguir:

```json
{
   "reversal":{
      "date":"2022-09-06",
      "incoming_pix_transfer_key":null,
      "status":"pending_fund",
      "amount_to_send":2026.93,
      "third_party_account_key":"17e5120f-14f7-4802-8676-b63011154edf",
      "reversal_key":"eb0bbd1d-111d-4a61-bb65-c1f66a005ea2",
      "amount":2026.93,
      "is_total":true,
      "created_at":"2022-09-06T01:14:01",
      "is_operation_canceled":true,
      "transaction_key":null
   },
   "assigned_at":"None",
   "credit_operation_key":"2893b8bd-8f4e-4e45-9325-fc7003beb869",
   "assigned":true,
   "contract_number":"0000049333/TW"
}
```

:::info **Principais pontos a serem considerados nesta operação de cancelamento após sete dias:**

- A solicitação de estorno deve ser feita em até 8 dias úteis a partir da data de desembolso.

- O pagamento por QR Code deve ser feito em até 15 dias úteis a partir da data de desembolso.

- O status atual da operação de crédito não pode ser diferente de aberto.

- Nenhuma parcela pode ter sido paga.

- Quando todas as reversões são executadas com sucesso, uma rotina é executada uma vez por dia, coletando o valor adequado e enviando para o fundo.

:::

---

# Catálogo de Erros - Lending-as-a-Service

URL: /documentation/emissao_de_divida/catalogo_de_erros_laas

Abaixo estão listados todos os erros que podem ser retornados pelas APIs do Lending-as-a-Service.
Cada código de erro possui um identificador único que pode ser usado como referência.

## Erros Comuns

Erros compartilhados entre todas as APIs da plataforma.

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="QIT000001"></a>`QIT000001` | 400 | **Schema Validator Error**<br/>Payload Inválido<br/><small>{description}</small> |
| <a id="QIT000002"></a>`QIT000002` | 403 | **Permission Validator Error**<br/>Request must be internal |
| <a id="QIT000003"></a>`QIT000003` | 403 | **Permission Validator Error**<br/>O agente não tem funções suficientes.<br/><small>The agent does not have enough roles.</small> |
| <a id="QIT000004"></a>`QIT000004` | 403 | **Permission Validator Error**<br/>Agente selecionado e person_key são diferentes<br/><small>Selected agent and person_key are different</small> |
| <a id="QIT000005"></a>`QIT000005` | 403 | **Permission Validator Error**<br/>O agente selecionado não é dono do item.<br/><small>Selected agent do not own this item.</small> |
| <a id="QIT000006"></a>`QIT000006` | 403 | **Permission Validator Error**<br/>Agente selecionado não é dono deste item e não tem funções suficientes.<br/><small>Selected agent do not own this item and has not enough roles.</small> |
| <a id="QIT000007"></a>`QIT000007` | - | **External API Error (Rest Connector)**<br/>{translation}<br/><small>{description}</small> |
| <a id="QIT000010"></a>`QIT000010` | 400 | **Search Params Error**<br/>Valor inválido para parâmetros página ou tamanho de página<br/><small>Invalid integer value for page or size querystring parameters</small> |
| <a id="QIT000400"></a>`QIT000400` | 400 | **Bad Request**<br/>O servidor não pode ou não processará a requisição devido a um erro do cliente (por exemplo, corpo da requisição inválido, tamanho muito grande, formatação da mensagem inválida ou rota inválida)<br/><small>The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing)</small> |
| <a id="QIT000404"></a>`QIT000404` | 404 | **Not Found**<br/>O resource solicitado não pôde ser encontrado, mas pode estar disponível no futuro. Requests subsequentes do cliente são permitidos<br/><small>The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible</small> |
| <a id="QIT000500"></a>`QIT000500` | 500 | **Internal Error**<br/>Um erro interno aconteceu e está sendo investigado.<br/><small>An internal error has occurred and its being investigated.</small> |
| <a id="QIT000753"></a>`QIT000753` | 500 | **Internal Error**<br/>Um erro interno aconteceu e está sendo investigado.<br/><small>An internal error has occurred and its being investigated.</small> |

## Erros Específicos

### COP — Operações de Crédito

468 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="COP000001"></a>`COP000001` | 400 | **Bad Request**<br/>Linha: {index}. Valor enviado {value} inválido<br/><small>Line: {index}. Invalid {value} value sent</small> |
| <a id="COP000002"></a>`COP000002` | 400 | **Bad Request**<br/>[{value}] Coluna faltando<br/><small>[{value}] Column missing</small> |
| <a id="COP000003"></a>`COP000003` | 400 | **Bad Request**<br/>Posições não encontradas<br/><small>No positions found</small> |
| <a id="COP000004"></a>`COP000004` | 400 | **Bad Request**<br/>Linha: {index}. Data enviada {value} inválida<br/><small>Line: {index}. Invalid {value} date sent</small> |
| <a id="COP000005"></a>`COP000005` | 400 | **Bad Request**<br/>Arquivo CSV não enviado<br/><small>CSV file not sent</small> |
| <a id="COP000006"></a>`COP000006` | 404 | **Not Found**<br/>Cessão não encontrado para assignment_key {assignment_key}<br/><small>Assignment not found for assignment_key {assignment_key}</small> |
| <a id="COP000007"></a>`COP000007` | 404 | **Not Found**<br/>Configuração do solicitante não encontrada para a requester_key {requester_key}<br/><small>No requester_configuration found for requester_key {requester_key}</small> |
| <a id="COP000008"></a>`COP000008` | 404 | **Not Found**<br/>Configuração ativa não encontrada para requester_key {requester_key} e cessionário com CNPJ {document_number}<br/><small>Active configuration not found for requester_key {requester_key} and purchaser with CNPJ {document_number}</small> |
| <a id="COP000009"></a>`COP000009` | 404 | **Not Found**<br/>Cessionário com CNPJ {purchaser_document_number} não encontrado<br/><small>Purchaser with CNPJ {purchaser_document_number} not found</small> |
| <a id="COP000010"></a>`COP000010` | 400 | **Bad Request**<br/>Cessionário não definido para a credit_operation {credit_operation_key}. Necessário para designar a emissao de dívida<br/><small>No purchaser defined for credit_operation {credit_operation_key}. Purchaser is required to assign a debt emission</small> |
| <a id="COP000011"></a>`COP000011` | 400 | **Bad Request**<br/>Cessionários diferentes. As cessões só podem atribuir a emissão de dívidas para um mesmo cessionário.<br/><small>Different purchasers defined. Assignment operations can only assign debt emissions grouping them by the same purchaser.</small> |
| <a id="COP000012"></a>`COP000012` | 422 | **Unprocessable Entity**<br/>O status da operação {credit_operation_key} é {co_status}. Não é possivel criar a cessão<br/><small>Credit Operation {credit_operation_key} status is {co_status}. Can't create assignment</small> |
| <a id="COP000013"></a>`COP000013` | 400 | **Bad Request**<br/>third_party_account_key diferente entre o solicitante {requester_key} e credit_operation com a chave {credit_operation_key}<br/><small>Different third_party_account_key between requester {requester_key} and credit_operation with key {credit_operation_key}</small> |
| <a id="COP000014"></a>`COP000014` | 400 | **Bad Request**<br/>Propriedade diferente da operação de crédito. As cessões só podem atribuir emissões de dívida com o mesmo proprietário.<br/><small>Different credit operation ownership. Assignment operations can only assign debt emissions with the same owner.</small> |
| <a id="COP000015"></a>`COP000015` | 400 | **Bad Request**<br/>Operação {credit_operation_key} já foi cessionada {assignment_key} com status {assignment_status_enumerator}.<br/><small>Credit Operation {credit_operation_key} already has an assignment {assignment_key} with status {assignment_status_enumerator}.</small> |
| <a id="COP000016"></a>`COP000016` | 400 | **Bad Request**<br/>Chave do documento não existe e solicitante não possui assignment_template_key registrada para o cessionário com CNPJ {document_number}. Um dos dois deve existir para criar uma cessão.<br/><small>Non existent document_key received, and requester doesn't have an assignment_template_key registered for purchaser with CNPJ {document_number}. One of them must exist to create an assignment.</small> |
| <a id="COP000017"></a>`COP000017` | 400 | **Bad Request**<br/>Documento {document_key} não encontrado<br/><small>Document not found for key {document_key}</small> |
| <a id="COP000018"></a>`COP000018` | 423 | **Locked**<br/>Operação encerrada. Sistema disponível de {OPENING_TIME} até {CLOSING_TIME}<br/><small>Operation window closed. System available from {OPENING_TIME} to {CLOSING_TIME}</small> |
| <a id="COP000019"></a>`COP000019` | 423 | **Locked**<br/>Operação encerrada. Sistema disponível somente em dias úteis.<br/><small>Operation window closed. System available only during work days.</small> |
| <a id="COP000020"></a>`COP000020` | 404 | **Not Found**<br/>requester_configuration correspondente não encontrada no banco de dados. Lembre-se de que existe um fallback para issuer_document_number nulo<br/><small>No correspondent requester configuration exists in the database. Keep in mind that there is a fallback to null issuer_document_number</small> |
| <a id="COP000021"></a>`COP000021` | 422 | **Invalid Data**<br/>A operação possui dados inválidos: impossível calcular valores para o desembolso esperado<br/><small>Credit operation has invalid data: impossible to calculate values for expected disbursed amount</small> |
| <a id="COP000022"></a>`COP000022` | 404 | **Not Found**<br/>Emissor não encontrado<br/><small>Issuer not found</small> |
| <a id="COP000023"></a>`COP000023` | 400 | **Bad Request**<br/>Chave do documento ou do lote de documentos não pode ser nula<br/><small>Document Key or document batch key must not be Null</small> |
| <a id="COP000024"></a>`COP000024` | 400 | **Bad Request**<br/>Status não pode ser nulo<br/><small>Status must not be Null</small> |
| <a id="COP000025"></a>`COP000025` | 400 | **Bad Request**<br/>Chave da TED de saída (outgoing_ted_key) não pode ser nula<br/><small>Outgoing TED Key must not be Null</small> |
| <a id="COP000026"></a>`COP000026` | 400 | **Bad Request**<br/>Chave da CO (credit_operation_key) não pode ser nula<br/><small>CO Key (credit_operation_key) must not be Null</small> |
| <a id="COP000027"></a>`COP000027` | 404 | **Not Found**<br/>Operação não encontrada<br/><small>Credit Operation not found</small> |
| <a id="COP000028"></a>`COP000028` | 400 | **Bad Request**<br/>{translated_errors}<br/><small>{errors}</small> |
| <a id="COP000029"></a>`COP000029` | 400 | **Bad Request**<br/>O parâmetro key ou bank_slip_key está faltando.<br/><small>Parameter key or bank_slip_key is missing.</small> |
| <a id="COP000030"></a>`COP000030` | 422 | **Unprocessable Entity**<br/>Não há uma conta de reembolso na configuração do solicitante para enviar o valor do reembolso (payload external_contract_fee_amount é maior que 0)<br/><small>There is no rebate account in the requester configuration to send the rebate amount (payload external_contract_fee_amount is greater than 0)</small> |
| <a id="COP000031"></a>`COP000031` | 422 | **Unprocessable Entity**<br/>O tipo de taxa do contrato externo não foi especificado na configuração do solicitante (payload external_contract_fee_amount é maior que 0)<br/><small>External contract fee type was not specified in the requester configuration (payload external_contract_fee_amount is greater than 0)</small> |
| <a id="COP000032"></a>`COP000032` | 422 | **Unprocessable Entity**<br/>A configuração do solicitante possui dados de descontos incompletos. Para usar a configuração do solicitante, todos os dados de descontos devem ser preenchidos ou todos devem ser anulados<br/><small>Requester configuration has incomplete rebate data. In order to use requester configuration, either all rebate data must be filled or all of it has to be nullified</small> |
| <a id="COP000034"></a>`COP000034` | 400 | **Bad Request**<br/>Configuração do cessionário ausente<br/><small>Missing purchaser configuration</small> |
| <a id="COP000035"></a>`COP000035` | 400 | **Bad Request**<br/>Solicitante não tem permissão para criar uma operação sem o cessionário<br/><small>Requester not allowed to create a credit operation without purchaser</small> |
| <a id="COP000036"></a>`COP000036` | 422 | **Unprocessable Entity**<br/>Porcentagem inválida: o valor total é diferente de 100%<br/><small>Invalid percentage receivable: total percentage is different than 100%</small> |
| <a id="COP000037"></a>`COP000037` | 400 | **Bad Request**<br/>conta de origem de desembolso não cadastrada<br/><small>Missing third_party_account</small> |
| <a id="COP000038"></a>`COP000038` | 422 | **Unprocessable Entity**<br/>O valor da taxa da configuração do solicitante é uma porcentagem superior a 100%. Verifique os dados da configuração do solicitante.<br/><small>Requester configuration fee amount is a percentage greater than 100%. Please check requester configuration data.</small> |
| <a id="COP000039"></a>`COP000039` | 400 | **Bad Request**<br/>Operação com código da instituição financeira {if_code} não encontrada<br/><small>Credit Operation with IF Code = {if_code} not found</small> |
| <a id="COP000040"></a>`COP000040` | 400 | **Bad Request**<br/>Operação com código da instituição financeira {if_code} ainda não tem uma parcela a pagar<br/><small>Credit Operation with IF Code = {if_code} does not have a payable installment yet</small> |
| <a id="COP000041"></a>`COP000041` | 400 | **Bad Request**<br/>CSV complementar para operação de crédito com código IF = {if_code} já lido<br/><small>CSV Complement for Credit Operation with IF Code = {if_code} already read</small> |
| <a id="COP000042"></a>`COP000042` | 400 | **Bad Request**<br/>Mensagem de controle da Cetip LTR = {control_number_ltr} já foi processada<br/><small>Cetip Control Message LTR = {control_number_ltr} already processed</small> |
| <a id="COP000043"></a>`COP000043` | 400 | **Bad Request**<br/>Confirmação Cetip LTR = {control_number_if} Mensagem solicitada não encontrada<br/><small>Cetip LTR Confirmation = {control_number_if} Request Message not found</small> |
| <a id="COP000044"></a>`COP000044` | 400 | **Bad Request**<br/>Confirmação LTR da mensagem de controle Cetip = {control_number_ltr} já processada<br/><small>Cetip Control Message LTR Confirmation = {control_number_ltr} already processed</small> |
| <a id="COP000045"></a>`COP000045` | 400 | **Bad Request**<br/>Nenhuma liquidação encontrada está pendente confirmação para a Confirmação LTR {control_number_ltr}<br/><small>No CETIP Settlement found to confirm for the LTR Confirmation {control_number_ltr}</small> |
| <a id="COP000046"></a>`COP000046` | 400 | **Bad Request**<br/>Valor esperado {expected_amount} é diferente da mensagem da cetip {amount}<br/><small>Expected value {expected_amount} is different from cetip message {amount}</small> |
| <a id="COP000048"></a>`COP000048` | 409 | **Conflict**<br/>O número da parcela {installment_number} da operação com Código IF = {if_code} ainda não está pronto para o pagamento<br/><small>Installment number {installment_number} from operation with IF Code = {if_code} is not ready for payment yet</small> |
| <a id="COP000049"></a>`COP000049` | 400 | **Bad Request**<br/>O número de parcelas ou 'número de parcelas - período de carência  não pode ser zero.<br/><small>Number of installments  or 'number of installments - principal grace period' cannot be zero.</small> |
| <a id="COP000050"></a>`COP000050` | 400 | **Bad Request**<br/>Não foi possível calcular cet da operação<br/><small>Credit Operation Information can not calculate cet</small> |
| <a id="COP000051"></a>`COP000051` | 400 | **Bad Request**<br/>Para executar o método de pagamento de boleto bancário sem uma creditor_bank_account, o emissor deve ser uma pessoa válida na integração.<br/><small>To execute bankslip payment method without a creditor_bank_account, issuer must be a valid person on onboarding.</small> |
| <a id="COP000052"></a>`COP000052` | 400 | **Bad Request**<br/>Para executar o método de pagamento de boleto bancário, o emissor deve ser uma pessoa válida na integração.<br/><small>To execute bankslip payment method, issuer must be a valid person on onboarding.</small> |
| <a id="COP000053"></a>`COP000053` | 400 | **Bad Request**<br/>O método de pagamento integrado precisa de no mínimo uma conta de desembolso<br/><small>Integrated Payment Method needs minimum of one disbursement account</small> |
| <a id="COP000054"></a>`COP000054` | 400 | **Bad Request**<br/>Conta de desembolso interna com número {account_number}-{account_branch} inválida<br/><small>Internal disbursement account of number {account_number}-{account_branch} is invalid.</small> |
| <a id="COP000055"></a>`COP000055` | 400 | **Bad Request**<br/>O Método de pagamento integrado precisa da chave da conta bancária de liquidação ou de uma conta de desembolso interna para efetuar o pagamento parcelado<br/><small>Integrated Payment Method needs settlement bank account key or a internal disbursement account to perform installment payment.</small> |
| <a id="COP000056"></a>`COP000056` | 400 | **Bad Request**<br/>Chave de conta bancária de liquidação inválida.<br/><small>Invalid settlement bank account key.</small> |
| <a id="COP000057"></a>`COP000057` | 400 | **Bad Request**<br/>A especificação de recebimento das contas de desembolsos não deve ser de natureza mista (valores absolutos e percentuais).<br/><small>Disbursement accounts' receivable specification must not be of mixed nature (absolute and percentage values).</small> |
| <a id="COP000058"></a>`COP000058` | 422 | **Unprocessable Entity**<br/>Saldo inválido na conta de origem<br/><small>Resource account has invalid balance data</small> |
| <a id="COP000059"></a>`COP000059` | 422 | **Unprocessable Entity**<br/>O total de despesas é maior que o valor emitido para esta operação<br/><small>Total expenses are greater than issued amount for this operation</small> |
| <a id="COP000060"></a>`COP000060` | 422 | **Unprocessable Entity**<br/>O valor da emissão é maior que o saldo da conta de origem. A operação foi interrompida<br/><small>Issue amount is greater than resource account balance. Operation has been aborted</small> |
| <a id="COP000061"></a>`COP000061` | 422 | **Unprocessable Entity**<br/>O valor da emissão é maior que o saldo da conta de origem. A operação foi interrompida<br/><small>Rebate taxes are greater than rebate amount for this operation</small> |
| <a id="COP000062"></a>`COP000062` | 422 | **Unprocessable Entity**<br/>Esta operação não possui uma conta de reembolso para transferir o valor do reembolso<br/><small>This credit operation has no rebate account to transfer the rebate amount</small> |
| <a id="COP000063"></a>`COP000063` | 400 | **Bad Request**<br/>Não é possível garantir o valor desembolsado para contas que não são amount_receivable<br/><small>Cannot ensure disbursed amount for non amount_receivable accounts</small> |
| <a id="COP000064"></a>`COP000064` | 400 | **Validation Error**<br/>{parse_error} |
| <a id="COP000065"></a>`COP000065` | 400 | **Validation Error**<br/>{parse_error} |
| <a id="COP000066"></a>`COP000066` | 400 | **Bad Request**<br/>GET request faltando parâmetros<br/><small>Missing parameters for GET request</small> |
| <a id="COP000067"></a>`COP000067` | 404 | **Not Found**<br/>Operação não encontrada para os parâmetros fornecidos.<br/><small>Credit Operation was not found for the given parameters.</small> |
| <a id="COP000068"></a>`COP000068` | 400 | **Bad Request**<br/>Forneça apenas um dentre {issue_amount, disbursed_issue_amount, final_disbursement_amount}. Se um for válido, os outros devem ser nulos<br/><small>Please provide only one of {issue_amount, disbursed_issue_amount, final_disbursement_amount}. If one is valid, the other must be null</small> |
| <a id="COP000069"></a>`COP000069` | 404 | **Not Found**<br/>Operação com número de contrato {contract_number} não encontrada<br/><small>Credit Operation with contract number {contract_number} not found</small> |
| <a id="COP000070"></a>`COP000070` | 400 | **Bad Request**<br/>Números de controle de atribuições da cetip duplicados<br/><small>Duplicated cetip assignments control numbers</small> |
| <a id="COP000071"></a>`COP000071` | 400 | **Bad Request**<br/>O valor total esperado {total_expected_amount} é diferente do valor da operação de crédito {issue_amount}<br/><small>Total expected amount {total_expected_amount} is different from Credit Operation amount {issue_amount}</small> |
| <a id="COP000073"></a>`COP000073` | 400 | **Bad Request**<br/>Nenhuma configuração ativa encontrada para o solicitante {requester_key} e cessionário with CNPJ {purchaser_document_number}.<br/><small>No active configuration found for requester {requester_key} and purchaser with CNPJ {purchaser_document_number}.</small> |
| <a id="COP000074"></a>`COP000074` | 400 | **Bad Request**<br/>A operação de crédito com chaves {endorsed_co_key_list} já foi endossada<br/><small>Credit Operation with keys {endorsed_co_key_list} is already endorsed</small> |
| <a id="COP000075"></a>`COP000075` | 404 | **Not Found**<br/>Operação de crédito não encontrada para a seguinte chave {key}<br/><small>Credit Operation not found for the given key for {key}</small> |
| <a id="COP000076"></a>`COP000076` | 400 | **Bad Request**<br/>A operação de crédito com chaves {key} não possui documento válido<br/><small>Credit Operation with keys {key} does not have valid document</small> |
| <a id="COP000077"></a>`COP000077` | 400 | **Bad Request**<br/>A operação de crédito com chaves {key} estão esperando assinatura<br/><small>Credit Operation with keys {key} are waiting signature</small> |
| <a id="COP000078"></a>`COP000078` | 400 | **Bad Request**<br/>A operação de crédito com chaves {key} foram canceladas<br/><small>Credit Operation with keys {key} are cancelled</small> |
| <a id="COP000079"></a>`COP000079` | 400 | **Bad Request**<br/>Parâmetro obrigatório ausente: document_number<br/><small>Missing mandatory parameter: document_number</small> |
| <a id="COP000080"></a>`COP000080` | 404 | **Not Found**<br/>Cessionário com número de documento {document_number} não encontrado.<br/><small>No purchaser found with document number {document_number}.</small> |
| <a id="COP000081"></a>`COP000081` | 400 | **Bad Request**<br/>Cessionário com número de documento {document_number} já registrado. Use PUT /purchaser<br/><small>Purchaser with document number {document_number} already registered. Use PUT /purchaser</small> |
| <a id="COP000082"></a>`COP000082` | 400 | **Bad Request**<br/>Cessionário com número de documento {document_number} não registrado. Use PUT /purchaser<br/><small>Purchaser with document number {document_number} não registered. Use PUT /purchaser</small> |
| <a id="COP000083"></a>`COP000083` | 400 | **Bad Request**<br/>Parâmetro obrigatório ausente: requester_key<br/><small>Missing mandatory parameter: requester_key</small> |
| <a id="COP000084"></a>`COP000084` | 409 | **Conflict**<br/>Já existe uma configuração para o requester_key e issuer_document_number<br/><small>There already exists a configuration for the informed requester_key and issuer_document_number</small> |
| <a id="COP000085"></a>`COP000085` | 404 | **Not Found**<br/>Configuração do solicitante não encontrada para os parâmetros fornecidos<br/><small>Requester configuration not found for the given parameters</small> |
| <a id="COP000086"></a>`COP000086` | 422 | **Unprocessable Entity**<br/>Taxa de contrato inválida: o valor informado é superior a 100%<br/><small>Invalid contract fee data: amount informed is greater than 100%</small> |
| <a id="COP000087"></a>`COP000087` | 422 | **Unprocessable Entity**<br/>Taxa de contrato externa inválida: o valor informado é superior a 100%<br/><small>Invalid external contract fee data: amount informed is greater than 100%</small> |
| <a id="COP000088"></a>`COP000088` | 400 | **Bad Request**<br/>O status da parcela não permite esta operação.<br/><small>Installment actual status does not allow this operation.</small> |
| <a id="COP000089"></a>`COP000089` | 400 | **Bad Request**<br/>A operação de crédito {credit_operation_key} não tem data de desembolso<br/><small>Credit Operation {credit_operation_key} has no disbursement_date</small> |
| <a id="COP000090"></a>`COP000090` | 400 | **Bad Request**<br/>{message_br}<br/><small>{message_en}</small> |
| <a id="COP000091"></a>`COP000091` | 400 | **Bad Request**<br/>Nenhuma opção de desembolso encontrada para operação de crédito<br/><small>No disbursement option found for credit operation</small> |
| <a id="COP000092"></a>`COP000092` | 400 | **Bad Request**<br/>A data de desembolso da operação de crédito já foi definida<br/><small>Credit Operation's disbursement date has already been set</small> |
| <a id="COP000093"></a>`COP000093` | 400 | **Bad Request**<br/>Nenhuma opção de desembolso calculada para disbursement_date {disbursement_date}<br/><small>No disbursement option calculated to disbursement_date {disbursement_date}</small> |
| <a id="COP000094"></a>`COP000094` | 400 | **Bad Request**<br/>Mais de uma opção de desembolso calculada para {disbursement_date}<br/><small>More than one disbursement option calculated to {disbursement_date}</small> |
| <a id="COP000095"></a>`COP000095` | 400 | **Bad Request**<br/>Data de vencimento da primeira parcela inválida.<br/><small>First due date invalid.</small> |
| <a id="COP000096"></a>`COP000096` | 400 | **Bad Request**<br/>NÃo foi possãvel encontrar a última parcela a ser liquidada.<br/><small>Could not find last installment to early pay with provided key.</small> |
| <a id="COP000097"></a>`COP000097` | 400 | **Bad Request**<br/>NÃo foi possãvel encontrar a parcelas para serem liquidadas.<br/><small>No installment found to early pay.</small> |
| <a id="COP000098"></a>`COP000098` | 400 | **Bad Request**<br/>Propriedade diferente da operação de crédito. Os endossos só podem endossar emissões de dívida com o mesmo proprietário.<br/><small>Different credit operation ownership. Endorsement operations can only endorse debt emissions with the same owner.</small> |
| <a id="COP000099"></a>`COP000099` | 400 | **Bad Request**<br/>Propriedade diferente da operação de crédito. As cessões só podem ceder emissões de dívida com o mesmo proprietário.<br/><small>Different credit operation ownership. Assignment operations can only assign debt emissions with the same owner.</small> |
| <a id="COP000100"></a>`COP000100` | 400 | **Bad Request**<br/>A operação de crédito não pode ser liquidada antecipadamente porque tem parcelas atrasadas.<br/><small>Credit operation cannot be early paid if it has delayed installments.</small> |
| <a id="COP000101"></a>`COP000101` | 400 | **Bad Request**<br/>A operação de crédito não pode ser liquidada antecipadamente porque tem parcelas que foram pagas parcialmente ou estão aguardando pagamento.<br/><small>Credit operation cannot be early paid if it has installments that are waiting payment.</small> |
| <a id="COP000102"></a>`COP000102` | 400 | **Bad Request**<br/>A operação de crédito não pode ser liquidada antecipadamente porque ainda não foi desembolsada.<br/><small>Credit operation cannot be early paid if it is not opened yet.</small> |
| <a id="COP000103"></a>`COP000103` | 400 | **Bad Request**<br/>Email informado por assinante {related_party_name} é invalido: {email}.<br/><small>Related party {related_party_name} provided an invalid email {email}.</small> |
| <a id="COP000104"></a>`COP000104` | 400 | **Bad Request**<br/>Não foi informado celular para o assinante: {related_party_name}.<br/><small>Related party {related_party_name} has no phone provided.</small> |
| <a id="COP000105"></a>`COP000105` | 400 | **Bad Request**<br/>Telefone não encontrado<br/><small>Phone not found</small> |
| <a id="COP000106"></a>`COP000106` | 400 | **Bad Request**<br/>É necessário ter apenas uma conta de desembolso, e esta conta precisa ser da QI SCD.<br/><small>There must be only one disbursement account, and it must be a QI SCD account</small> |
| <a id="COP000107"></a>`COP000107` | 400 | **Bad Request**<br/>Operação de crédito precisa estar desembolsada para executar ação.<br/><small>Credit operation must be opened to execute action</small> |
| <a id="COP000108"></a>`COP000108` | 400 | **Bad Request**<br/>Não foi possível pagar o boleto<br/><small>Could not pay bankslip</small> |
| <a id="COP000109"></a>`COP000109` | 400 | **Bad Request**<br/>Data da primeira parcela e Prazo até a primeira parcela foram recebidos. Envie apenas um deles.<br/><small>Both first_due_date and first_due_date_delay were provided. Only one must be provided.</small> |
| <a id="COP000110"></a>`COP000110` | 400 | **Bad Request**<br/>Tipo de pagamento bankslip pode ser usado somente para operações de crédito com juros prefixados<br/><small>Payment type bankslip can only be used for credit operations with prefixed interest types</small> |
| <a id="COP000111"></a>`COP000111` | 400 | **Bad Request**<br/>Por favor, envie apenas uma configuração de rebate por tipo de tarifa.<br/><small>Received duplicated fee type. Please provide only one fee configuration per fee type.</small> |
| <a id="COP000112"></a>`COP000112` | 400 | **Bad Request**<br/>O tipo de tarifa recebido {fee_type} não está pré-configurado.<br/><small>Received fee type {fee_type} not pre-configured.</small> |
| <a id="COP000113"></a>`COP000113` | 400 | **Bad Request**<br/>Não é possível aplicar rebate sem pré-configuração. Por favor contatar equipe de operações.<br/><small>Cannot apply external fee. Missing external fee configuration. Please contact the operations team.</small> |
| <a id="COP000114"></a>`COP000114` | 400 | **Bad Request**<br/>Por favor, especifique o tipo de rebate para sobrescrever.<br/><small>Please specify fee type to overwrite.</small> |
| <a id="COP000115"></a>`COP000115` | 400 | **Bad Request**<br/>Não é possível desembolsar a operação {credit_operation_key} porque a TED está fechada.<br/><small>Cannot disburse credit operation {credit_operation_key} due to TED closing time.</small> |
| <a id="COP000116"></a>`COP000116` | 400 | **Bad Request**<br/>Cessionário {document_number} já cadastrado para o requester_key {requester_key}. Use request PUT para atualizar<br/><small>Purchaser {document_number} already registered for requester_key {requester_key}. Use PUT request to update</small> |
| <a id="COP000117"></a>`COP000117` | 400 | **Bad Request**<br/>Tomador não corresponde ao pagador do boleto, ou não é um destino de desembolso cadastrado.<br/><small>Issuer is not bank-slip payer or is not disbursable destination.</small> |
| <a id="COP000118"></a>`COP000118` | 400 | **Bad Request**<br/>Entrada duplicada de dados para requester_identifier_key e requester_key.<br/><small>Duplicate entry for requester identifier key and requester key.</small> |
| <a id="COP000119"></a>`COP000119` | 400 | **Bad Request**<br/>Valor de emissão está faltando mais do que permitido: {amount} Desembolso líquido calculado: {disbursed_amount} Rebate: {external_contract_fee_sum} Deve ser menor que 20: {delta}<br/><small>Issue amount is missing more than permitted: {amount}. Disbursed amount: {disbursed_amount} External fee: {external_contract_fee_sum} Must be less than 20: {delta}</small> |
| <a id="COP000120"></a>`COP000120` | 400 | **Bad Request**<br/>Operação não está no estado aguardando assinatura<br/><small>Credit Operation is not waiting signature</small> |
| <a id="COP000121"></a>`COP000121` | 400 | **Bad Request**<br/>Reenvio de notificação está habilitado somente para clicksign e qi sign<br/><small>Resend notification is available only for clicksign and qi sign</small> |
| <a id="COP000122"></a>`COP000122` | 400 | **Bad Request**<br/>Assinante {signer} não faz parte da operação<br/><small>Signer {signer} is not part of the operation</small> |
| <a id="COP000123"></a>`COP000123` | 400 | **Bad Request**<br/>O total de amortização das parcelas não é igual ao valor de emissão.<br/><small>Total amortization from installment flow does not equal issue amount.</small> |
| <a id="COP000124"></a>`COP000124` | 400 | **Bad Request**<br/>A credit_operation_key recebida já está registrada para outra operação. Por favor, envie uma key não utilizada.<br/><small>Received credit_operation_key already registered for another operation. Please send a new one.</small> |
| <a id="COP000125"></a>`COP000125` | 400 | **Bad Request**<br/>Não pode haver opções de desembolso quando o fluxo de parcelas é pré-determinado.<br/><small>There cannot be disbursement options when installment flow is pre-defined.</small> |
| <a id="COP000126"></a>`COP000126` | 400 | **Bad Request**<br/>Valor total das ações pós desembolso ({after_disbursement_actions_total_amount}) é maior que o valor liberado calculado ({disbursed_amount}).<br/><small>Total after disbursement actions amount ({after_disbursement_actions_total_amount}) greater than evaluated disbursed amount ({disbursed_amount}).</small> |
| <a id="COP000127"></a>`COP000127` | 400 | **Bad Request**<br/>Não é possível criar ações pós-desembolso porque a data de vencimento {expiration_date} do boleto {digitable_line} está dentro do período de desembolso.<br/><small>Can't create after disbursement action because bankslip {digitable_line} expiration date {expiration_date} is within disbursement period.</small> |
| <a id="COP000128"></a>`COP000128` | 400 | **Bad Request**<br/>Não é possível criar ações pós-desembolso porque o valor do desembolso está indefinido.<br/><small>Can't create after disbursement action because disbursed amount is undefined.</small> |
| <a id="COP000129"></a>`COP000129` | 400 | **Bad Request**<br/>Tamanho da lista de datas de vencimento recebida não é compatível com o número de parcelas.<br/><small>Size of received due_dates array does not match number of installments</small> |
| <a id="COP000130"></a>`COP000130` | 400 | **Bad Request**<br/>Uma ou mais datas de vencimento recebidas ocorre antes do desembolso.<br/><small>One or more received due dates are before the disbursement date.</small> |
| <a id="COP000131"></a>`COP000131` | 400 | **Bad Request**<br/>Todos os elementos dentro da lista de datas de vencimento devem ser únicos.<br/><small>All elements inside due dates list must be unique.</small> |
| <a id="COP000133"></a>`COP000133` | 400 | **Bad Request**<br/>O desembolso precisa ser feito para uma conta de mesma titularidade de quem está pegando o empréstimo, no caso o tomador.<br/><small>The disbursement need to be in a account with the same ownership as the borrower.</small> |
| <a id="COP000134"></a>`COP000134` | 404 | **Not Found**<br/>Nenhuma operação de crédito encontrada para o lote recebido.<br/><small>No credit operation found for given batch.</small> |
| <a id="COP000135"></a>`COP000135` | 404 | **Not Found**<br/>Algumas operações de crédito não foram encontradas para o lote recebido.<br/><small>Some credit operations were not found for given batch.</small> |
| <a id="COP000136"></a>`COP000136` | 400 | **Bad Request**<br/>Mais de um requester encontrado no lote de desembolso. Espera-se apenas um requester para todas as operações de crédito contidas no lote.<br/><small>More than one requester found inside batch. Expected only one requester for all credit operations inside batch.</small> |
| <a id="COP000137"></a>`COP000137` | 400 | **Bad Request**<br/>Não foi encontrado um RequesterConfiguration para o requester {requester_key}<br/><small>No requester configuration found for requester {requester_key}.</small> |
| <a id="COP000138"></a>`COP000138` | 400 | **Bad Request**<br/>Requester {requester_key} não está configurado para desembolsar em lote.<br/><small>Requester {requester_key} is not configured to disburse in batch.</small> |
| <a id="COP000139"></a>`COP000139` | 400 | **Bad Request**<br/>Todas as operações de crédito precisam estar waiting_disbursement para serem desembolsadas<br/><small>Credit operations must all be waiting_disbursement to be disbursed</small> |
| <a id="COP000141"></a>`COP000141` | 400 | **Bad Request**<br/>Um ou mais RequesterConfigurations estão faltando para desembolsar em lote.<br/><small>Missing one or more RequesterConfigurations to disburse in batch.</small> |
| <a id="COP000142"></a>`COP000142` | 400 | **Bad Request**<br/>Código compe {bank_compe_code} na ação pós-desembolso não é válido.<br/><small>Bank compe code {bank_compe_code} in after disbursement action is not valid.</small> |
| <a id="COP000143"></a>`COP000143` | 400 | **Bad Request**<br/>Valor desembolsado deve ser informado quando a tarifa configurada é sobre valor desembolsado<br/><small>Disbursed amount must be sent when there is a fee is over its value.</small> |
| <a id="COP000144"></a>`COP000144` | 400 | **Bad Request**<br/>O assinante {related_party_name}, tem número de telefone celular com menos de 9 dígitos.<br/><small>Related party {related_party_name} has cellphone number with less than 9 digits</small> |
| <a id="COP000145"></a>`COP000145` | 400 | **Bad Request**<br/>Operação duplicada encontrada.<br/><small>Duplicate Operation was found</small> |
| <a id="COP000146"></a>`COP000146` | 400 | **Bad Request**<br/>Impossível adicionar tarifas externas sem a conta de rebate.<br/><small>Cannot add external fees without a rebate account.</small> |
| <a id="COP000147"></a>`COP000147` | 400 | **Bad Request**<br/>Chave da conta do cessionário deve ser fornecida com configuração de débito automático ligada.<br/><small>Purchaser account key must be sent along with automatic debt set on.</small> |
| <a id="COP000148"></a>`COP000148` | 400 | **Bad Request**<br/>O campo disburse_before_assign: '{disburse_before_assign}' deve ser boleano, foi enviado {type}.<br/><small>The field disburse_before_assign: '{disburse_before_assign}' must be boolean, it was sent {type}.</small> |
| <a id="COP000149"></a>`COP000149` | 400 | **Bad Request**<br/>Desembolso já concluído.<br/><small>Disbursement already completed.</small> |
| <a id="COP000150"></a>`COP000150` | 400 | **Bad Request**<br/>Não foi possível atualizar o valor de cessão para o tipo de juros {interest_type}. Atualização automática não disponível para este tipo.<br/><small>Unable to update assignment amount for interest type {interest_type}. Automatic update not available for this type.</small> |
| <a id="COP000151"></a>`COP000151` | 404 | **Not Found**<br/>Parcela não encontrada para {attribute} {value}<br/><small>Installment not found for {attribute} {value}</small> |
| <a id="COP000152"></a>`COP000152` | 400 | **Bad Request**<br/>Data de simulação {simulation_date} é menor que data de vencimento {due_date} para parcela de número {installment_number}<br/><small>Simulation date {simulation_date} is less than due date {due_date} for installment number {installment_number}.</small> |
| <a id="COP000153"></a>`COP000153` | 400 | **Bad Request**<br/>Não foi possível consultar o boleto (linha digitável: {digitable_line}). Por favor tente novamente em alguns minutos.<br/><small>It was not possible to consult the bank slip (digitable line: {digitable_line}). Please try again in a few minutes.</small> |
| <a id="COP000154"></a>`COP000154` | 400 | **Bad Request**<br/>Ação não permitida, porque a garantia não foi constituído. Credit Operation Key {credit_operation_key}<br/><small>Unable to do action, because collaterals are not constituted. Credit operation key {credit_operation_key};</small> |
| <a id="COP000155"></a>`COP000155` | 400 | **Bad Request**<br/>Não foi possível prosseguir com o desembolso em pix. Número de documento da conta de destino não corresponde ao fornecido.<br/><small>Unable to proceed with pix disbursement. Target account document number does not match one provided.</small> |
| <a id="COP000156"></a>`COP000156` | 400 | **Bad Request**<br/>Não foi possível prosseguir com o desembolso em pix. Agência e conta fornecidos não correspondem àqueles da chave pix.<br/><small>Unable to proceed with pix disbursement. Target account number and branch do not match those retrieved from pix key.</small> |
| <a id="COP000157"></a>`COP000157` | 400 | **Bad Request**<br/>Payload da conta de desembolso inválido. Certifique que dados da instituição financeira de destino e da conta estejam contidos.<br/><small>Invalid Disbursement Account Payload. Please make sure it contains target Financial Institution and account data.</small> |
| <a id="COP000158"></a>`COP000158` | 400 | **Bad Request**<br/>Valor de payroll para crédito consignado não foi informado ou é nulo. Favor informar o payroll_amount como decimal maior que zero.<br/><small>Payroll amount has not been informed or is zero. Please set payroll amount as decimal greater than zero.</small> |
| <a id="COP000159"></a>`COP000159` | 400 | **Bad Request**<br/>Pagamento não autorizado para agente {settlement_agent}<br/><small>Payment not allowed for settlement agent {settlement_agent}</small> |
| <a id="COP000160"></a>`COP000160` | 400 | **Bad Request**<br/>Pagamento não autorizado para operações com multiplas parcelas.<br/><small>Payment for operations with multiple installments not allowed.</small> |
| <a id="COP000161"></a>`COP000161` | 400 | **Bad Request**<br/>Pagamento não autorizado para operações cetipadas.<br/><small>Payment for cetip operations not allowed.</small> |
| <a id="COP000162"></a>`COP000162` | 400 | **Bad Request**<br/>Pagamento não autorizado para o status da parcela: {installment_status}.<br/><small>Payment not allowed for current installment status: {installment_status}.</small> |
| <a id="COP000163"></a>`COP000163` | 400 | **Bad Request**<br/>Action não encontrada<br/><small>Action not found;</small> |
| <a id="COP000164"></a>`COP000164` | 400 | **Bad Request**<br/>Action e mandatoria<br/><small>action_key is mandatory;</small> |
| <a id="COP000165"></a>`COP000165` | 400 | **Bad Request**<br/>O valor da nova action deve ser menor ou igual a action a ser atualizada<br/><small>The value of the new action must be lower or equal to the action to be updated</small> |
| <a id="COP000166"></a>`COP000166` | 400 | **Bad Request**<br/>action ja realizada.<br/><small>Action is already done.</small> |
| <a id="COP000167"></a>`COP000167` | 400 | **Bad Request**<br/>Nao foi possivel rodar a acao pos desembolso<br/><small>It's not possible to run after disbursement action  .</small> |
| <a id="COP000168"></a>`COP000168` | 400 | **Bad Request**<br/>Os periodos enviados não batem com as parcelas enviadas<br/><small>Periods sent did not match the installments received.</small> |
| <a id="COP000169"></a>`COP000169` | 400 | **Bad Request**<br/>Documento do comprador diferente da operação de crédito. Os endossos só podem endossar emissões de dívida com o mesmo comprador.<br/><small>Different purchaser document number. Endorsement operations can only endorse debt emissions with the same purchaser document number.</small> |
| <a id="COP000170"></a>`COP000170` | 400 | **Bad Request**<br/>Impossível de quitar operação com as parcelas enviadas.<br/><small>Impossible to settle operation with the installments sent.</small> |
| <a id="COP000171"></a>`COP000171` | 423 | **Locked**<br/>Operação PIX encerrada. Sistema disponível de {PIX_OPENING_TIME} até {PIX_CLOSING_TIME}<br/><small>PIX Operation window closed. System available from {PIX_OPENING_TIME} to {PIX_CLOSING_TIME}</small> |
| <a id="COP000172"></a>`COP000172` | 400 | **Bad Request**<br/>Tipo de juros não permitido para este endpoint. Pagamento recusado.<br/><small>Interest type not allowed at this endpoint. Payment refused.</small> |
| <a id="COP000173"></a>`COP000173` | 400 | **Bad Request**<br/>Recálculo de operação de crédito cancelada precisa regerar documento quando a certificadora não é cartular.<br/><small>Recalculate canceled credit operation must regenerate document when certifier is not notary office</small> |
| <a id="COP000174"></a>`COP000174` | 400 | **Bad Request**<br/>Operação Negada. A conta de desembolso não é de uma instituição participante ativa do PIX.<br/><small>Denied Operation. The chosen disbursement account institution is not an active PIX participant.</small> |
| <a id="COP000175"></a>`COP000175` | 400 | **Bad Request**<br/>Operação Negada. A conta de desembolso informada não é de uma instituição financeira encontrada.<br/><small>Denied Operation. The chosen disbursement account institution was not found.</small> |
| <a id="COP000176"></a>`COP000176` | 404 | **Not Found**<br/>Cessão não encontrado para os parâmetros informados.<br/><small>Assignment not found for the given parameters.</small> |
| <a id="COP000177"></a>`COP000177` | 404 | **Not Found**<br/>Cessão não encontrado para a credit_operation_key {credit_operation_key}<br/><small>Assignment not found for credit_operation_key {credit_operation_key}</small> |
| <a id="COP000178"></a>`COP000178` | 400 | **Bad Request**<br/>status da operação não permite alteração da conta de desembolso<br/><small>transaction status does not allow changing the disbursement account</small> |
| <a id="COP000179"></a>`COP000179` | 400 | **Bad Request**<br/>Quantidade de contas diverge com as já cadastradas nessa operação<br/><small>Number of accounts differs from those already registered in this operation</small> |
| <a id="COP000180"></a>`COP000180` | 400 | **Bad Request**<br/>O status da operação de crédito não permite esta operação.<br/><small>Credit operation status does not allow this operation.</small> |
| <a id="COP000181"></a>`COP000181` | 400 | **Bad Request**<br/>Partes relacionadas com documentos inválidos foram encontrados<br/><small>Related Parties with invalid document number was found</small> |
| <a id="COP000182"></a>`COP000182` | 400 | **Bad Request**<br/>Error ao executar split do desembolso. Porcentagem diferente de 100% foi encontrada para a operação.<br/><small>Error while doing disbursement split. Percentage differ 100% was found for credit operation.</small> |
| <a id="COP000183"></a>`COP000183` | 404 | **Not Found**<br/>Não foi encontrado um RequesterConfigurationPurchaser para o requester {requester_key}<br/><small>No RequesterConfigurationPurchaser found for requester {requester_key}.</small> |
| <a id="COP000184"></a>`COP000184` | 404 | **Not Found**<br/>Não foi encontrado um RequesterConfigurationPurchaser para a key {key}<br/><small>No RequesterConfigurationPurchaser found for key {key}.</small> |
| <a id="COP000185"></a>`COP000185` | 404 | **Not Found**<br/>Não foi encontrado um RequesterConfigurationPurchaser para o requester {requester_key} com o número de documento {document_number}.<br/><small>No RequesterConfigurationPurchaser found for requester {requester_key} with document number {document_number}.</small> |
| <a id="COP000186"></a>`COP000186` | 400 | **Bad Request**<br/>O número de contrato ja existe ou está duplicado.<br/><small>The contract number already exists or is duplicated.</small> |
| <a id="COP000187"></a>`COP000187` | 400 | **Bad Request**<br/>A operação precisa estar assinada para prosseguir com a geração da entrada.<br/><small>Operation must be issued to proceed to entry generation.</small> |
| <a id="COP000188"></a>`COP000188` | 400 | **Bad Request**<br/>A data de vencimento da entrada, deve ser um dia menor que a data de desembolso da operação.<br/><small>Entry deadline must be one day less to operation disbursement date.</small> |
| <a id="COP000189"></a>`COP000189` | 400 | **Bad Request**<br/>O solicitante precisa possuir um perfil de solicitante na bankslip.<br/><small>Requester must have a requester profile in bankslip.</small> |
| <a id="COP000190"></a>`COP000190` | 400 | **Bad Request**<br/>O solicitante precisa configurar uma requester_account_key nas configurações antes de prosseguir.<br/><small>Requester need to configure a requester_account_key in configurations before proceed.</small> |
| <a id="COP000191"></a>`COP000191` | 404 | **Not Found**<br/>Tipo de entrada não encontrada.<br/><small>Entry type not found.</small> |
| <a id="COP000192"></a>`COP000192` | 400 | **Bad Request**<br/>Entrada precisa ter um tipo para continuar.<br/><small>Entry must be of one type to proceed.</small> |
| <a id="COP000193"></a>`COP000193` | 400 | **Bad Request**<br/>A entrada precisa ser paga para prosseguir.<br/><small>Entry must be paid to proceed.</small> |
| <a id="COP000194"></a>`COP000194` | 404 | **Not Found**<br/>A entrada não foi encontrada.<br/><small>Entry not found.</small> |
| <a id="COP000195"></a>`COP000195` | 400 | **Bad Request**<br/>Ação não permitida, porque a entrada não foi paga. Credit Operation Key {credit_operation_key}<br/><small>Unable to do action, because entry is not paid. Credit operation key {credit_operation_key};</small> |
| <a id="COP000196"></a>`COP000196` | 400 | **Bad Request**<br/>Data de desembolso não pode ser no passado para o recalculo da credit operation, Key= {credit_operation_key}<br/><small>Disbursement date can not be in the past when recalculate credit operation, Key=  {credit_operation_key}.</small> |
| <a id="COP000197"></a>`COP000197` | 404 | **Not Found**<br/>Não há um boleto vinculado a uma operação de crédito.<br/><small>There's no bank_slip linked to a credit transaction.</small> |
| <a id="COP000198"></a>`COP000198` | 400 | **Bad Request**<br/>Numero ISPB é nulo e não foi possível encontrar instituição financeira com o número: {code_number}<br/><small>ISPB Number is None and not found financial institution with code number: {code_number}</small> |
| <a id="COP000199"></a>`COP000199` | 400 | **Bad Request**<br/>Base day deve ser um dia útil para recalculo de juros da credit_operation: {co_key}.<br/><small>Base day must be a working day while recalculate interest for credit_operation: {co_key}.</small> |
| <a id="COP000200"></a>`COP000200` | 400 | **Bad Request**<br/>Esta ação é permitida apenas para operações de crédito canceladas<br/><small>This action is allowed only for canceled credit operations</small> |
| <a id="COP000201"></a>`COP000201` | 400 | **Bad Request**<br/>A operação de crédito só pode ser descancelada no período de desembolso<br/><small>The credit Operation can be uncanceled only in disbursement date range</small> |
| <a id="COP000202"></a>`COP000202` | 400 | **Bad Request**<br/>A operação de crédito só pode ser descancelada antes da data de desembolso<br/><small>The credit Operation can be uncanceled only before the disbursement date</small> |
| <a id="COP000203"></a>`COP000203` | 400 | **Bad Request**<br/>Parcelas devem ser após data de desembolso.<br/><small>Installments must be after disbursement_date.</small> |
| <a id="COP000204"></a>`COP000204` | 400 | **Bad Request**<br/>Cessão com a chave {assignment_key} não está cancelada e não pode ser mudada pra aguardando assinatura.<br/><small>Assignment with key {assignment_key} is not canceled and cannot be changed to waiting_signature.</small> |
| <a id="COP000205"></a>`COP000205` | 404 | **Not Found**<br/>Estorno não encontrado.<br/><small>Reversal not found.</small> |
| <a id="COP000206"></a>`COP000206` | 409 | **Conflict**<br/>Essa KYC já foi finalizada com status {kyc_status}<br/><small>This KYC was already finalized with status {kyc_status}</small> |
| <a id="COP000207"></a>`COP000207` | 404 | **Not Found**<br/>Uma KYC com chave {kyc_key} não foi encontrada para a operação {credit_operation_key}<br/><small>A KYC with key {kyc_key} was not found for operation {credit_operation_key}</small> |
| <a id="COP000208"></a>`COP000208` | 400 | **Bad Request**<br/>Motivo de cancelamento {enumerator} já existe.<br/><small>Cancel reason {enumerator} already exists.</small> |
| <a id="COP000209"></a>`COP000209` | 404 | **Not Found**<br/>Motivo de cancelamento {enumerator} não encontrado.<br/><small>Cancel reason {enumerator} not found.</small> |
| <a id="COP000210"></a>`COP000210` | 400 | **Bad Request**<br/>Data da cessão deve ser maior ou igual à data de desembolso.<br/><small>Assignment date must be after or equal disbursement date.</small> |
| <a id="COP000211"></a>`COP000211` | 409 | **Conflict**<br/>Essa parcela/entrada já está paga.<br/><small>This installment/entry is already paid.</small> |
| <a id="COP000212"></a>`COP000212` | 400 | **Bad Request**<br/>Soma das porcentagens dos impostos deve ser menor que 100%.<br/><small>The sum of the tax percentages must be less than 100%.</small> |
| <a id="COP000213"></a>`COP000213` | 400 | **Bad Request**<br/>Campos de taxa não podem ter mais de 8 casas decimais.<br/><small>Rate fields cannot have more than 8 decimal places.</small> |
| <a id="COP000214"></a>`COP000214` | 400 | **Bad Request**<br/>Campo de taxa de atraso maior que o permitido.<br/><small>Delay Rate field higher than allowed.</small> |
| <a id="COP000215"></a>`COP000215` | 400 | **Bad Request**<br/>Custo efetivo anual total maior que o permitido.<br/><small>Annual CET field higher than allowed.</small> |
| <a id="COP000216"></a>`COP000216` | 400 | **Bad Request**<br/>A data para agendar o pagamento não é válida.<br/><small>The date to schedule payment is not valid.</small> |
| <a id="COP000217"></a>`COP000217` | 400 | **Bad Request**<br/>O método de assinatura {method} não é permitido para essa certificadora.<br/><small>The {method} signature method is not allowed for this certifier</small> |
| <a id="COP000218"></a>`COP000218` | 400 | **Bad Request**<br/>A conta de desembolso precisa ser a mesma que a conta do solicitante.<br/><small>The disbursement account must be the same of requester account.</small> |
| <a id="COP000219"></a>`COP000219` | 400 | **Bad Request**<br/>O valor final do desembolso, somado com a entrada, precisa ser o mesmo que o valor total do pagamento.<br/><small>The final disbursement amount, added to the entry payment, must be the same as the total payment amount.</small> |
| <a id="COP000220"></a>`COP000220` | 409 | **Bad Request**<br/>Erro de integridade, já existe dados com esse valor no campo: {field}.<br/><small>Integrity error, already exists data with this value on field: {field}.</small> |
| <a id="COP000221"></a>`COP000221` | 400 | **Bad Request**<br/>A ação não pode ser executada, o tempo de trabalho de transferência está fora da janela.<br/><small>Action cannot be executed, transfer work time is out of window.</small> |
| <a id="COP000222"></a>`COP000222` | 400 | **Bad Request**<br/>Nova data de desembolso deve ser dentro de 15 dias da data atual de desembolso.<br/><small>New disbursement date must be within 15 days of the actual disbursement date.</small> |
| <a id="COP000223"></a>`COP000223` | 400 | **Bad Request**<br/>O document do emissor deve ter 11 ou 14 caracteres.<br/><small>Issuer document number must be 11 or 14 characters long.</small> |
| <a id="COP000224"></a>`COP000224` | 400 | **Bad Request**<br/>A operação de crédito não pode ser desembolsada até que seja permitida.<br/><small>Credit operation cannot be disbursed until is allowed.</small> |
| <a id="COP000225"></a>`COP000225` | 400 | **Bad Request**<br/>O IOF total informado está fora do intervalo calculado.<br/><small>Informed total IOF amount is out of calculated range.</small> |
| <a id="COP000226"></a>`COP000226` | 400 | **Bad Request**<br/>Solicitação de IOF customizada não permitida para este requisitante.<br/><small>Custom IOF request not allowed for this requester.</small> |
| <a id="COP000227"></a>`COP000227` | 409 | **Bad Request**<br/>Erro de integridade, já existe operação com a mesma chave de identificação do solicitante.<br/><small>Integrity error, already exists operation with the same requester identifier key.</small> |
| <a id="COP000228"></a>`COP000228` | 404 | **Not Found**<br/>Instituição Financeira não encontrada.<br/><small>Financial institution not found.</small> |
| <a id="COP000229"></a>`COP000229` | 400 | **Bad Request**<br/>Tipo de transferência pix não encontrado, ou está incorreto.<br/><small>Pix transfer type not found, or is incorrect.</small> |
| <a id="COP000230"></a>`COP000230` | 404 | **Not Found**<br/>Conta de origem não encontrada.<br/><small>Source account not found.</small> |
| <a id="COP000231"></a>`COP000231` | 400 | **Bad Request**<br/>Operação Pix negada, instituição não consta na lista de participantes.<br/><small>Pix operation denied, institution is not on list of participants.</small> |
| <a id="COP000232"></a>`COP000232` | 400 | **Bad Request**<br/>Operação Pix negada, chave pix não existe.<br/><small>Pix operation denied, pix key does not exist.</small> |
| <a id="COP000233"></a>`COP000233` | 400 | **Bad Request**<br/>O valor a receber da conta de desembolso é diferente do valor do boleto.Valor do boleto:{bankslip_amount}<br/><small>The disbursement account amount receivable is different from the amount of bankslip.Bankslip amount:{bankslip_amount}</small> |
| <a id="COP000234"></a>`COP000234` | 400 | **Bad Request**<br/>Boleto não registrado.{extra_info_br}<br/><small>Bankslip not registered.{extra_info}</small> |
| <a id="COP000235"></a>`COP000235` | 400 | **Bad Request**<br/>Não é possível desembolsar a operação {credit_operation_key} devido ao horário de fechamento do boleto.<br/><small>Cannot disburse credit operation {credit_operation_key} due to BankSlip closing time.</small> |
| <a id="COP000236"></a>`COP000236` | 400 | **Bad Request**<br/>Desembolso com boleto precisa ter o amount_receivable.<br/><small>Bankslip disbursement account must have amount_receivable.</small> |
| <a id="COP000237"></a>`COP000237` | 400 | **Bad Request**<br/>A operação de crédito precisa ter portabilidade, e o collateral_type precisa ser 'dataprev_reservation'.<br/><small>Credit operation must have portability and collateral_type must be 'dataprev_reservation' or 'social_security_portability'.</small> |
| <a id="COP000238"></a>`COP000238` | 400 | **Bad Request**<br/>O campo final_disbursement_amount só é permitido para operações de refinanciamento.<br/><small>final_disbursement_amount field is allowed only for refinancing operations.</small> |
| <a id="COP000240"></a>`COP000240` | 400 | **Bad Request**<br/>Operações do Auxílio Brasil devem ter uma única conta de desembolso<br/><small>Social benefit operation must have only one disbursement account</small> |
| <a id="COP000242"></a>`COP000242` | 400 | **Bad Request**<br/>A operação de crédito não possui instituição de registro vinculada a ela.<br/><small>The credit operation does`not have a registration institution linked to it.</small> |
| <a id="COP000243"></a>`COP000243` | 400 | **Bad Request**<br/>A operação de crédito já está no status final.<br/><small>Credit operation already in final status.</small> |
| <a id="COP000244"></a>`COP000244` | 400 | **Bad Request**<br/>Nenhuma garantia encontrada para os parâmetros informados.<br/><small>No collateral found for informed params.</small> |
| <a id="COP000245"></a>`COP000245` | 400 | **Bad Request**<br/>Essa operação com {credit_operation_status} não permite cancelamento.<br/><small>Operation with status {credit_operation_status} cannot be cancelled.</small> |
| <a id="COP000246"></a>`COP000246` | 400 | **Bad Request**<br/>Status da cessão não permite essa operação. status: {assignment_status}<br/><small>Assignment status does not allow this operation. status: {assignment_status}</small> |
| <a id="COP000247"></a>`COP000247` | 400 | **Bad Request**<br/>Não é possível realizar a cessão com a operação liquidada.Chave da operação: {key}<br/><small>It is not possible to carry out the assignment with the operation settled.Operation_key: {key}</small> |
| <a id="COP000248"></a>`COP000248` | 400 | **Bad Request**<br/>Depósitos centrais das operações de crédito não são iguais<br/><small>Central depositories of credit operations are not the same</small> |
| <a id="COP000249"></a>`COP000249` | 400 | **Bad Request**<br/>A prazo da entrada não pode ser inferior à data de desembolso.<br/><small>The entry deadline cannot be less than disbursement date.</small> |
| <a id="COP000250"></a>`COP000250` | 400 | **Bad Request**<br/>Não é possível recalcular a operação com uma entrada revertida.<br/><small>Cannot recalculate operation with a reversed entry.</small> |
| <a id="COP000251"></a>`COP000251` | 400 | **Bad Request**<br/>A operação de estorno não é permitida, porque o status da operação de crédito não está como desembolsado.<br/><small>Reversal operation is not allowed, because the status of the credit operation is not disbursed.</small> |
| <a id="COP000252"></a>`COP000252` | 400 | **Bad Request**<br/>A opera��o de estorno n�o � permitida quando h� alguma parcela paga.<br/><small>Reversal operation is not allowed when any installment is paid.</small> |
| <a id="COP000253"></a>`COP000253` | 400 | **Bad Request**<br/>A conta do fundo precisa estar cadastrada para o requester.<br/><small>Purchaser account must be registered for the requester.</small> |
| <a id="COP000254"></a>`COP000254` | 400 | **Bad Request**<br/>Operação de Credito nao pode ser cancelada depois de 7 dias<br/><small>Credit Operation cannot be reversed after 7 days</small> |
| <a id="COP000255"></a>`COP000255` | 400 | **Bad Request**<br/>Operação de crédito precisa estar desembolsada para gerar um qr code de estorno.<br/><small>Must have a transaction key for the disbursement account.</small> |
| <a id="COP000256"></a>`COP000256` | 409 | **Bad Request**<br/>A reversão para este número de contrato já está registrada.<br/><small>Reversal to this contract number is already registered.</small> |
| <a id="COP000257"></a>`COP000257` | 400 | **Bad Request**<br/>O pagamento do boleto foi rejeitado.<br/><small>Bank slip payment was rejected.</small> |
| <a id="COP000258"></a>`COP000258` | 404 | **Not Found**<br/>Parte relacionada não encontrada para a chave {related_party_key}<br/><small>Related_party not found for key {related_party_key}</small> |
| <a id="COP000259"></a>`COP000259` | 400 | **Bad Request**<br/>Parte relacionada do tipo {person_type} não permite documento do tipo {document_type}<br/><small>{person_type} type related party not allow {document_type} document type</small> |
| <a id="COP000261"></a>`COP000261` | 409 | **Conflict**<br/>Operação de crédito já cancelada: {credit_operation_key}<br/><small>Credit operation already canceled: {credit_operation_key}</small> |
| <a id="COP000262"></a>`COP000262` | 400 | **Bad Request**<br/>A garantia {collateral_type} não aceita o tipo de juros fornecido.<br/><small>The colateral {collateral_type} does not accept the given interest type.</small> |
| <a id="COP000264"></a>`COP000264` | 400 | **Bad Request**<br/>Chave da operação duplicada.<br/><small>Duplicate credit operation key.</small> |
| <a id="COP000265"></a>`COP000265` | 400 | **Bad Request**<br/>Objeto com as informações do refinancimento não foi enviado corretamente<br/><small>Refinancing object was not sent</small> |
| <a id="COP000266"></a>`COP000266` | 400 | **Bad Request**<br/>Valor desembolsado da operação não é suficiente para quitar as operações recebidas<br/><small>Disbursed amount is not enough to refinance the operations received</small> |
| <a id="COP000267"></a>`COP000267` | 400 | **Bad Request**<br/>Não há parcelas abertas para fechar uma operação refinanciada.<br/><small>There is no opened installments to settle refinanced credit operation.</small> |
| <a id="COP000268"></a>`COP000268` | 400 | **Bad Request**<br/>Status da operação refinanciada não permite essa operação.<br/><small>Refinanced operation status does not allow this operation.</small> |
| <a id="COP000269"></a>`COP000269` | 400 | **Bad Request**<br/>Faltando dados para fechar operação de refinanciamento ou portabilidade<br/><small>Missing data to settle refinancing or portability operation.</small> |
| <a id="COP000270"></a>`COP000270` | 400 | **Bad Request**<br/>Valor de desembolso do refinanciamento não está de acordo com os valores de percentage receivable.<br/><small>Refinancing disbursing amount doesn't match percentage receivable in disbursement accounts.</small> |
| <a id="COP000271"></a>`COP000271` | 400 | **Bad Request**<br/>Status da operação não permite a reapresentação.<br/><small>Operation status does not permit change disbursement date.</small> |
| <a id="COP000272"></a>`COP000272` | 400 | **Bad Request**<br/>Já eixste uma operação de crédito de refinanciamento vinculada a uma das operações enviadas.<br/><small>There is another refinancing credit operation created with the same sent refinanced operation.</small> |
| <a id="COP000273"></a>`COP000273` | 400 | **Bad Request**<br/>O assignment type ou a document key devem estar presentes na requisição.<br/><small>Assignment type or document key must be in request.</small> |
| <a id="COP000274"></a>`COP000274` | 400 | **Bad Request**<br/>O número de documento {document_number} ja existe nos destinos desembolsáveis desse solicitante.<br/><small>The document number {document_number} already exists for this requester disbursable destinations.</small> |
| <a id="COP000275"></a>`COP000275` | 400 | **Bad Request**<br/>O número de ispb enviado deve ser igual ao número ISPB da instituição financeira.<br/><small>Sent ispb number doesn't match financial institution ispb number.</small> |
| <a id="COP000276"></a>`COP000276` | 400 | **Bad Request**<br/>Garantia do contrato não permite que a operação seja recalculada.<br/><small>Collateral type doesn't allow to recalculate operation.</small> |
| <a id="COP000277"></a>`COP000277` | 400 | **Bad Request**<br/>Não é permitido alterar data de desembolso após {number_of_days} dias da reserva da garantia {collateral_type}.<br/><small>Changing disbursement date is not allowed after {number_of_days} days after {collateral_type} collateral reservation.</small> |
| <a id="COP000278"></a>`COP000278` | 400 | **Bad Request**<br/>O campo limit_days_to_disburse deve ser informado para operações com esse tipo de garantia: {collateral_type}.<br/><small>The field limit_days_to_disburse must be informed for operations with this collateral type: {collateral_type}.</small> |
| <a id="COP000279"></a>`COP000279` | 400 | **Bad Request**<br/>Data de desembolso deve ser informada para operações com esse tipo de garantia: {collateral_type}.<br/><small>Disbursement date must be informed for operations with this collateral type: {collateral_type}.</small> |
| <a id="COP000280"></a>`COP000280` | 400 | **Bad Request**<br/>O boleto ja foi pago ou agendado.<br/><small>Bank slip is already paid or scheduled.</small> |
| <a id="COP000281"></a>`COP000281` | 400 | **Bad Request**<br/>Data de pagamento da parcela não é uma data válida.<br/><small>Installment paid at date is invalid.</small> |
| <a id="COP000282"></a>`COP000282` | 403 | **Unauthorized**<br/>As operações refinanciadas devem ser do mesmo requester que está pedindo a operação de refinanciamento.<br/><small>Refinanced credit operations must be from the same requester.</small> |
| <a id="COP000283"></a>`COP000283` | 400 | **Bad Request**<br/>O número de documento das operações refinanciadas deve o mesmo que da operação de refinanciamento.<br/><small>Refinanced operations issuer document must be the same as the refinancing operation.</small> |
| <a id="COP000284"></a>`COP000284` | 400 | **Bad Request**<br/>A porcentagem entre a tc global mais seguro e o valor de emissão ({tac_percentage}%) é maior que a porcentagem máxima de tc ({maximum_tac_percentage}%). A tc global mais seguro enviada foi de R${global_tac} e, para ser válido, o valor de tc global mais seguro deve ser de até R${valid_tac}.<br/><small>The percentage between global tc plus insurance and issue amount ({tac_percentage}%) is greater than the maximum tc percentage ({maximum_tac_percentage}%). The global tc plus insurance sent was R${global_tac} and, to be valid, the global tc plus insurance amount must be until R${valid_tac}.</small> |
| <a id="COP000285"></a>`COP000285` | 400 | **Bad Request**<br/>A porcentagem entre o rebate e o valor de emissão ({rebate_percentage}%) é maior que a porcentagem máxima de rebate ({maximum_rebate_percentage}%). O valor de rebate enviado foi de R${rebate_amount} e, para ser válido, o valor de rebate deve ser de até R${valid_rebate}.<br/><small>The percentage between rebate and issue amount ({rebate_percentage}%) is greater than the maximum rebate percentage ({maximum_rebate_percentage}%). The rebate amount sent was R${rebate_amount} and, to be valid, the rebate amount must be until R${valid_rebate}.</small> |
| <a id="COP000286"></a>`COP000286` | 400 | **Bad Request**<br/>Informações de desembolso inválido. Desembolso por boleto deve possuir linha digitavel(digitable_line).<br/><small>Invalid disbursement information payload. Bank slip disbursement type must have a digitable line(digitable_line).</small> |
| <a id="COP000287"></a>`COP000287` | 400 | **Bad Request**<br/>Informações de desembolso inválido. A conta de desembolso precisa possuir número, digito e agência ou uma chave pix.<br/><small>Invalid disbursement information payload. The disbursement account must have account number, digit and branch or a pix key.</small> |
| <a id="COP000288"></a>`COP000288` | 400 | **Bad Request**<br/>Informações de desembolso inválido. O número ispb ou código da instituição financeira deve ser informado.<br/><small>Invalid disbursement information payload. The target bank ispb number or financial institution code number must be informed.</small> |
| <a id="COP000289"></a>`COP000289` | 400 | **Bad Request**<br/>Configuração do requester para gravame não encontrada. Por favor entre em contato com o suporte.<br/><small>Requester configuration for car collateral fee not found. Please contact support.</small> |
| <a id="COP000290"></a>`COP000290` | 400 | **Bad Request**<br/>O campo de data {field_pt} precisa ter uma data menor ou igual a hoje<br/><small>The date field {field_en} must have a date lower or equal from today.</small> |
| <a id="COP000291"></a>`COP000291` | 400 | **BadRequest**<br/>Accrual da parcela do dia anterior precisa ser calculado primeiro.<br/><small>Installment Accrual from day before needs to be calculated first.</small> |
| <a id="COP000292"></a>`COP000292` | 400 | **BadRequest**<br/>Operação {credit_operation_key} está cedida na data de referência.<br/><small>Operation {credit_operation_key} is assigned on reference date.</small> |
| <a id="COP000293"></a>`COP000293` | 400 | **BadRequest**<br/>Operação {credit_operation_key} está cancelada na data de referência.<br/><small>Operation {credit_operation_key} is canceled on reference date.</small> |
| <a id="COP000294"></a>`COP000294` | 400 | **BadRequest**<br/>Operação {credit_operation_key} está quitada na data de referência.<br/><small>Operation {credit_operation_key} is settled on reference date.</small> |
| <a id="COP000296"></a>`COP000296` | 400 | **Bad Request**<br/>A taxa informada/calculada da operação, ultrapassa o permitido por lei para o tipo de garantia informada.  Taxa informada/calculada da operação: {montlhy_rate}.  Limite permitido por lei para o tipo de garantia {collateral_type}: {max_interest_rate}.<br/><small>The interest rate informed/calculated for the operation exceeds what is permitted by law for the collateral type informed.  Informed/calculated interest rate: {montlhy_rate}.  Limit allowed by law for the collateral type {collateral_type}: {max_interest_rate}.</small> |
| <a id="COP000297"></a>`COP000297` | 400 | **Bad Request**<br/>O produto de INSS está temporariamente indisponível<br/><small>The INSS product is temporarily unavailable</small> |
| <a id="COP000298"></a>`COP000298` | 400 | **Bad Request**<br/>O produto de cartão benefício INSS está temporariamente indisponível<br/><small>The card benefit INSS product is temporarily unavailable</small> |
| <a id="COP000299"></a>`COP000299` | 400 | **Bad Request**<br/>A operação {credit_operation_key} está cancelada, mas não possui um evento de cancelamento.<br/><small>The operation {credit_operation_key} is canceled, but does not have a cancel event.</small> |
| <a id="COP000300"></a>`COP000300` | 400 | **Bad Request**<br/>Existe um ou mais dias de accrual não calculados para essa operação {credit_operation_key}.<br/><small>There is one or more accrual days not calculated for the operation {credit_operation_key}.</small> |
| <a id="COP000301"></a>`COP000301` | 400 | **Bad Request**<br/>A operação {credit_operation_key} não possui evento de desembolso antes da data de referência.<br/><small>The operation {credit_operation_key} does not have a disbursement event before reference date.</small> |
| <a id="COP000302"></a>`COP000302` | 404 | **Not Found**<br/>Accrual não encontrado.<br/><small>Accrual not found.</small> |
| <a id="COP000304"></a>`COP000304` | 400 | **BadRequest**<br/>Accrual da operação {credit_operation_key} do dia anterior precisa ser calculado primeiro.<br/><small>Credit Operation {credit_operation_key} Accrual from day before needs to be calculated first.</small> |
| <a id="COP000305"></a>`COP000305` | 400 | **Bad Request**<br/>A operação {credit_operation_key} está quitada, mas não possui um evento de quitação.<br/><small>The operation {credit_operation_key} is settled, but does not have a settlement event.</small> |
| <a id="COP000306"></a>`COP000306` | 400 | **Bad Request**<br/>Saldo devedor de refinanciamento ({refinancing_due_balance}) deve ser menor ou igual que o saldo devedor original da operação ({present_value}).<br/><small>Refinancing due balance ({refinancing_due_balance}) must be lower or equal than original credit operation assignment amount ({present_value}).</small> |
| <a id="COP000307"></a>`COP000307` | 400 | **Bad Request**<br/>Saldo devedor de refinanciamento ({refinancing_due_balance}) mais valor de entrada ({entry_value}), que é {refinancing_sum}, deve ser menor ou igual que o saldo devedor original da operação ({present_value}).<br/><small>Refinancing due balance ({refinancing_due_balance}) plus entry value ({entry_value}), that is {refinancing_sum}, must be lower or equal than original credit operation assignment amount ({present_value}).</small> |
| <a id="COP000308"></a>`COP000308` | 400 | **Bad Request**<br/>Endosso não encontrada<br/><small>Endorsement not found</small> |
| <a id="COP000309"></a>`COP000309` | 400 | **Bad Request**<br/>A data atual está fora do intervalo de desembolso.<br/><small>Today's date is outside the disbursement range.</small> |
| <a id="COP000310"></a>`COP000310` | 400 | **Bad Request**<br/>Data de referência é anterior à data mínima permitida (2022-12-26).<br/><small>Reference date is before permitted minimum date (2022-12-26)</small> |
| <a id="COP000311"></a>`COP000311` | 404 | **Not Found**<br/>Liquidação CETIP não encontrada<br/><small>CETIP assignment not found</small> |
| <a id="COP000312"></a>`COP000312` | 400 | **Bad Request**<br/>Operação de crédito em status de {operation_status} não pode ser recalculada.<br/><small>Credit operation in {operation_status} status can't be recalculate.</small> |
| <a id="COP000313"></a>`COP000313` | 404 | **Invalid Installment Status**<br/>Inválido para aditar parcela no status: {installment_status}.<br/><small>Invalid to amend installment on status: {installment_status}.</small> |
| <a id="COP000314"></a>`COP000314` | 400 | **Bad Request**<br/>Operação inválida para operação não-aditada. O status atual é: {credit_operation_status}.<br/><small>Invalid operation for non-amended operation. The actual status is: {credit_operation_status}.</small> |
| <a id="COP000315"></a>`COP000315` | 400 | **Bad Request**<br/>O número de contrato da operação aditada ({amendment_credit_operation_contract_number}) é diferente do número de contrato da nova operação ({credit_operation_contract_number}).<br/><small>Amendment operation contract number ({amendment_credit_operation_contract_number}) is different from the contract number of the new operation ({credit_operation_contract_number}).</small> |
| <a id="COP000316"></a>`COP000316` | 400 | **Bad Request**<br/>O valor de emissão obtido pela operação de crédito aditada (R${final_disbursed_amount}) é diferente do saldo devedor enviado (R${due_balance}).<br/><small>Final disbursed amount originated by the amendment credit operation (R${final_disbursed_amount}) is different from the due balance sent (R${due_balance}).</small> |
| <a id="COP000317"></a>`COP000317` | 400 | **Bad Request**<br/>Operação já está no status de aditada.<br/><small>Operation is already on amended status.</small> |
| <a id="COP000319"></a>`COP000319` | 400 | **Bad Request**<br/>Emissor deve ser uma pessoa jurídica para operações do tipo Nota comercial.<br/><small>Issuer must be a legal person for Commercial Paper operation type.</small> |
| <a id="COP000320"></a>`COP000320` | 400 | **Bad Request**<br/>Campo portability data deve estar no collateral data para garantias de portabilidade.<br/><small>Portability data field must be in collateral data for portability collateral reservation type.</small> |
| <a id="COP000321"></a>`COP000321` | 400 | **Bad Request**<br/>Desembolso não é permitido para conta salário.<br/><small>Disbursement is not allowed for salary account type.</small> |
| <a id="COP000322"></a>`COP000322` | 400 | **Bad Request**<br/>Valor de pagamento excede o valor devido<br/><small>Paid amount exceeds due balance</small> |
| <a id="COP000323"></a>`COP000323` | 400 | **Bad Request**<br/>A diferença entre a soma dos valores presentes das parcelas ({sum_present_values}) e a soma dos valores de amortização das parcelas ({sum_principal}) não pode ser negativa.<br/><small>The difference between the sum of installments present amounts ({sum_present_values}) and the sum of installments principal amounts ({sum_principal}) can't be negative.</small> |
| <a id="COP000324"></a>`COP000324` | 400 | **Bad Request**<br/>Valor de pagamento excede o valor devido com valor restante de {remaining_amount}<br/><small>Paid amount exceeds due balance with remaining amount {remaining_amount}</small> |
| <a id="COP000325"></a>`COP000325` | 400 | **Bad Request**<br/>Diferença entre period e valor total da parcela ou data de vencimento foi encontrada.<br/><small>Difference between period and installment total amount or due date was found.</small> |
| <a id="COP000326"></a>`COP000326` | 400 | **Bad Request**<br/>O status atual da operação de crédito não permite atualizar a parte relacionada. O status atual é :{credit_operation_status}.<br/><small>Credit operation actual status is not allowed for update related party. The actual status is: {credit_operation_status}.</small> |
| <a id="COP000327"></a>`COP000327` | 400 | **Bad Request**<br/>Valor Cetip diferente do valor total da parcela. Installment key:{installment_key}<br/><small>Cetip amount different from installment total amount. Installment key: {installment_key}.</small> |
| <a id="COP000328"></a>`COP000328` | 400 | **Bad Request**<br/>O tipo de garantia {collateral_type} não permite atualizar a parte relacionada.<br/><small>Collateral type {collateral_type} is not allowed for update related party.</small> |
| <a id="COP000329"></a>`COP000329` | 400 | **Bad Request**<br/>Parte relacionada não encontrada para a related party key informada: {related_party_key}<br/><small>Related party not found for given related party key: {related_party_key}</small> |
| <a id="COP000330"></a>`COP000330` | 400 | **Bad Request**<br/>Garantia do tipo {collateral_type} não permite essa ação.<br/><small>Collateral type {collateral_type} does not allow this action.</small> |
| <a id="COP000331"></a>`COP000331` | 400 | **Bad Request**<br/>Os dias possívies para o desembolso devem ser de no máximo 30 dias.<br/><small>The possible days to disburse must be 30 at máximum.</small> |
| <a id="COP000332"></a>`COP000332` | 400 | **Bad Request**<br/>Não é possível reverter essa operação devido devido à não existência de disbursement key.<br/><small>Cant't reverse this operation due to no disbursement key.</small> |
| <a id="COP000333"></a>`COP000333` | 400 | **Bad Request**<br/>O valor de desembolso final não pode ser negativo.<br/><small>Credit Operation final disbursement cannot be negative.</small> |
| <a id="COP000334"></a>`COP000334` | 400 | **Bad Request**<br/>Reversão não permitida devido ao status da credit operation ser diferente de canceled.<br/><small>Reversal action not allowed because credit operation is not canceled.</small> |
| <a id="COP000335"></a>`COP000335` | 400 | **Bad Request**<br/>O valor de cessão é superior ao valor final da operação.<br/><small>The assignment amount is superior than the operation final amount.</small> |
| <a id="COP000336"></a>`COP000336` | 400 | **Bad Request**<br/>Somente tipos de tarifas relacionados com cessão são permitidos<br/><small>Only assignment related fee types permitted</small> |
| <a id="COP000337"></a>`COP000337` | 400 | **Bad Request**<br/>O CET da operação, ultrapassa o permitido por lei para o tipo de garantia informada.  CET informado/calculado da operação: {cet}.  Limite permitido por lei para o tipo de garantia {collateral_type}: {max_cet}.<br/><small>The CET informed/calculated for the operation exceeds what is permitted by law for the collateral type informed.  Informed/calculated CET: {cet}.  Limit allowed by law for the collateral type {collateral_type}: {max_cet}.</small> |
| <a id="COP000338"></a>`COP000338` | 400 | **Bad Request**<br/>Operação não pode ir para opened devido ao seu status {credit_operation_status}.<br/><small>Operation cannot became opened due to it's current status {credit_operation_status}.</small> |
| <a id="COP000339"></a>`COP000339` | 400 | **Bad Request**<br/>O valor de desembolso final não pode ser negativo. Opção de desembolso: {disbursement_option} Valor de Emissão {issue_amount}<br/><small>Credit Operation final disbursement cannot be negative. Disbursement option: {disbursement_option} Issue amount: {issue_amount}</small> |
| <a id="COP000341"></a>`COP000341` | 400 | **Bad Request**<br/>Não é possível calcular valores presentes das parcelas para operação no status: {credit_operation_status}.<br/><small>It is not possible to calculate installment present values for operation in status: {credit_operation_status}.</small> |
| <a id="COP000342"></a>`COP000342` | 404 | **Not Found**<br/>Recibo de Garantia Não Encontrado para essa Operação de Crédito Informada<br/><small>No Collateral Receipt Found for Informed Credit Operation</small> |
| <a id="COP000343"></a>`COP000343` | 422 | **Unprocessable Entity**<br/>Serviço da Celcoin indisponível.<br/><small>Celcoin service unavailable.</small> |
| <a id="COP000344"></a>`COP000344` | 400 | **Bad Request**<br/>Não foi possível criar a action.<br/><small>Action could not be created.</small> |
| <a id="COP000345"></a>`COP000345` | 400 | **Bad Request**<br/>O valor final ultrapassa o desembolsado ou emitido. Garanta que a soma dos valores das installments supere o valor desembolsado ou emitido.<br/><small>The final amount exceeds the disbursed or issue amount. Ensure the sum of installments amount does surpass the disbursed or issued amount.</small> |
| <a id="COP000346"></a>`COP000346` | 400 | **Bad Request**<br/>Os dias do ano de base não podem ser null.<br/><small>Base year days must not be null.</small> |
| <a id="COP000347"></a>`COP000347` | 400 | **Bad Request**<br/>Essa requisição só pode ser feita caso a operação tenha uma data de desembolso.<br/><small>This request can only be made if the operation has a disbursement date.</small> |
| <a id="COP000348"></a>`COP000348` | 400 | **Bad Request**<br/>Operação com status {credit_operation_status} não pode ser quitada.<br/><small>Operation with status {credit_operation_status} cannot be settled.</small> |
| <a id="COP000349"></a>`COP000349` | 400 | **Bad Request**<br/>Sistema instável. Por favor, tente novamente em alguns minutos.<br/><small>Sistem with instabillity. Please, retry again in a feel minutes.</small> |
| <a id="COP000350"></a>`COP000350` | 400 | **Bad Request**<br/>A ação de reversão não é permitida, devido à disbursement key da operação de crédito não bate com a incoming disbursement key.<br/><small>The reversal action is not allowed, because the credit operation disbursement key do not match with incoming disbursement key.</small> |
| <a id="COP000351"></a>`COP000351` | 400 | **Bad Request**<br/>Operação com garantia constituída não pode ser recalculada.<br/><small>Operation with collateral constituted cannot be recalculated.</small> |
| <a id="COP000352"></a>`COP000352` | 400 | **Bad Request**<br/>Data {date_string} não é uma data valida. Campo de data: {date_name}<br/><small>Date {date_string} is not a valid date. Date field: {date_name}</small> |
| <a id="COP000353"></a>`COP000353` | 400 | **Bad Request**<br/>Existem operações em status diferente de waiting disbursement.<br/><small>There are operations status not in waiting disbursement.</small> |
| <a id="COP000354"></a>`COP000354` | 400 | **Bad Request**<br/>Operação desembolsada previamente com disbursement key não pode ser cancelada forçadamente. Por favor, reverta as transfers.<br/><small>Operation previously disbursed with disbursement key cannot force cancel. Please revert transfers.</small> |
| <a id="COP000355"></a>`COP000355` | 400 | **Bad Request**<br/>Operação não elegível para cobrança de taxa do tipo tc. Por favor, não use esse tipo de fee para esse tomador de crédito.<br/><small>Operation not eligible for tc fee charge. Please do not use this fee type for this borrower.</small> |
| <a id="COP000356"></a>`COP000356` | 400 | **Bad Request**<br/>O tamanho do número da conta deve ser menor do que 13 para transferências do tipo Ted para contas que não sejam de pagamento.<br/><small>Account number length must be less than 13 for TED transfer method to non-payment account type.</small> |
| <a id="COP000357"></a>`COP000357` | 400 | **Bad Request**<br/>O número do documento é uma propriedade obrigatória.<br/><small>Issuer document number is a required property.</small> |
| <a id="COP000358"></a>`COP000358` | 400 | **Bad Request**<br/>O valor da tc global mais seguro  ({tac_amount}) é maior que o limite ({tac_limit_amount}) permitido para essa faixa de valor de emissão.<br/><small>The global tc plus insurance amount ({tac_amount}) is greater than the limit ({tac_limit_amount}) allowed for this range of issued amount.</small> |
| <a id="COP000359"></a>`COP000359` | 409 | **Conflict**<br/>Essa parcela já foi paga há mais de um dia.<br/><small>This installment has already been paid more than a day ago.</small> |
| <a id="COP000360"></a>`COP000360` | 400 | **Bad Request**<br/>Expiração do qr code da reversal não pode estar no passado.<br/><small>Reversal qr code expiration date cannot be in past.</small> |
| <a id="COP000361"></a>`COP000361` | 400 | **Bad Request**<br/>O Requester ainda não possui o parâmetro payment_type_configuration em sua configuração. Por favor, envie-o para continuar.<br/><small>The Requester Configuration doesn't have a payment_type_configuration parameter yet. Please provide it to continue.</small> |
| <a id="COP000362"></a>`COP000362` | 409 | **Conflict**<br/>Essa parcela já foi paga hoje.<br/><small>This installment has already been paid today.</small> |
| <a id="COP000363"></a>`COP000363` | 400 | **Bad Request**<br/>Essa operação de crédito esta no status 'canceled', 'settled' ou 'canceled_permanently'.<br/><small>This credit operation is in 'canceled', 'settled' or 'canceled_permanently' status.</small> |
| <a id="COP000364"></a>`COP000364` | 400 | **Bad Request**<br/>A data de desembolso da operação refinanceada precisa ser antes ou igual da data de desembolso da que está fazendo o refinanciamento.<br/><small>Refinanced operation disbursement date must be before or equal refinancing disbursement date.</small> |
| <a id="COP000365"></a>`COP000365` | 404 | **Not Found**<br/>Método de pagamento não encontrado.<br/><small>Payment method not found.</small> |
| <a id="COP000366"></a>`COP000366` | 400 | **Bad Request**<br/>DDD: {area_code} é invalido para o número de telefone da parte relacionada.<br/><small>Area code: {area_code} is invalid for related party phone number.</small> |
| <a id="COP000367"></a>`COP000367` | 400 | **Bad Request**<br/>A configuração: {reversal_to_fund} precisa ter uma conta do comprador configurada.<br/><small>The configuration: {reversal_to_fund} must have a purchaser account configured.</small> |
| <a id="COP000368"></a>`COP000368` | 400 | **Bad Request**<br/>A operação de crédito não pode estar cedida para criar taxas de contrato externas.<br/><small>Credit operation can't be assigned to create external contract fees.</small> |
| <a id="COP000369"></a>`COP000369` | 400 | **Bad Request**<br/>Para ceder operação pracisa envar a data de cessão.<br/><small>To assign operation you must send assigned at.</small> |
| <a id="COP000370"></a>`COP000370` | 404 | **Not Found**<br/>Operação refinanciada não encontrada.<br/><small>Refinancing credit operation not found.</small> |
| <a id="COP000371"></a>`COP000371` | 400 | **Bad Request**<br/>Parte relacionada do tipo pessoa deve possuir letras no nome. Nome invalido: {related_party_name}<br/><small>Natural person type related party must have letters in name. Invalid name: {related_party_name}</small> |
| <a id="COP000372"></a>`COP000372` | 400 | **Bad Request**<br/>Limite do número de parcelas excedido. Número de parcelas máximo permitido:{number_of_installments}<br/><small>Number of installments limit exceeded. Maximum number of installments allowed:{number_of_installments}</small> |
| <a id="COP000373"></a>`COP000373` | 400 | **Bad Request**<br/>Não é possível cancelar permanentemente porque a reserva da garantia ainda está sendo processada.<br/><small>Unable to cancel permanently because the collateral reservation is still being processed.</small> |
| <a id="COP000374"></a>`COP000374` | 400 | **Bad Request**<br/>Não é possível alterar a data de desembolso por conta do horário de funcionamento da TED. Para desembolso via TED, a data de desembolso precisa ser um dia útil.<br/><small>Cannot change disbursement date due to TED working time. For TED disbursement, disbursement date must be a work day.</small> |
| <a id="COP000375"></a>`COP000375` | 400 | **Bad Request**<br/>A garantia ainda não foi averbada para realizar essa ação.<br/><small>The collateral was not reserved yet for performing this action.</small> |
| <a id="COP000376"></a>`COP000376` | 400 | **Bad Request**<br/>Não é possível aplicar rebate. O valor do fee precisa ser maior que zero.<br/><small>Cannot apply external fee. Fee amount must be greather than 0.</small> |
| <a id="COP000377"></a>`COP000377` | 400 | **Bad Request**<br/>Essa operação de crédito não atende a todos os requisitos para a troca de cessionário.<br/><small>This credit operation does not fullfil the requisites for changing its purchaser.</small> |
| <a id="COP000378"></a>`COP000378` | 400 | **Bad Request**<br/>Não é possível quitar parcelas associadas a operações de refinanciamento.<br/><small>Cannot settle installment associated with a refinanced credit operation.</small> |
| <a id="COP000379"></a>`COP000379` | 400 | **Bad Request**<br/>Para usar o seguro qi, precisa ser enviado {field_translated}<br/><small>To use qi insurance, {field} must be sent</small> |
| <a id="COP000380"></a>`COP000380` | 400 | **Bad Request**<br/>Para usar seguro qi, não pode ser enviado {filed_translator}.<br/><small>To use insurance premium qi can not send {field}.</small> |
| <a id="COP000381"></a>`COP000381` | 400 | **Bad Request**<br/>Tomador não elegível para usar seguro qi. {reason_translated}<br/><small>Issuer not eligible to use insurance premium qi. {reason}</small> |
| <a id="COP000382"></a>`COP000382` | 400 | **Bad Request**<br/>Um endereço de ip nos dados de assinatura é necessário para registro dessa garantia.<br/><small>An IP address in signature data is required to register this collateral.</small> |
| <a id="COP000383"></a>`COP000383` | 404 | **Not Found**<br/>Parte relacionada não encontrada para o cpf {related_party_individual_document_number}<br/><small>Related_party not found for document number {related_party_individual_document_number}</small> |
| <a id="COP000384"></a>`COP000384` | 400 | **Bad Request**<br/>Não é possível trocar o tipo de desembolso para TED se a data de desembolso não for dia útil.<br/><small>It's not possible change disbursement type to TED if disbursement date is not work day.</small> |
| <a id="COP000385"></a>`COP000385` | 409 | **Conflict**<br/>Metadata ja existe para essa operação de crédito.<br/><small>Metadata already exists for this credit operation.</small> |
| <a id="COP000386"></a>`COP000386` | 400 | **Bad Request**<br/>'Metadata key' e 'metadata value' devem ser informados.<br/><small>'Metadata key' and 'metadata value' must be informed.</small> |
| <a id="COP000387"></a>`COP000387` | 404 | **Not Found**<br/>'Metadata não encontrado.<br/><small>Metadata not found.</small> |
| <a id="COP000388"></a>`COP000388` | 400 | **Bad Request**<br/>O novo valor de face da parcela deve ser menor que o valor antigo. Valor antigo: {old_installment_face_value}, Valor novo: {new_installment_face_value}.<br/><small>The new installment face value must be less than the old installment face value. Old value: {old_installment_face_value}, New value: {new_installment_face_value}.</small> |
| <a id="COP000389"></a>`COP000389` | 400 | **Bad Request**<br/>Operações fora da elegibilidade do cessionário. Número de parcelas está abaixo do mínimo permitido.<br/><small>Operations outside the purchase's eligibility. Number of installments is below the minimum allowed</small> |
| <a id="COP000390"></a>`COP000390` | 400 | **Bad Request**<br/>Campos faltando para requester_required_data: {missing_fields}<br/><small>Missing fields for requester_required_data: {missing_fields}</small> |
| <a id="COP000391"></a>`COP000391` | 400 | **Bad Request**<br/>Documentos faltando para requester_required_data: {missing_documents}<br/><small>Missing documents for requester_required_data: {missing_documents}</small> |
| <a id="COP000392"></a>`COP000392` | 400 | **Bad Request**<br/>O novo valor de face da parcela está errado. Valor antigo: {old_installment_face_value}, Valor novo: {new_installment_face_value}.<br/><small>The new installment face value is wrong. Old value: {old_installment_face_value}, New value: {new_installment_face_value}.</small> |
| <a id="COP000393"></a>`COP000393` | 400 | **Bad Request**<br/>Status da operação de crédito não permite essa operação. status: {credit_operation_status}<br/><small>Credit operation status does not allow this operation. status: {credit_operation_status}</small> |
| <a id="COP000394"></a>`COP000394` | 400 | **Bad Request**<br/>Numero de telefone: {phone_number} é invalido para o número de telefone da parte relacionada.<br/><small>Phone number: {phone_number} is invalid for related party phone number.</small> |
| <a id="COP000395"></a>`COP000395` | 400 | **Bad Request**<br/>A operação de crédito não está cedida<br/><small>Credit Operation is already not assigned</small> |
| <a id="COP000396"></a>`COP000396` | 400 | **Bad Request**<br/>A data de recompra é depois da data de cessão<br/><small>The unassigned_at is before than the assigned_at.</small> |
| <a id="COP000397"></a>`COP000397` | 400 | **Bad Request**<br/>Dados do tomador são invalidos: {invalid_reason}<br/><small>Issuer data is invalid: {invalid_reason}</small> |
| <a id="COP000398"></a>`COP000398` | 400 | **Bad Request**<br/>Operações do tipo portabilidade não podem ter tarifas do tipo tc.<br/><small>Operations of type portability can not have contract fees of type tc.</small> |
| <a id="COP000399"></a>`COP000399` | 400 | **Bad Request**<br/>Tarifas só podem ser cadastradas via billing api.<br/><small>Contract fees only can be used using billing api.</small> |
| <a id="COP000400"></a>`COP000400` | 400 | **Bad Request**<br/>Tarifa do tipo {fee_type} não pode ser criada ou alterada.<br/><small>Contract fee of fee type {fee_type} can not be created or changed.</small> |
| <a id="COP000401"></a>`COP000401` | 400 | **Bad Request**<br/>Tarifa do tipo {fee_type} já existe.<br/><small>Contract fee of fee type {fee_type} already exists.</small> |
| <a id="COP000402"></a>`COP000402` | 400 | **Bad Request**<br/>Status de reversão {reversal_status} não permitido.<br/><small>Reversal status {reversal_status} not permitted.</small> |
| <a id="COP000403"></a>`COP000403` | 400 | **Bad Request**<br/>Operações fora da elegibilidade do cessionário. Taxa de juros da operação está abaixo do mínimo permitido.<br/><small>Operations outside the purchase's eligibility. Interest rate of the operation is below the minimum allowed.</small> |
| <a id="COP000404"></a>`COP000404` | 404 | **Not Found**<br/>Análise do tomador não existe para operação de crédito com chave {credit_operation_key}<br/><small>Issuer analysis does not exist for credit operation with key {credit_operation_key}</small> |
| <a id="COP000405"></a>`COP000405` | 400 | **Bad Request**<br/>Refinanciamento não permitido quando a operação de crédito refinanciada está cedida.<br/><small>Refinancing not allowed when refinanced credit operation is assigned.</small> |
| <a id="COP000406"></a>`COP000406` | 404 | **Not Found**<br/>Operação de crédito não encontrada para essa análise de tomador.<br/><small>Credit operation not found for this issuer analysis</small> |
| <a id="COP000407"></a>`COP000407` | 400 | **Bad Request**<br/>Operação de crédito já escolhida para essa data.<br/><small>Credit operation already set for this date.</small> |
| <a id="COP000408"></a>`COP000408` | 400 | **Bad Request**<br/>Validação de elegibilidade para cessão falhou.<br/><small>Assignment eligibility validation failed.</small> |
| <a id="COP000409"></a>`COP000409` | 409 | **Conflict**<br/>Operação de crédito já cancelada permanentemente: {credit_operation_key}<br/><small>Credit operation already canceled permanently: {credit_operation_key}</small> |
| <a id="COP000410"></a>`COP000410` | 400 | **Bad Request**<br/>Código cnae invalido ({cnae_code}) informado pra parte relacionada.<br/><small>Invalid cnae code ({cnae_code}) informed to related party.</small> |
| <a id="COP000417"></a>`COP000417` | 400 | **Bad Request**<br/>Tarifas Externas só podem ser cadastradas via rebate api.<br/><small>External Contract fees only can be used using rebate api.</small> |
| <a id="COP000418"></a>`COP000418` | 400 | **Bad Request**<br/>A porcentagem entre o seguro e o valor de emissão ({insurance_premium_percentage}%) é maior que a porcentagem máxima de seguro ({maximum_insurance_premium_percentage}%). O valor de seguro enviado foi de R${insurance_premium_amount} e, para ser válido, o valor de seguro deve ser de até R${insurance_premium_valid_amount}.<br/><small>The percentage between insurance premium and issue amount ({insurance_premium_percentage}%) is greater than the maximum insurance premium percentage ({maximum_insurance_premium_percentage}%). The insurance premium amount sent was R${insurance_premium_amount} and, to be valid, the insurance premium amount must be until R${insurance_premium_valid_amount}.</small> |
| <a id="COP000419"></a>`COP000419` | 400 | **Bad Request**<br/>Produto de Seguro inválido ({insurance_premium_product}).<br/><small>Invalid Insurance product ({insurance_premium_product}).</small> |
| <a id="COP000420"></a>`COP000420` | 400 | **Bad Request**<br/>Parcela não está em um status válido para gerar um pagamento do tipo {payment_type}. status: {installment_status}<br/><small>Installment is not in a valid status to generate a {payment_type} payment method. status: {installment_status}</small> |
| <a id="COP000421"></a>`COP000421` | 400 | **Bad Request**<br/>Método de pagamento já existe para esta parcela. payment_type: {payment_type}<br/><small>Payment method already exists for this installment. payment_type: {payment_type}</small> |
| <a id="COP000422"></a>`COP000422` | 400 | **Bad Request**<br/>A geração de pagamento só pode ser aplicada em parcelas com data de vencimento comercial não atingida.<br/><small>Payment generation can only be applicated in installments with not pasted business due date.</small> |
| <a id="COP000423"></a>`COP000423` | 400 | **Bad Request**<br/>Método de pagamento {payment_type} não existente.<br/><small>Payment method {payment_type} does not exist.</small> |
| <a id="COP000424"></a>`COP000424` | 400 | **Bad Request**<br/>A operação de crédito não permite a geração de pagamento de parcela, porque a QI não é o agente de liquidação.<br/><small>Credit operation does not permit installment payment generation, because QI is not the settlement agent.</small> |
| <a id="COP000425"></a>`COP000425` | 400 | **Bad Request**<br/>Operação de credito sem conta de desembolso.<br/><small>Credit operation without disbursement account.</small> |
| <a id="COP000426"></a>`COP000426` | 400 | **Bad Request**<br/>A soma dos valores das parcelas não é igual ao valor pago. Soma dos valores das parcelas: {sum_installment_amount}, Valor pago: {paid_amount}<br/><small>The sum of the installment amounts is not equal to the paid amount. Sum of installment amounts: {sum_installment_amount}, Paid amount: {paid_amount}</small> |
| <a id="COP000427"></a>`COP000427` | 400 | **Bad Request**<br/>O payload não pode conter simultaneamente os campos days_to_expire e qr_code_expiration_date<br/><small>The payload cannot contain both days_to_expire and qr_code_expiration_date at the same time.</small> |
| <a id="COP000428"></a>`COP000428` | 400 | **Bad Request**<br/>A data máxima de vencimento não pode ultrapassar 14 dias úteis a partir da data de geração.<br/><small>The maximum due date cannot exceed 14 business days from the generation date.</small> |
| <a id="COP000429"></a>`COP000429` | 400 | **Bad Request**<br/>Linha digitável duplicada informada nas ações de pós-desembolso.<br/><small>Duplicate digitable line informed in after disbursement action data.</small> |
| <a id="COP000430"></a>`COP000430` | 400 | **Bad Request**<br/>A garantia {collateral_type} deve possuir um agente de crédito na lista de partes relacionadas.<br/><small>The collateral {collateral_type} must have a credit agent in related party list.</small> |
| <a id="COP000431"></a>`COP000431` | 400 | **Bad Request**<br/>'individual_document_number' deve ser informado para agente de crédito.<br/><small>'individual_document_number' must be informed for credit agent.</small> |
| <a id="COP000432"></a>`COP000432` | 403 | **Forbidden**<br/>Requester não tem permissão para reverter operações.<br/><small>Requester is not allowed to reverse operations.</small> |
| <a id="COP000433"></a>`COP000433` | 400 | **Bad Request**<br/>Pelo menos uma operação de crédito deve estar aberta para o pagamento prosseguir para o contrato {contract_number}.<br/><small>At least one credit_operation must be open for payment to proceed for contract number {contract_number}.</small> |
| <a id="COP000434"></a>`COP000434` | 400 | **Bad Request**<br/>Pelo menos uma operação de crédito deve estar aberta ou liquidada para prosseguir com o get de deduções para o contrato {contract_number}.<br/><small>At least one credit_operation must be opened or settled to proceed with get of deductions for the contract {contract_number}.</small> |
| <a id="COP000435"></a>`COP000435` | 400 | **Bad Request**<br/>A parcela não pode estar no status 'paid_partial' com o valor pago igual ou maior que o valor total da parcela.<br/><small>The installment can't be in 'paid_partial' status with paid amount equal or greater than installment total amount.</small> |
| <a id="COP000436"></a>`COP000436` | 400 | **Bad Request**<br/>Uma parte relacionada com o tipo de função: {role_type} já existe.<br/><small>A related party with role type: {role_type} already exist.</small> |
| <a id="COP000437"></a>`COP000437` | 404 | **Not Found**<br/>Nenhuma operação de portabilidade encontrada para este refinanciamento<br/><small>No portability CO found for this refinancing</small> |
| <a id="COP000438"></a>`COP000438` | 404 | **Not Found**<br/>Nenhuma operação de crédito refinanciada liquidada encontrada para este refinanciamento<br/><small>No settled refinanced credit operation found for this refinancing</small> |
| <a id="COP000439"></a>`COP000439` | 409 | **Conflict**<br/>Todas as operações de crédito refinanciadas já estão revertidas<br/><small>All refinanced credit operations are already reversed</small> |
| <a id="COP000441"></a>`COP000441` | 404 | **Not Found**<br/>Nenhuma refinanced credit operation elegível encontrada para alteração de status.<br/><small>No eligible refinanced credit operation found for status update.</small> |
| <a id="COP000442"></a>`COP000442` | 404 | **Status not found**<br/>O status informado não foi encontrado no sistema.<br/><small>The specified status was not found in the system.</small> |
| <a id="COP000443"></a>`COP000443` | 409 | **Conflict**<br/>A operação de crédito refinanciada informada já foi revertida.<br/><small>The specified refinanced credit operation is already reversed.</small> |
| <a id="COP000444"></a>`COP000444` | 400 | **Bad Request**<br/>A operação de crédito possui mais de uma operação de crédito refinanciada.<br/><small>The credit operation has more than one refinanced credit operation.</small> |
| <a id="COP000445"></a>`COP000445` | 400 | **Bad Request**<br/>O agente de crédito: {document_number} não está autorizado a emitir operação de crédito.<br/><small>The credit agent: {document_number} is not authorized to issue a credit operation.</small> |
| <a id="COP000446"></a>`COP000446` | 404 | **Not Found**<br/>Nenhuma operação de crédito refinanciada encontrada<br/><small>No refinanced credit operations found</small> |
| <a id="COP000447"></a>`COP000447` | 404 | **Not Found**<br/>Nenhuma operação de crédito refinanciada aberta encontrada<br/><small>No refinanced credit operations opened found</small> |
| <a id="COP000448"></a>`COP000448` | 400 | **Bad Request**<br/>A operação de crédito já está liquidada<br/><small>The credit operation is settled</small> |
| <a id="COP000449"></a>`COP000449` | 400 | **Bad Request**<br/>A operação de crédito não é elegível para seguro<br/><small>The credit operation is not eligible for insurance premium</small> |
| <a id="COP000450"></a>`COP000450` | 409 | **Conflict**<br/>O endereço da parte relacionada já está definido.<br/><small>The related party address is already set.</small> |
| <a id="COP000451"></a>`COP000451` | 404 | **Not Found**<br/>O endereço da parte relacionada não está definido.<br/><small>The related party address is not set.</small> |
| <a id="COP000452"></a>`COP000452` | 400 | **Bad Request**<br/>A modalidade ncom não é permitida para operações de crédito que não são ncom.<br/><small>The modality ncom is not allowed for non ncom credit operation type.</small> |
| <a id="COP000453"></a>`COP000453` | 400 | **Bad Request**<br/>A operação de crédito deve ser uma operação de crédito ncom.<br/><small>The credit operation must be a ncom credit operation.</small> |
| <a id="COP000454"></a>`COP000454` | 400 | **Bad Request**<br/>A operação de crédito está atribuída.<br/><small>The credit operation is assigned.</small> |
| <a id="COP000455"></a>`COP000455` | 404 | **Not Found**<br/>O estado civil não foi encontrado.<br/><small>The marital status was not found.</small> |
| <a id="COP000456"></a>`COP000456` | 400 | **Bad Request**<br/>O email não é válido.<br/><small>The email is not valid.</small> |
| <a id="COP000457"></a>`COP000457` | 404 | **Not Found**<br/>O sistema de propriedade não foi encontrado.<br/><small>The property system was not found.</small> |
| <a id="COP000458"></a>`COP000458` | 400 | **Bad Request**<br/>A data não pode ser mais de 110 anos atrás.<br/><small>The date cannot be more than 110 years ago.</small> |
| <a id="COP000459"></a>`COP000459` | 400 | **Bad Request**<br/>A data de nascimento deve estar no formato YYYY-MM-DD.<br/><small>The birth date must be in YYYY-MM-DD format.</small> |
| <a id="COP000460"></a>`COP000460` | 404 | **Not Found**<br/>O tipo de documento de identificação não foi encontrado.<br/><small>The document identification type was not found.</small> |
| <a id="COP000461"></a>`COP000461` | 404 | **Not Found**<br/>O gênero não foi encontrado.<br/><small>The gender was not found.</small> |
| <a id="COP000462"></a>`COP000462` | 400 | **Bad Request**<br/>O valor pago deve ser menor que o valor presente da parcela: {present_amount}.<br/><small>The paid amount must be less than the present amount of the installment: {present_amount}.</small> |
| <a id="COP000463"></a>`COP000463` | 400 | **Bad Request**<br/>O valor pago deve ser menor ou igual ao valor presente da parcela: {present_amount}.<br/><small>The paid amount must be less than or equal to the present amount of the installment: {present_amount}.</small> |
| <a id="COP000464"></a>`COP000464` | 400 | **Bad Request**<br/>O status da parcela deve ser 'paid' ou 'paid_partial'.<br/><small>The installment status must be 'paid' or 'paid_partial'.</small> |
| <a id="COP000465"></a>`COP000465` | 400 | **Bad Request**<br/>A operação de crédito deve estar cedida para ser paga.<br/><small>The credit operation must be assigned to be paid.</small> |
| <a id="COP000466"></a>`COP000466` | 400 | **Bad Request**<br/>A data de pagamento deve ser no passado.<br/><small>The paid at date must be in the past.</small> |
| <a id="COP000467"></a>`COP000467` | 400 | **Bad Request**<br/>A parcela deve estar em um status pendente para ser paga.<br/><small>The installment must be in a pending status to be paid.</small> |
| <a id="COP000468"></a>`COP000468` | 400 | **Bad Request**<br/>Não é possível alterar a data de desembolso de uma operação de crédito que possui data de fim de desembolso no passado. disbursement_end_date: {disbursement_end_date}<br/><small>Cannot change disbursement date of a credit operation that has disbursement end date in the past. disbursement_end_date: {disbursement_end_date}</small> |
| <a id="COP000469"></a>`COP000469` | 400 | **Bad Request**<br/>Não é possível pagar para o Inbursa.<br/><small>Cannot pay to Inbursa.</small> |
| <a id="COP000470"></a>`COP000470` | 400 | **Bad Request**<br/>O valor pago não pode ser zero.<br/><small>The paid amount cannot be zero.</small> |
| <a id="COP000471"></a>`COP000471` | 400 | **Bad Request**<br/>O CET anual não é válido. Recebido: {received_annual_cet}, Calculado: {calculated_annual_cet}<br/><small>The annual CET is not valid. Received: {received_annual_cet}, Calculated: {calculated_annual_cet}</small> |
| <a id="COP000472"></a>`COP000472` | 400 | **Bad Request**<br/>O CET mensal não é válido. Recebido: {received_monthly_cet}, Calculado: {calculated_monthly_cet}<br/><small>The monthly CET is not valid. Received: {received_monthly_cet}, Calculated: {calculated_monthly_cet}</small> |
| <a id="COP000473"></a>`COP000473` | 400 | **Bad Request**<br/>O campo de data {field_pt} é inválido: {reason_pt}<br/><small>The date field {field_en} is invalid: {reason_en}</small> |
| <a id="COP000474"></a>`COP000474` | 400 | **Bad Request**<br/>Pagamento de parcela antes do início do contrato<br/><small>Installment payment before contract start</small> |
| <a id="COP000475"></a>`COP000475` | 400 | **Bad Request**<br/>O valor deve ser maior que {min_amount} e menor que {max_amount}.<br/><small>Amount must be greater than {min_amount} and less than {max_amount}.</small> |
| <a id="COP000476"></a>`COP000476` | 400 | **Bad Request**<br/>O status de reserva da operação refinanciada não permite esta operação.<br/><small>The reservation status of the refinanced credit operation does not allow this operation.</small> |
| <a id="COP000477"></a>`COP000477` | 400 | **Bad Request**<br/>A data de pagamento está há mais de 5 dias da data atual<br/><small>The paid at date is more than 5 days from the current date</small> |
| <a id="COP000478"></a>`COP000478` | 400 | **Bad Request**<br/>Valor de desconto {discount_amount} excede o valor devido {due_balance}<br/><small>Discount amount {discount_amount} exceeds due balance {due_balance}</small> |
| <a id="COP000479"></a>`COP000479` | 400 | **Bad Request**<br/>Cancelamento não permitido, quantidade máxima de cancelamentos atingida<br/><small>Cancel not permitted, maximum quantity for uncancel reached</small> |
| <a id="COP000480"></a>`COP000480` | 400 | **Bad Request**<br/>A operação de crédito já está cedida e não pode ter seu cessionário alterado<br/><small>Credit Operation already assigned and cannot have its purchaser changed</small> |
| <a id="COP000481"></a>`COP000481` | 400 | **Bad Request**<br/>A operação de crédito com cessão em andamento e não pode ter seu cessionário alterado<br/><small>Credit Operation with assignment in progress and cannot have its purchaser changed</small> |
| <a id="COP000482"></a>`COP000482` | 400 | **Bad Request**<br/>Um documento do tipo {document_type} já existe para o assinante em questão.<br/><small>A document of type {document_type} already exists for this related party.</small> |
| <a id="COP000483"></a>`COP000483` | 401 | **Unauthorized**<br/>Recalculo invalido.<br/><small>Invalid recalculation.</small> |
| <a id="COP000484"></a>`COP000484` | 400 | **Bad Request**<br/>A taxa de juros mensal ou as parcelas devem ser fornecidas.<br/><small>Monthly interest rate or installments must be provided.</small> |
| <a id="COP000485"></a>`COP000485` | 400 | **Bad Request**<br/>A ação deve ser na mesma titulação do documento do emitente.<br/><small>Action must be in the same titularity as issuer document number when the operation has insurance.</small> |
| <a id="COP000486"></a>`COP000486` | 400 | **Bad Request**<br/>A ação deve ser ted ou pix quando a operação possui seguro.<br/><small>Action must be ted or pix when the operation has insurance.</small> |
| <a id="COP000487"></a>`COP000487` | 400 | **Bad Request**<br/>O valor da ação deve ser igual ao valor final de desembolso da operação de crédito menos o valor do seguro.<br/><small>Action transaction amount must be equal to credit operation final disbursement amount minus insurance premium qi amount released.</small> |
| <a id="COP000488"></a>`COP000488` | 400 | **Bad Request**<br/>A configuração do solicitante não está ativa.<br/><small>The requester configuration is not active.</small> |
| <a id="COP000506"></a>`COP000506` | 400 | **Bad Request**<br/>Inconsistência em {mismatch_field} da proposta veicular: a soma dos itens ({items_sum}) deve ser igual a proposal.{amount_field} ({expected_amount}).<br/><small>Vehicle proposal item mismatch in {mismatch_field}: sum of items ({items_sum}) must equal proposal.{amount_field} ({expected_amount}).</small> |
| <a id="COP000530"></a>`COP000530` | 400 | **Bad Request**<br/>Partes relacionadas com número de documento de identificação CIN diferente do CPF foram encontradas: {related_parties}<br/><small>Related parties with CIN document identification number different from the CPF was found: {related_parties}</small> |

### CT — Portabilidade de Crédito

133 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="CT000001"></a>`CT000001` | 400 | **Bad Request**<br/>Use POST /account |
| <a id="CT000002"></a>`CT000002` | 404 | **Not Found**<br/>Proposta não encontrada<br/><small>Proposal not found</small> |
| <a id="CT000003"></a>`CT000003` | 404 | **Not Found**<br/>Operação de crédito não encontrada ({credit_operation_key}).<br/><small>Credit Operation not found ({credit_operation_key}).</small> |
| <a id="CT000004"></a>`CT000004` | 409 | **Conflict**<br/>Status da proposta ({proposal_status}) não permite solicitação de liquidação de portabilidade.<br/><small>Proposal status ({proposal_status}) does not allow portability settlement request.</small> |
| <a id="CT000006"></a>`CT000006` | 404 | **Not Found**<br/>Instituição Financeira com código {financial_institution_code_number} não encontrada.<br/><small>Financial Institution with code {financial_institution_code_number} not found</small> |
| <a id="CT000007"></a>`CT000007` | 404 | **Not Found**<br/>Configuração de requisitante com key {requester_key} não encontrada.<br/><small>Requester configuration for requester key {requester_key}.</small> |
| <a id="CT000008"></a>`CT000008` | 400 | **Bad Request**<br/>Participantes da CCB não são iguais aos signatários<br/><small>CCB participants are not the same as the signers</small> |
| <a id="CT000009"></a>`CT000009` | 400 | **Bad Request**<br/>Valor do contrato deve ser maior que o valor do desembolso<br/><small>Contract amount must be greater than the disbursement amount</small> |
| <a id="CT000010"></a>`CT000010` | 400 | **Bad Request**<br/>Status da proposta {enumerator} inválido para cancelamento.<br/><small>Invalid proposal status {enumerator} for cancellation.</small> |
| <a id="CT000011"></a>`CT000011` | 400 | **Bad Request**<br/>Ação Inválida<br/><small>Invalid Action</small> |
| <a id="CT000012"></a>`CT000012` | 400 | **Bad Request**<br/>O campo 'type' não pode ser nulo e deve conter um dos valores ('data-signature', 'pdf-signature')<br/><small>Field 'type' cannot be null and must contain one of the values ('data-signature', 'pdf-signature')</small> |
| <a id="CT000013"></a>`CT000013` | 400 | **Bad Request**<br/>Essa operação ja foi assinada.<br/><small>This operation has already been signed.</small> |
| <a id="CT000014"></a>`CT000014` | 400 | **Bad Request**<br/>Certificadora invalida.<br/><small>Invalid document certifier</small> |
| <a id="CT000015"></a>`CT000015` | 400 | **Bad Request**<br/>Falha ao validar hash MT. Razão: {reason}<br/><small>Failed validating MT hash. Reason: {reason}</small> |
| <a id="CT000016"></a>`CT000016` | 400 | **Bad Request**<br/>signature_template_key não associada a configuração do requisitante.<br/><small>signature_template_key not associated with requester configuration.</small> |
| <a id="CT000017"></a>`CT000017` | 400 | **Bad Request**<br/>A proposta não está pendente aceite.<br/><small>The proposal is not pending accptance by requester.</small> |
| <a id="CT000018"></a>`CT000018` | 400 | **Bad Request**<br/>Falha ao validar contrato na dataprev, tente novamente.<br/><small>Failed to check contract in dataprev. Please try again.</small> |
| <a id="CT000019"></a>`CT000019` | 400 | **Bad Request**<br/>Proposta não tem número de contrato.<br/><small>Proposal has no contract number.</small> |
| <a id="CT000020"></a>`CT000020` | 400 | **Bad Request**<br/>O contrato possui erros na Dataprev.<br/><small>Contract has errors on Dataprev.</small> |
| <a id="CT000021"></a>`CT000021` | 400 | **Bad Request**<br/>Horário invalido para processo de desembolso e assinatura.<br/><small>Invalid time for signature and disbursement process.</small> |
| <a id="CT000023"></a>`CT000023` | 400 | **Bad Request**<br/>Essa operação foi cancelada.<br/><small>This operation has been canceled.</small> |
| <a id="CT000024"></a>`CT000024` | 404 | **Not Found**<br/>Portabilidade não encontrada.<br/><small>Received portability not found.</small> |
| <a id="CT000025"></a>`CT000025` | 404 | **Not Found**<br/>Status da portabilidade não encontrada.<br/><small>Received portability status not found.</small> |
| <a id="CT000026"></a>`CT000026` | 404 | **Not Found**<br/>Razão de retenção não encontrada.<br/><small>Retained reason not found.</small> |
| <a id="CT000027"></a>`CT000027` | 400 | **Bad Request**<br/>Método de aprovação fora do horário permitido<br/><small>Approved method past closing time</small> |
| <a id="CT000028"></a>`CT000028` | 400 | **Bad Request**<br/>Método de retenção fora da data e horário máximo<br/><small>Retention method past max day and closing time</small> |
| <a id="CT000029"></a>`CT000029` | 400 | **Bad Request**<br/>Razao de retenção obrigatório<br/><small>Retention reason mandatory</small> |
| <a id="CT000030"></a>`CT000030` | 400 | **Bad Request**<br/>Razao de cancelamento obrigatório<br/><small>Cancel reason mandatory</small> |
| <a id="CT000031"></a>`CT000031` | 404 | **Bad Request**<br/>Contrato não encontrado no sistema do BTG. contract_number: {message}<br/><small>Contract not found in BTG system. contract_number: {message}</small> |
| <a id="CT000032"></a>`CT000032` | 400 | **Bad Request**<br/>Data do cálculo do saldo devedor do BTG não é igual à data máxima de envio da portabilidade.<br/><small>BTG due balance date doesnt match max portability date.</small> |
| <a id="CT000033"></a>`CT000033` | 400 | **Bad Request**<br/>O operation data deve possuir um dos campos: desired_installments or installment_face_value.<br/><small>The operation data must have one of the fields: desired_installments or installment_face_value.</small> |
| <a id="CT000034"></a>`CT000034` | 400 | **Bad Request**<br/>O status do fee payment não é válido para a validação de rco.<br/><small>Invalid fee payment for rco report.</small> |
| <a id="CT000035"></a>`CT000035` | 400 | **Bad Request**<br/>Configuração incompleta do solicitante. o solicitante deve ter template key de refinanciamento. Por favor, entre em contato com nosso suporte.<br/><small>Incomplete requester configuration. the requester must have a refinancing template key. Please, contact our support.</small> |
| <a id="CT000036"></a>`CT000036` | 400 | **Bad Request**<br/>O documento de contrato da operação deve estar assinado.<br/><small>Operation contract document must be signed.</small> |
| <a id="CT000037"></a>`CT000037` | 400 | **Bad Request**<br/>Erro ao enviar reserva da garantia. {ex}<br/><small>Error while send collateral reservation.{ex}</small> |
| <a id="CT000038"></a>`CT000038` | 400 | **Bad Request**<br/>Status da operação de crédito não permite assinatura.<br/><small>Credit Operation status doesnt allow signature.</small> |
| <a id="CT000039"></a>`CT000039` | 400 | **Bad Request**<br/>Tipo da operação deve ser portability_credit_operation ou refinancing_credit_operation.<br/><small>Credit operation type must be portability_credit_operation or refinancing_credit_operation.</small> |
| <a id="CT000040"></a>`CT000040` | 400 | **Bad Request**<br/>Operação de portabilidade deve estar no status 'paid' para continuar com a operação de refinanciamento.<br/><small>Portability operation must be in 'paid' status to accept refinancing operation.</small> |
| <a id="CT000041"></a>`CT000041` | 400 | **Bad Request**<br/>Colateral da operação de portabilidade deve estar constituído para continuar operação de refinanciamento.<br/><small>Collateral from portability must be constituted to continue refinancing operation.</small> |
| <a id="CT000042"></a>`CT000042` | 400 | **Bad Request**<br/>Operação de refinanciamento deve estar emitida para prosseguir.<br/><small>Refinancing operation must be issued to proceed.</small> |
| <a id="CT000043"></a>`CT000043` | 404 | **Bad Request**<br/>Operação de refinanciamento não encontrada.<br/><small>Refinancing operation not found.</small> |
| <a id="CT000044"></a>`CT000044` | 400 | **Bad Request**<br/>Status da operação de refinanciamento não permite cancelamento.<br/><small>Refinancing operation status does not allow cancellation.</small> |
| <a id="CT000045"></a>`CT000045` | 400 | **Bad Request**<br/>Essa operação só é permitida para operações de refinanciamento com garantia de INSS.<br/><small>This operation is only allowed for collateral type social_security and dataprev_reservation refinancing operations.</small> |
| <a id="CT000046"></a>`CT000046` | 400 | **Bad Request**<br/>Status da operação de refinanciamento ({operation_status}) não permite essa operação.<br/><small>Operation status ({operation_status}) does not allow this operation.</small> |
| <a id="CT000047"></a>`CT000047` | 400 | **Bad Request**<br/>Operação de refinanciamento deve estar constituída para alterar data de desembolso.<br/><small>Refinancing operation must be constituted in Dataprev to change disbursement date.</small> |
| <a id="CT000048"></a>`CT000048` | 400 | **Bad Request**<br/>Configuração do requisitante incompleta. Por favor, entre em contato com nosso suporte.<br/><small>Incomplete requester configuration. Please Contact our support.</small> |
| <a id="CT000049"></a>`CT000049` | 400 | **Bad Request**<br/>Instituição financeira enviada no contrato original não é participante da CIP. ispb: {ispb_number}<br/><small>Financial institution sent in original contract is not CIP participant. ispb: {ispb_number}</small> |
| <a id="CT000050"></a>`CT000050` | 400 | **Bad Request**<br/>Código da instituição financeira não foi enviado. portability_number: {portability_number}<br/><small>Financial institution code was not sent. portability_number: {portability_number}</small> |
| <a id="CT000051"></a>`CT000051` | 400 | **Bad Request**<br/>Não foi possível notificar o BTG sobre um ataque de portabilidade. portability_number: {portability_number}<br/><small>It wasn't possible to notificate BTG about a received portability. portability_number: {portability_number}</small> |
| <a id="CT000052"></a>`CT000052` | 400 | **Bad Request**<br/>Não foi possível confirmar uma portabilidade para o BTG. portability_number: {portability_number}<br/><small>It wasn't possible to confirm a portability for BTG. portability_number: {portability_number}</small> |
| <a id="CT000053"></a>`CT000053` | 400 | **Bad Request**<br/>Não foi possível cancelar uma portabilidade para o BTG já que a STR0047 não estava correta. portability_number: {portability_number}<br/><small>It wasn't possible to cancel a portability for BTG as STR0047 wasn't correct. portability_number: {portability_number}</small> |
| <a id="CT000054"></a>`CT000054` | 400 | **Bad Request**<br/>Proposta de portabilidade não foi cadastrad com o refinanciamento<br/><small>Portability proposal do not have refinancing</small> |
| <a id="CT000055"></a>`CT000055` | 400 | **Bad Request**<br/>Para criar um refinanciamento os dados financeiros e de conta de desembolso devem ser enviados.<br/><small>To create refinancing operation must be sent financial and disbursement bank account data.</small> |
| <a id="CT000056"></a>`CT000056` | 400 | **Bad Request**<br/>O status atual da proposta {proposal_status} não permite essa operação.<br/><small>Proposal actual status {proposal_status} does not allow this operation.</small> |
| <a id="CT000057"></a>`CT000057` | 400 | **Bad Request**<br/>O valor da parcela da nova simulação({new_installment_amount}) deve ser inferior ao valor da parcela da operação original ({origin_contract_installment_value}).<br/><small>The installment amount of the new simulation({new_installment_amount}) must be lower than original installment amount ({origin_contract_installment_value}).</small> |
| <a id="CT000058"></a>`CT000058` | 400 | **Bad Request**<br/>A proposta deve ser enviada até {default_delta_days} dias depois da criação, diferença de dias entre data de criação da proposta e envio: {days}.<br/><small>Proposal must be submitted within {default_delta_days} days after creation, difference in days between proposal creation and submission date: {days}.</small> |
| <a id="CT000059"></a>`CT000059` | 400 | **Bad Request**<br/>A taxa informada/calculada da operação de {operation_type_translate}, ultrapassa o permitido por lei para o tipo de garantia informada.  Taxa informada/calculada da operação: {montlhy_rate}.  Limite permitido por lei para o tipo de garantia {collateral_type}: {max_interest_rate}.<br/><small>The interest rate informed/calculated for the {operation_type} operation exceeds what is permitted by law for the collateral type informed.  Informed/calculated interest rate: {montlhy_rate}.  Limit allowed by law for the collateral type {collateral_type}: {max_interest_rate}.</small> |
| <a id="CT000060"></a>`CT000060` | 400 | **Bad Request**<br/>A related_party_key fornecida não é a do tomador ou do representante legal.<br/><small>The provided related_party_key is not from borrower or issuer legal representative.</small> |
| <a id="CT000061"></a>`CT000061` | 400 | **Bad Request**<br/>Collateral não encontrada para operação de credito informada.<br/><small>Collateral not found for reported credit operation.</small> |
| <a id="CT000062"></a>`CT000062` | 400 | **Bad Request**<br/>Campo {field} é obrigatório.<br/><small>Field {field} is required.</small> |
| <a id="CT000063"></a>`CT000063` | 400 | **Bad Request**<br/>Formato de data incorreto. Recebido: {signature_datetime}, formato esperado: '2023-01-01T12:30:55.000001Z'.<br/><small>Wrong datetime format. Received: {signature_datetime}, expected format: '2023-01-01T12:30:55.000001Z'.</small> |
| <a id="CT000064"></a>`CT000064` | 400 | **Bad Request**<br/>Motivo de retenção '{retention_reason}' não permitido para este tipo de operação.<br/><small>Retention reason '{retention_reason}' not allowed for this operation.</small> |
| <a id="CT000065"></a>`CT000065` | 400 | **Bad Request**<br/>O número de parcelas da operação de portabilidade é maior do que o número de parcelas remanescente da operação original.<br/><small>The number of installments of the portability operation is longer than the remaining number of installments of the original operation.</small> |
| <a id="CT000066"></a>`CT000066` | 400 | **Bad Request**<br/>Portabilidade deve estar no status settlement_sent para poder alterar para pending_settlement_confirmation<br/><small>Portability must be in status settlement_sent to be able to change to pending_settlement_confirmation</small> |
| <a id="CT000067"></a>`CT000067` | 404 | **Not Found**<br/>portability_settlement não encontrado.<br/><small>portability_settlement not found.</small> |
| <a id="CT000068"></a>`CT000068` | 400 | **Bad Request**<br/>Operação de refinanciamento não pode ser aceita sem dados de assinatura;<br/><small>Refinancing operation can not be accepted without signature data</small> |
| <a id="CT000069"></a>`CT000069` | 400 | **Bad Request**<br/>Método de deleção fora do horário permitido<br/><small>Delete method past closing time</small> |
| <a id="CT000070"></a>`CT000070` | 400 | **Bad Request**<br/>Propostas aceitas pelo solicitante não podem ser deletadas no mesmo dia de aprovação.<br/><small>Accepted by requester proposal can not be delete in the same day as approved.</small> |
| <a id="CT000071"></a>`CT000071` | 400 | **Bad Request**<br/>Horário inválido para envio de STR0047<br/><small>Invalid time to send STR0047</small> |
| <a id="CT000072"></a>`CT000072` | 400 | **Bad Request**<br/>Operação de portabilidade sem pagamento confirmado só pode continuar com o refinanciamento se o colateral estiver averbado por portabilidade ou portabilidade paga a no mínimo 4 dias.<br/><small>Pending settlement confirmation portability must be reserved by portability to continue refinancing operation or portability paid for at least 4 days.</small> |
| <a id="CT000073"></a>`CT000073` | 400 | **Bad Request**<br/>Refinanciamento já foi aceito.<br/><small>Refinancing already accepted.</small> |
| <a id="CT000074"></a>`CT000074` | 400 | **Bad Request**<br/>A taxa anual calculada ({annual_interest_rate}) é muito baixa.<br/><small>The calculated annual interest rate ({annual_interest_rate}) is too low.</small> |
| <a id="CT000075"></a>`CT000075` | 400 | **Bad Request**<br/>Documento de evidência de retenção obrigatório.<br/><small>Retention Proof document mandatory</small> |
| <a id="CT000076"></a>`CT000076` | 400 | **Bad Request**<br/>Somente operações de refinanciamento com status aberto podem ser canceladas<br/><small>Can only cancel refinancing operation with opened status.</small> |
| <a id="CT000077"></a>`CT000077` | 404 | **Bad Request**<br/>Portabilidade não encontrada para o número de portabilidade: {portability_number}.<br/><small>Portability not found for portability_number: {portability_number}.</small> |
| <a id="CT000078"></a>`CT000078` | 400 | **Bad Request**<br/>Received portability status {received_portability_status} não permite retenção.<br/><small>Received portability status {received_portability_status} does not allow retention.</small> |
| <a id="CT000079"></a>`CT000079` | 400 | **Bad Request**<br/>Operação de refinanciamento não pode estar constituída para alterar as informações financeiras e de desembolso.<br/><small>Refinancing operation must not be constituted in Dataprev to change disbursement and financial informations.</small> |
| <a id="CT000080"></a>`CT000080` | 400 | **Bad Request**<br/>Operação de refinanciamento precisa estar assinada para continuar.<br/><small>Refinancing operation must be signed to continue.</small> |
| <a id="CT000081"></a>`CT000081` | 400 | **Not Found**<br/>Operação de crédito não está no status canceled_permanently.<br/><small>Credit Operation not in canceled_permanently status.</small> |
| <a id="CT000082"></a>`CT000082` | 400 | **Bad Request**<br/>Portabilidade não pode ter collateral constituído para alterar dados.<br/><small>Portability can not be with collateral constituted to alter data.</small> |
| <a id="CT000083"></a>`CT000083` | 400 | **Bad Request**<br/>Portabilidade deve estar com erro de margem consignade excedida para alterar dados.<br/><small>Portability should be with consignable margin excceded error to alter data.</small> |
| <a id="CT000084"></a>`CT000084` | 400 | **Bad Request**<br/>Novo valor de face da parcela da portabilidade precisa ser menor que o valor antido de face.<br/><small>Portability new installment face value must be lower than old installment face value.</small> |
| <a id="CT000085"></a>`CT000085` | 404 | **Not Found**<br/>Proposta não tem liquidação.<br/><small>Proposal does not have a portability settlement.</small> |
| <a id="CT000086"></a>`CT000086` | 400 | **Bad Request**<br/>Não é permitido criar o tipo de operação portability com refinancing_data<br/><small>It's not permitted to create operation type portability with refinancing_data</small> |
| <a id="CT000087"></a>`CT000087` | 400 | **Bad Request**<br/>A portabilidade precisa estar com a garantia averbada para adicionar rebates.<br/><small>Portability collateral must be constituted to add rebates.</small> |
| <a id="CT000088"></a>`CT000088` | 400 | **Bad Request**<br/>Carência só é permitida para operações de refinanciamento.<br/><small>Grace period is just allowed to refinance operations.</small> |
| <a id="CT000089"></a>`CT000089` | 400 | **Bad Request**<br/>Carência não permitida para o tomador com o cpf '{document_number}' do estado '{state}'.<br/><small>Grace period not allowed to borrower with document number '{document_number}' from state '{state}'.</small> |
| <a id="CT000090"></a>`CT000090` | 400 | **Bad Request**<br/>O número '{number_of_grace_periods}' da carência de competências está inválido. O intervalo aceito é de 0 a 6.<br/><small>The number '{number_of_grace_periods}' of grace competencies is invalid. The accepted range is 0 to 6.</small> |
| <a id="CT000091"></a>`CT000091` | 400 | **Bad Request**<br/>Taxa de juros anual deve ser menor que {max_annual_interest_rate}. Taxa de juros anual calculada: {annual_rate}.<br/><small>Annual interest rate must be lower than {max_annual_interest_rate}. Calculated annual interest rate: {annual_rate}.</small> |
| <a id="CT000092"></a>`CT000092` | 400 | **Bad Request**<br/>O status de portabilidade recebida atual {current_received_portability_status} não permite alterar para {new_received_portability_status}.<br/><small>Current received portability status {current_received_portability_status} does not allow change to {new_received_portability_status}.</small> |
| <a id="CT000093"></a>`CT000093` | 400 | **Bad Request**<br/>O código ISPB da instituição do contrato de origem não pode ser o mesmo da QI SCD.<br/><small>The ISPB code from the institution of the origin contract cannot be the same as QI SCD.</small> |
| <a id="CT000094"></a>`CT000094` | 400 | **Bad Request**<br/>Subcorban com numero de documento {document_number} não permitido.<br/><small>Subcorban with document number {document_number} not permitted.</small> |
| <a id="CT000095"></a>`CT000095` | 400 | **Bad Request**<br/>Não é possível atualizar dados de garantia para operação de crédito constituída.<br/><small>Cannot update collateral data for constituted credit operation.</small> |
| <a id="CT000096"></a>`CT000096` | 400 | **Bad Request**<br/>Não é possível aprovar a proposta para a seguinte instituição {ispb}<br/><small>Cannot approve proposal for the following origin institution {ispb}.</small> |
| <a id="CT000097"></a>`CT000097` | 400 | **Bad Request**<br/>A portabilidade recebida não está retida.<br/><small>Received Portability not retained.</small> |
| <a id="CT000098"></a>`CT000098` | 400 | **Bad Request**<br/>Endereço de Ip inválido {ip_address} .<br/><small>Invalid Ip Address {ip_address} .</small> |
| <a id="CT000099"></a>`CT000099` | 400 | **Bad Request**<br/>O valor da parcela da nova simulação ({new_installment_amount}) tem uma diferença inferior a {percent_difference}% em relação ao valor da parcela da operação original ({origin_contract_installment_value}).<br/><small>The installment amount of the new refinancing simulation ({new_installment_amount}) has a difference of less than {percent_difference}% compared to the original installment amount ({origin_contract_installment_value}).</small> |
| <a id="CT000100"></a>`CT000100` | 400 | **Bad Request**<br/>O valor do desembolso final ({final_disbursement_amount}) é inferior a {minimum_final_disbursement_amount}.<br/><small>The final disbursement amount ({final_disbursement_amount}) is less than {minimum_final_disbursement_amount}.</small> |
| <a id="CT000101"></a>`CT000101` | 400 | **Bad Request**<br/>O código ISPB da instituição do contrato de origem {ispb_number} não pode estar nessa lista: {ispb_block_list}.<br/><small>The ISPB code from the institution of the origin contract {ispb_number} cannot be the in this list: {ispb_block_list}.</small> |
| <a id="CT000102"></a>`CT000102` | 400 | **Bad Request**<br/>Não é possível portar operação com nenhuma parcela paga.<br/><small>Operation cannot be ported with zero installments paid.</small> |
| <a id="CT000103"></a>`CT000103` | 400 | **Bad Request**<br/>Operações fora da elegibilidade do cessionário. {error_ptbr}<br/><small>Operations outside the purchase's eligibility. {error}</small> |
| <a id="CT000104"></a>`CT000104` | 400 | **Bad Request**<br/>A diferença entre o saldo devedor da portabilidade e o valor da operação de refin deve ser maior ou igual que 10% do valor do saldo devedor. Percentage: {percentage}%.<br/><small>The difference between portability due balance and refinanced operation amount must be greather or equals to 10% of the due balance value. Percentual: {percentage}%.</small> |
| <a id="CT000105"></a>`CT000105` | 400 | **Bad Request**<br/>A redução do valor de troco para o tomador não deve ser maior que 10%.<br/><small>The reduction in the final disbursed amount can't be greather than 10%.</small> |
| <a id="CT000106"></a>`CT000106` | 400 | **Bad Request**<br/>A portabilidade não pode ser aceita porque o contrato foi cedido<br/><small>The received portability cannot be accepted because the contract has been assigned</small> |
| <a id="CT000107"></a>`CT000107` | 400 | **Bad Request**<br/>Validação de elegibilidade para cessão falhou.<br/><small>Assignment eligibility validation failed.</small> |
| <a id="CT000108"></a>`CT000108` | 400 | **Bad Request**<br/>Todos os documentos devem conter uma 'document_key' válida.<br/><small>All documents must have a valid 'document_key' field.</small> |
| <a id="CT000109"></a>`CT000109` | 400 | **Bad Request**<br/>Todos os documentos devem conter um 'file_type' válido.<br/><small>All documents must have a valid 'file_type' field.</small> |
| <a id="CT000110"></a>`CT000110` | 400 | **Bad Request**<br/>Primeira data de vencimento do refinanciamento é diferente da primeira data de vencimento da portabilidade.<br/><small>First refinancing due date different from first portability due date.</small> |
| <a id="CT000111"></a>`CT000111` | 400 | **Bad Request**<br/>STR não enviado, não foi possível gerar o STR0047 receipt<br/><small>STR not sent, could not generate STR0047 receipt</small> |
| <a id="CT000112"></a>`CT000112` | 400 | **Bad Request**<br/>Aceitação de portabilidade desabilitada<br/><small>Accepting portability disabled</small> |
| <a id="CT000113"></a>`CT000113` | 400 | **Bad Request**<br/>A taxa de juros mensal {monthly_interest_rate} é menor que {min_monthly_interest_rate}<br/><small>Monthly interest rate {monthly_interest_rate} is less than {min_monthly_interest_rate}</small> |
| <a id="CT000114"></a>`CT000114` | 400 | **Bad Request**<br/>o campo assistance_type e state são obrigatórios<br/><small>the field assistance_type and state are required</small> |
| <a id="CT000115"></a>`CT000115` | 400 | **Bad Request**<br/>bank code or isbp number is required |
| <a id="CT000116"></a>`CT000116` | 400 | **Bad Request**<br/>Agente de crédito deve ser informado para proposta com garantia do tipo {collateral_type}.<br/><small>Credit agent must be informed for proposal with {collateral_type} collateral type.</small> |
| <a id="CT000117"></a>`CT000117` | 400 | **Bad Request**<br/>Só é possível recriar a operação de portabilidade com o status 'settled'.<br/><small>Can only recreate portability operation with settled status.</small> |
| <a id="CT000118"></a>`CT000118` | 400 | **Bad Request**<br/>O valor do troco é menor que {min_final_disbursement_amount_diff_percentage}% da soma do valor das parcelas do refinanciamento menos o valor soma das parcelas da portabilidade. O valor mínimo do troco permitido é de {min_final_disbursement_amount}. Valor calculado do troco: {final_disbursement_amount}.<br/><small>The final disbursement amount is less than {min_final_disbursement_amount_diff_percentage}% of the sum of refinancing installment minus the sum of portability installment. The minimum final disbursement amount allowed is {min_final_disbursement_amount}. Calculated final disbursement amount: {final_disbursement_amount}.</small> |
| <a id="CT000119"></a>`CT000119` | 400 | **Bad Request**<br/>O agente de crédito: {document_number} não está autorizado a emitir operação de crédito.<br/><small>The credit agent: {document_number} is not authorized to issue a credit operation.</small> |
| <a id="CT000120"></a>`CT000120` | 400 | **Bad Request**<br/>Atualização de Received portability após horário de fechamento<br/><small>Received portability update after closing time</small> |
| <a id="CT000121"></a>`CT000121` | 400 | **Bad Request**<br/>Não é possível portar um contrato originalmente emitido pela QI Tech.<br/><small>Cannot port a contract originally issued by QI Tech.</small> |
| <a id="CT000122"></a>`CT000122` | 409 | **Conflict**<br/>A requester_control_key já existe.<br/><small>The requester_control_key already exists.</small> |
| <a id="CT000123"></a>`CT000123` | 400 | **Bad Request**<br/>A data de desembolso da portabilidade não pode ser maior que a data de desembolso do refinanciamento.<br/><small>Portability disbursement can not be greater than refinancing disbursement date.</small> |
| <a id="CT000124"></a>`CT000124` | 400 | **Bad Request**<br/>Parte relacionada do tipo pessoa física não pode possuir números no nome e deve conter pelo menos uma letra. Nome invalido: {related_party_name}<br/><small>Natural person type related party can't have numbers in name and must contain at least one letter. Invalid name: {related_party_name}</small> |
| <a id="CT000125"></a>`CT000125` | 400 | **Bad Request**<br/>O campo Data de expedição do documento de identidade é inválido: {reason_pt}<br/><small>The field Document Identification Date is invalid: {reason_en}</small> |
| <a id="CT000126"></a>`CT000126` | 400 | **Bad Request**<br/>O campo Data de Nascimento é inválido: {reason_pt}<br/><small>The field Birth Date is invalid: {reason_en}</small> |
| <a id="CT000127"></a>`CT000127` | 400 | **Bad Request**<br/>O campo Data de Fundação é inválido: {reason_pt}<br/><small>The field Foundation Date is invalid: {reason_en}</small> |
| <a id="CT000128"></a>`CT000128` | 400 | **Bad Request**<br/>O campo company_document_number está inválido. Documento: {document_number}<br/><small>The field company_document_number is invalid. Document: {document_number}</small> |
| <a id="CT000129"></a>`CT000129` | 400 | **Bad Request**<br/>O campo individual_document_number está inválido. Documento: {document_number}<br/><small>The field individual_document_number is invalid. Document: {document_number}</small> |
| <a id="CT000130"></a>`CT000130` | 400 | **Bad Request**<br/>Formato de data incorreto. Recebido: {signature_datetime}, formato esperado: '2023-01-01'.<br/><small>Wrong date format. Received: {signature_datetime}, expected format: '2023-01-01'.</small> |
| <a id="CT000131"></a>`CT000131` | 404 | **Not Found**<br/>Não foi encontrada uma baixa de portabilidade com essa chave.<br/><small>Not found portability settlement key.</small> |
| <a id="CT000131"></a>`CT000131` | 404 | **Bad Request**<br/>Operação de portabilidade não está aberta.<br/><small>Portability credit operation is not opened.</small> |
| <a id="CT000133"></a>`CT000133` | 400 | **Bad Request**<br/>Prêmio de seguro QI não é permitido para INSS.<br/><small>Insurance premium QI is not allowed for social security collateral.</small> |
| <a id="CT000134"></a>`CT000134` | 400 | **Bad Request**<br/>O número de parcelas em atraso no contrato de origem deve ser menor ou igual a 1.<br/><small>The number of overdue installments in the origin contract must be less than or equal to 1.</small> |
| <a id="CT000135"></a>`CT000135` | 400 | **Bad Request**<br/>Portabilidade não permitida.<br/><small>Portability not allowed.</small> |

### DOC — Documentos

102 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="DOC000001"></a>`DOC000001` | 400 | **Payload Validation Error**<br/>{parse_error} |
| <a id="DOC000002"></a>`DOC000002` | 400 | **Certifier Type Error**<br/>Documento da certificadora {certifier_type} não suportado<br/><small>Document from certifier {certifier_type} not supported</small> |
| <a id="DOC000003"></a>`DOC000003` | 400 | **Bad Request**<br/>Falta document_key. Use GET /clicksign/{document_key}<br/><small>Missing document_key. Use GET /clicksign/{document_key}</small> |
| <a id="DOC000004"></a>`DOC000004` | 404 | **Document Not Found**<br/>Documento não encontrado para seguinte chave: {document_key}<br/><small>Document not found with provided key: {document_key}</small> |
| <a id="DOC000005"></a>`DOC000005` | 400 | **Bad Request**<br/>Use GET /document/{person_key} ou /document/{person_key}/{document_key}<br/><small>Use GET /document/{person_key} or /document/{person_key}/{document_key}</small> |
| <a id="DOC000006"></a>`DOC000006` | 400 | **Bad Request**<br/>Use POST /document |
| <a id="DOC000007"></a>`DOC000007` | 404 | **Not Found**<br/>Lote de documento não encontrado para a chave {document_batch_key}<br/><small>Document batch not found for key {document_batch_key}</small> |
| <a id="DOC000008"></a>`DOC000008` | 400 | **Bad Request**<br/>Body da request vazio.<br/><small>No body provided</small> |
| <a id="DOC000009"></a>`DOC000009` | 404 | **Not Found**<br/>Status não encontrado<br/><small>Status not found</small> |
| <a id="DOC000010"></a>`DOC000010` | 400 | **Bad Request**<br/>Use PUT /document/{person_key}/{document_key}/{status_name} ou /document/{document_key}/{status_name}<br/><small>Use PUT /document/{person_key}/{document_key}/{status_name} or /document/{document_key}/{status_name}</small> |
| <a id="DOC000011"></a>`DOC000011` | 400 | **Bad Request**<br/>Falta o parâmetro {action}. Use o dos seguintes valores: send_to_signature. Por favor, use PUT /document_batch/{document_batch_key}/{action}<br/><small>Missing {action} parameter. Use one of the followings: send_to_signature. Please use PUT /document_batch/{document_batch_key}/{action}</small> |
| <a id="DOC000012"></a>`DOC000012` | 400 | **Certifier Error**<br/>Certificadora {document_batch_certifier} não disponível para esta ação<br/><small>Certifier {document_batch_certifier} not supported for document batch</small> |
| <a id="DOC000013"></a>`DOC000013` | 400 | **Document Batch Error**<br/>Lote de documentos {document_batch_key} não possui documentos<br/><small>Document batch {document_batch_key} has no documents inside</small> |
| <a id="DOC000014"></a>`DOC000014` | 400 | **Document Batch Error**<br/>Lote de documentos já foi enviado para assinatura<br/><small>Document Batch has already been sent to signature</small> |
| <a id="DOC000015"></a>`DOC000015` | 400 | **Document Batch Error**<br/>Lote de documentos já foi enviado para assinatura e assinado<br/><small>Document Batch has already been sent to signature and signed</small> |
| <a id="DOC000016"></a>`DOC000016` | 400 | **Document Batch Error**<br/>Lote de documentos já foi cancelado e portanto não pode ser enviado para assinatura<br/><small>Document Batch status is canceled and cannot be sent to signature</small> |
| <a id="DOC000017"></a>`DOC000017` | 400 | **Document Batch Error**<br/>Documento {document_key} dentro do lote de documentos tem status {document_status}. O status do documento deve ser pending_document_batch quando está tentando enviar o lote de documentos para assinatura<br/><small>Document {document_key} inside document_batch has status {document_status}. Document status must be pending_document_batch when sending document_batch to signature</small> |
| <a id="DOC000018"></a>`DOC000018` | 400 | **Document Batch Error**<br/>Chave do lote de documentos faltando (document_batch_key). Por favor use Please use PUT /document_batch/{document_batch_key}/{action}<br/><small>Missing document_batch_key. Please use PUT /document_batch/{document_batch_key}/{action}</small> |
| <a id="DOC000019"></a>`DOC000019` | 404 | **Document Not Found**<br/>Documento não encontrado<br/><small>Document not found</small> |
| <a id="DOC000020"></a>`DOC000020` | 400 | **Document Draft Error**<br/>Arquivo final do documento já foi enviado<br/><small>Document final file has already been uploaded</small> |
| <a id="DOC000021"></a>`DOC000021` | 404 | **Template Not Found**<br/>Template não encontrado<br/><small>Template not found</small> |
| <a id="DOC000022"></a>`DOC000022` | 400 | **Document Draft Error**<br/>Documento deve ser assinável<br/><small>Document must be signable</small> |
| <a id="DOC000023"></a>`DOC000023` | 400 | **Bad Request**<br/>Use POST /draft/{document_key}/{template_key} |
| <a id="DOC000024"></a>`DOC000024` | 400 | **Bad Request**<br/>Chave do template não encontrada<br/><small>No template key found</small> |
| <a id="DOC000025"></a>`DOC000025` | 400 | **Bad Request**<br/>Use POST /resend_notification/{document_key} ou /resend_notification com document_key_list<br/><small>Use POST /resend_notification/{document_key} or /resend_notification with document_key_list</small> |
| <a id="DOC000026"></a>`DOC000026` | 404 | **Not Found**<br/>Não foi possível encontrar nenhum dos documentos {document_key_list}<br/><small>Could not find any of the following document(s) {document_key_list}</small> |
| <a id="DOC000027"></a>`DOC000027` | 400 | **Bad Request**<br/>Reenvio de notificação não disponível para {certifier}.<br/><small>Notification resend for {certifier} is not available.</small> |
| <a id="DOC000028"></a>`DOC000028` | 400 | **Bad Request**<br/>Use GET /signer_group/{signer_group_key} ou /signer_group?signer_group_key_list=key,key, ou /signer_group?owner_person_key={person_key}&referred_party_document_number_list=document_number,document_number, ou /signer_group?expiration=AAAA-MM-DD<br/><small>Use GET /signer_group/{signer_group_key} or /signer_group?signer_group_key_list=key,key, or /signer_group?owner_person_key={person_key}&referred_party_document_number_list=document_number,document_number, or /signer_group?expiration=AAAA-MM-DD</small> |
| <a id="DOC000029"></a>`DOC000029` | 400 | **Bad Request**<br/>Use GET /signer_group?owner_person_key={person_key}&referred_party_document_number_list= para usar referred_party_document_number_list<br/><small>Use GET /signer_group?owner_person_key={person_key}&referred_party_document_number_list= when using referred_party_document_number_list</small> |
| <a id="DOC000030"></a>`DOC000030` | 400 | **Bad Request**<br/>Não é possível usar signer_group_key_list e referred_party_document_number_list juntos<br/><small>Can not use signer_group_key_list and referred_party_document_number_list together</small> |
| <a id="DOC000031"></a>`DOC000031` | 400 | **Bad Request**<br/>URL errada, use /signer_group?signer_group_key_list=key,key,<br/><small>URL malformed please use /signer_group?signer_group_key_list=key,key,</small> |
| <a id="DOC000032"></a>`DOC000032` | 400 | **Bad Request**<br/>URL errada, use /signer_group?referred_party_document_number_list=document_number,document_number,<br/><small>URL malformed please use /signer_group?referred_party_document_number_list=document_number,document_number,</small> |
| <a id="DOC000033"></a>`DOC000033` | 404 | **Not Found**<br/>Grupos de assinantes com filtro não encontrados<br/><small>Signer Groups with filter not found</small> |
| <a id="DOC000034"></a>`DOC000034` | 404 | **Not Found**<br/>Grupo de assinantes com chave {signer_group_key}<br/><small>Signer Group with key {signer_group_key} not found</small> |
| <a id="DOC000035"></a>`DOC000035` | 404 | **Not Found**<br/>Grupo de assinantes com chave {signer_group_key}<br/><small>Signer Group with key {signer_group_key} not found</small> |
| <a id="DOC000036"></a>`DOC000036` | 403 | **Unauthorized**<br/>Este agente não pode criar um grupo de assinantes público<br/><small>This agent can not create a public signer group.</small> |
| <a id="DOC000037"></a>`DOC000037` | 400 | **Bad Request**<br/>Use Patch /signer_group/{signer_group_key} ou /signer_group com signer_group_key_list no payload.<br/><small>Use Patch /signer_group/{signer_group_key} or /signer_group with signer_group_key_list in payload.</small> |
| <a id="DOC000038"></a>`DOC000038` | 403 | **Unauthorized**<br/>Agente não autorizado para este update.<br/><small>Agent can not make this update.</small> |
| <a id="DOC000039"></a>`DOC000039` | 403 | **Unauthorized**<br/>Este agente não pode alterar um grupo de assinantes publico.<br/><small>This agent can not modified a public signer group.</small> |
| <a id="DOC000040"></a>`DOC000040` | 400 | **Bad Request**<br/>Grupo de assinantes com chave {signer_group_key} está inativo.<br/><small>Signer Group with key {signer_group_key} is inactivated</small> |
| <a id="DOC000041"></a>`DOC000041` | 400 | **Bad Request**<br/>Use Patch /signer_group_expired com data de expiração no payload.<br/><small>Use Patch /signer_group_expired with expiration in payload.</small> |
| <a id="DOC000042"></a>`DOC000042` | 400 | **Bad Request**<br/>Não é possível expirar grupos de assinantes com data diferente de hoje.<br/><small>Can not expire signer groups different from today</small> |
| <a id="DOC000043"></a>`DOC000043` | 400 | **Bad Request**<br/>Use GET /template/{template_key} ou /template/ com parâmetro document_type ou owner_person_key, referred_document_number, name e document_type<br/><small>Use GET /template/{template_key} or /template/ with a document_type as parameter or owner_person_key, referred_document_number, name and document_type</small> |
| <a id="DOC000044"></a>`DOC000044` | 404 | **Not Found**<br/>Template não encontrado para os parâmetros fornecidos.<br/><small>Template not found for the given parameters.</small> |
| <a id="DOC000045"></a>`DOC000045` | 400 | **Bad Request**<br/>Payload inválido<br/><small>Payload schema invalid</small> |
| <a id="DOC000046"></a>`DOC000046` | 400 | **Invalid Template**<br/>Arquivo do template deve ser .html<br/><small>Template file must have .html extension.</small> |
| <a id="DOC000047"></a>`DOC000047` | 400 | **Bad Request**<br/>Use PUT /upload/{document_key}/{template_key} |
| <a id="DOC000048"></a>`DOC000048` | 400 | **Bad Request**<br/>Por favor informe a ordem que deseja anexar o arquivo (no início ou fim)<br/><small>Please inform the order to append the file (first or last)</small> |
| <a id="DOC000049"></a>`DOC000049` | 400 | **Bad Request**<br/>Documento vazio<br/><small>Document is empty</small> |
| <a id="DOC000050"></a>`DOC000050` | 400 | **Bad Request**<br/>Request não é interna<br/><small>Request is not internal</small> |
| <a id="DOC000051"></a>`DOC000051` | 400 | **Bad Request**<br/>Use POST /webhook/{source}/{document_id} |
| <a id="DOC000052"></a>`DOC000052` | 400 | **Bad Request**<br/>document_batch_id {document_batch_id} errado para o documento com document_key {document_key}<br/><small>Document with document_key {document_key} has a wrong document batch id {document_batch_id}</small> |
| <a id="DOC000053"></a>`DOC000053` | 400 | **Bad Request**<br/>Status inválido.<br/><small>Invalid status.</small> |
| <a id="DOC000054"></a>`DOC000054` | 401 | **Invalid Header**<br/>Header inválido (content-hmac)<br/><small>Invalid header (content-hmac)</small> |
| <a id="DOC000055"></a>`DOC000055` | 401 | **Unauthorized**<br/>Evento {event} recebido mas não autorizado<br/><small>Event {event} received. Event unauthorized</small> |
| <a id="DOC000056"></a>`DOC000056` | 400 | **Bad Request**<br/>Evento {event} recebido mas não processado<br/><small>Event {event} received but cannot be processed</small> |
| <a id="DOC000057"></a>`DOC000057` | 422 | **Unprocessable Entity**<br/>Não foi possível encontrar 'ziped_file_url' ('document' -> 'downloads' -> 'ziped_file_url') na request<br/><small>Unable to retrieve 'ziped_file_url' ('document' -> 'downloads' -> 'ziped_file_url') from request</small> |
| <a id="DOC000058"></a>`DOC000058` | 400 | **Bad Request**<br/>Favor fornecer o tipo do documento<br/><small>Please provide document_type</small> |
| <a id="DOC000059"></a>`DOC000059` | 400 | **Bad Request**<br/>Use POST /edit_signer/{document_key} |
| <a id="DOC000060"></a>`DOC000060` | 404 | **Not Found**<br/>Não foi possível encontrar o documento {document_key}<br/><small>Could not find any of the following document {document_key}</small> |
| <a id="DOC000061"></a>`DOC000061` | 400 | **Bad Request**<br/>Edição de assinante não disponível para {certifier}.<br/><small>Edit signerfor {certifier} is not available.</small> |
| <a id="DOC000062"></a>`DOC000062` | 400 | **Bad Request**<br/>Não foi possível fazer o upload porque o arquivo está vazio.<br/><small>Could not upload file because it's empty.</small> |
| <a id="DOC000063"></a>`DOC000063` | 400 | **Bad Request**<br/>document_key ou document_batch_key é obrigatória para auto assinar eventos. Por favor envie um deles dentro dos params da request.<br/><small>document_key or document_batch_key is required to auto sign events. Please send one of them inside request params</small> |
| <a id="DOC000064"></a>`DOC000064` | 400 | **Bad Request**<br/>A chave control_number enviada já está em uso {control_number}<br/><small>control_number is already in use {control_number}</small> |
| <a id="DOC000065"></a>`DOC000065` | 400 | **Bad Request**<br/>Documento não foi informado<br/><small>Document was not informed</small> |
| <a id="DOC000066"></a>`DOC000066` | 400 | **Bad Request**<br/>Nome do documento '{document_name}' já existe<br/><small>Document name '{document_name}' already exist</small> |
| <a id="DOC000067"></a>`DOC000067` | 400 | **Bad Request**<br/>Arquivo pdf não encontrado<br/><small>Pdf file not found</small> |
| <a id="DOC000068"></a>`DOC000068` | 500 | **Internal Error**<br/>Erro de concorrencia. Arquivo não encontrado {file_name}<br/><small>Concurrency error! File not found {file_name}</small> |
| <a id="DOC000069"></a>`DOC000069` | 400 | **Bad Request**<br/>Número de telefone não informado para o método de assinatura escolhido.<br/><small>Missing phone number for the chosen signature method.</small> |
| <a id="DOC000070"></a>`DOC000070` | 400 | **Bad Request**<br/>O arquivo PDF está truncado ou quebrado.<br/><small>The PDF file is truncated or broken.</small> |
| <a id="DOC000071"></a>`DOC000071` | 400 | **Bad Request**<br/>Erro na validação do documento. Essa informação precisa ter exatamente {digits}. Document: {document}<br/><small>Error on document check. This information should have exactly {digits} digits. Document: {document}</small> |
| <a id="DOC000072"></a>`DOC000072` | 400 | **Bad Request**<br/>Erro na Verificação do e-mail. Formato invalido: {email}<br/><small>Error on email check. Email format invalid Email: {email}</small> |
| <a id="DOC000073"></a>`DOC000073` | 400 | **Bad Request**<br/>A provided role ({role}) não é uma das validas: {allowed_roles}<br/><small>The provided role ({role}) is not one of the valid one`s: {allowed_roles}</small> |
| <a id="DOC000074"></a>`DOC000074` | 400 | **Bad Request**<br/>Um click_sign_file_path deve ser informado.<br/><small>A click_sign_file_path must be provided.</small> |
| <a id="DOC000075"></a>`DOC000075` | 400 | **Bad Request**<br/>Pelo menos os parâmetros email, phone_number ou is_api devem ser informados.<br/><small>At least the email, phone_number or is_api parameters should be provided.</small> |
| <a id="DOC000076"></a>`DOC000076` | 400 | **Bad Request**<br/>O método de assinatura registrado no signatário não corresponde a nenhum email or sms.<br/><small>Signature method registered on signatory does not match any of email or sms.</small> |
| <a id="DOC000077"></a>`DOC000077` | 400 | **Bad Request**<br/>O arquivo PDF não pode conter senha.<br/><small>PDF file can't have a password.</small> |
| <a id="DOC000078"></a>`DOC000078` | 400 | **Bad Request**<br/>Arquivo não encontrado<br/><small>File not found</small> |
| <a id="DOC000079"></a>`DOC000079` | 400 | **Invalid Template**<br/>Erro de escrita no template. Linha:{line} Erro:{error_msg}<br/><small>Template syntax error. Line:{line} Error:{error_msg}</small> |
| <a id="DOC000080"></a>`DOC000080` | 400 | **Invalid Template**<br/>Erro no template. Erro:{error_msg}<br/><small>Template error. Error:{error_msg}</small> |
| <a id="DOC000081"></a>`DOC000081` | 400 | **Invalid document type**<br/>{document_type} não é um tipo de documento valido.<br/><small>{document_type} is not a valid document type.</small> |
| <a id="DOC000082"></a>`DOC000082` | 400 | **Bad Request**<br/>Payload de webhook de assinatura não pode ser nulo.<br/><small>Signature webhook payload should not be null.</small> |
| <a id="DOC000083"></a>`DOC000083` | 400 | **Invalid signature key**<br/>Chave de assinatura da QiSign invalida..<br/><small>Invalid QiSign signature key.</small> |
| <a id="DOC000084"></a>`DOC000084` | 400 | **Invalid webhook status**<br/>Status invalido no webhook da QISign recebido.<br/><small>Invalid status received in QiSign webhook.</small> |
| <a id="DOC000085"></a>`DOC000085` | 400 | **Signed document not found**<br/>Documento assinado não encontrado na QiSign.<br/><small>Signed document not found in QiSign.</small> |
| <a id="DOC000086"></a>`DOC000086` | 400 | **Bad Request**<br/>É necessário enviar o pdf assinado<br/><small>It is necessary to send the signed pdf</small> |
| <a id="DOC000087"></a>`DOC000087` | 400 | **Bad Request**<br/>Não foi possível renderizar o PDF. O HTML pode estar inválido.<br/><small>Could not render PDF. HTML may be malformed.</small> |
| <a id="DOC000088"></a>`DOC000088` | 400 | **Bad Request**<br/>Somente arquivos com conteúdo do tipo pdf podem ser enviados.<br/><small>Only file with pdf content type can be sent.</small> |
| <a id="DOC000089"></a>`DOC000089` | 400 | **Bad Request**<br/>Número de documento inválido. Não foi possível enviar o documento para o clicksign.<br/><small>Document number invalid. Not possible to send the document to the clicksign .</small> |
| <a id="DOC000090"></a>`DOC000090` | 400 | **Bad Request**<br/>Erro durante o envio do documento para o clicksing.<br/><small>Error while sending document to the clicksing.</small> |
| <a id="DOC000091"></a>`DOC000091` | 400 | **Bad Request**<br/>O solicitante do documento precisa ter uma configuração para usar esta certificadora. Por favor, entre em contato com o suporte.<br/><small>Document requester must have a configuration to use this certifier. Please contact support.</small> |
| <a id="DOC000092"></a>`DOC000092` | 400 | **Bad Request**<br/>Status invalido para processar documento ({document_key}) no subscriber {subscriber_name}. Status atual {document_status}.<br/><small>Invalid Status to process document ({document_key}) in {subscriber_name} subscriber. Actual status: {document_status}.</small> |
| <a id="DOC000093"></a>`DOC000093` | 400 | **Bad Request**<br/>O documento assinado e o documento original devem ser arquivos diferentes.<br/><small>Signed document and original document must be different files.</small> |
| <a id="DOC000094"></a>`DOC000094` | 400 | **Bad Request**<br/>Configuração da certificadora não encontrada.<br/><small>Certifier configuration not found.</small> |
| <a id="DOC000095"></a>`DOC000095` | 400 | **Bad Request**<br/>Assinante ja existe para o número de documento informado.<br/><small>Signer already exists for informed document number.</small> |
| <a id="DOC000096"></a>`DOC000096` | 400 | **Bad Request**<br/>Assinantenão encontrado para o número de documento informado.<br/><small>Signer not found for informed document number.</small> |
| <a id="DOC000097"></a>`DOC000097` | 412 | **Document Batch Error**<br/>Documentos dentro do Lote de Documentos possuem donos, assinantes ou certificadoras distintas.<br/><small>Documents inside document_batch has differents owners, signers or certifiers.</small> |
| <a id="DOC000098"></a>`DOC000098` | 400 | **Bad Request**<br/>Não foi possível acessar URL externa para baixar o PDF assinado.<br/><small>Cannot acess external URL to download signed PDF.</small> |
| <a id="DOC000099"></a>`DOC000099` | 400 | **Bad Request**<br/>URL ou Chave do Template deve ser enviado para o upload.<br/><small>URL or Template Key must be provided for upload.</small> |
| <a id="DOC000100"></a>`DOC000100` | 400 | **Bad Request**<br/>Arquivo muito grande. Tamanho máximo do arquivo: {max_size} bytes. Tamanho do arquivo: {file_size} bytes.<br/><small>File too large. Maximum file size: {max_size} bytes. Uploaded file size: {file_size} bytes</small> |
| <a id="DOC000101"></a>`DOC000101` | 400 | **Bad Request**<br/>Documentos dentro do lote de documentos possuem assinantes distintos.<br/><small>Documents inside document_batch has different signers.</small> |
| <a id="DOC000102"></a>`DOC000102` | 400 | **Bad Request**<br/>Dono não encontrado.<br/><small>Owner not found.</small> |

### FGTS — Antecipação de Saque Aniversário

42 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="FGTS00003"></a>`FGTS00003` | 404 | **Not Found**<br/>A chave reservation_request_key {key} não pode ser encontrada.<br/><small>The given reservation_request_key {key} could not be found.</small> |
| <a id="FGTS00004"></a>`FGTS00004` | 404 | **Not Found**<br/>A chave external_key {key} não pode ser encontrada.<br/><small>The given external_key {key} could not be found.</small> |
| <a id="FGTS00005"></a>`FGTS00005` | 400 | **Bad Request**<br/>Status<br/><small>Credit Operation status</small> |
| <a id="FGTS00007"></a>`FGTS00007` | 504 | **Gateway Time-out**<br/>O servidor não respondeu a tempo<br/><small>The server did not respond in time</small> |
| <a id="FGTS00008"></a>`FGTS00008` | 400 | **Bad Request**<br/>Os servidores da Caixa não responderam no tempo determinado. Tente novamente em alguns<br/><small>Caixa server did not respond in time. Try again in a few seconds.</small> |
| <a id="FGTS00009"></a>`FGTS00009` | 400 | **Bad Request**<br/>Os servidores da Caixa não responderam com um token válido. Tente novamente em alguns<br/><small>Caixa server did not respond with a valid token. Try again in a few seconds.</small> |
| <a id="FGTS00010"></a>`FGTS00010` | 400 | **Bad Request**<br/>Os servidores da Caixa retornaram um erro.<br/><small>Caixa server returned an error.</small> |
| <a id="FGTS00011"></a>`FGTS00011` | 500 | **Internal Error**<br/>Os servidores da cache retornaram um erro.<br/><small>Cache server returned an error.</small> |
| <a id="FGTS00012"></a>`FGTS00012` | 400 | **Bad Request**<br/>Reserva já está desaverbada.<br/><small>Reservation is already closed.</small> |
| <a id="FGTS00014"></a>`FGTS00014` | 429 | **Too Many Requests**<br/>Taxa limite para o documento {document_number} excedeu o máximo de {limit_per_hour} requisições com erro em 15 minutos. Retentar às {retry_at} UTC.<br/><small>Rate limit for document {document_number} exceeded the max of {limit_per_hour} failed requests per 15 minutes. Retry at UTC {retry_at}</small> |
| <a id="FGTS00017"></a>`FGTS00017` | 401 | **Unauthorized**<br/>Ação não permitida para cargo: {role}<br/><small>Action not allowed for role: {role}</small> |
| <a id="FGTS00020"></a>`FGTS00020` | 400 | **Bad Request**<br/> |
| <a id="FGTS00022"></a>`FGTS00022` | 400 | **Bad Request**<br/>Reserva com status<br/><small>Reservation status</small> |
| <a id="FGTS00023"></a>`FGTS00023` | 400 | **Bad Request**<br/>Reserva já em processo de desaverbação<br/><small>Reservation already in closure process. Key: {reservation_request_key}</small> |
| <a id="FGTS00024"></a>`FGTS00024` | 404 | **Not Found**<br/>O periodo nao pôde ser encontrado<br/><small>The period could not be found</small> |
| <a id="FGTS00025"></a>`FGTS00025` | 409 | **Reservation Status Conflict**<br/>Essa reserva não permite essa atualização de estados<br/><small>A reservation {reservation_key} with status {old_status} cannot be updated to {new_status}</small> |
| <a id="FGTS00026"></a>`FGTS00026` | 409 | **Reservation Status Conflict**<br/>Reservas no status<br/><small>Reservation with status</small> |
| <a id="FGTS00027"></a>`FGTS00027` | 404 | **Not Found**<br/>A solitação de saldo {key} não pode ser encontrada.<br/><small>The given available_balance {key} could not be found.</small> |
| <a id="FGTS00028"></a>`FGTS00028` | 500 | **Periods Status Are Not all Equal**<br/>Reserva com a chave: {key}, possui periodos com status diferentes<br/><small>Reservation with key: {key}, have periods with different status.</small> |
| <a id="FGTS00029"></a>`FGTS00029` | 500 | **Unexpected Period Status**<br/>Reserva com a chave: {key}, possui periodos com estatus inesperados.<br/><small>Reservation with key: {key}, have periods in unexpected status.</small> |
| <a id="FGTS00030"></a>`FGTS00030` | 500 | **Invalid Next Period**<br/>Reserva com a chave: {key}, possui um periodo pago que não é o próximo período válido: {original_due_date}.<br/><small>Reservation with key: {key}, has a paid period that isn</small> |
| <a id="FGTS00031"></a>`FGTS00031` | 400 | **Access Token Too Many Retries**<br/>Tentou obter um novo token de acesso muitas vezes enquanto esperava um token de cache<br/><small>Tried to get a new access token too many times while waiting a cache token</small> |
| <a id="FGTS00032"></a>`FGTS00032` | 404 | **Protocol Not Found**<br/>O protocolo não pôde ser encontrado.<br/><small>The protocol could not be found.</small> |
| <a id="FGTS00033"></a>`FGTS00033` | 503 | **Unavailable service**<br/>O serviço da CEF se encontra indisponível no momento. Por favor, tente novamente mais tarde<br/><small>The CEF service is currently unavailable. Please, try again later</small> |
| <a id="FGTS00034"></a>`FGTS00034` | 404 | **Available Balance To Requester Not Found**<br/>A consulta de saldo não pertence ao solicitante {requester_key}.<br/><small>Available Balance does not belong to the requester {requester_key}.</small> |
| <a id="FGTS00035"></a>`FGTS00035` | 409 | **Available Balance Status Conflict**<br/>Consulta de saldo com processo concluído não pode ter seu status alterado<br/><small>Balance inquiry with completed process cannot have its status changed</small> |
| <a id="FGTS00036"></a>`FGTS00036` | 429 | **Rate Limit Exceeded**<br/>O número de requisições excedeu o limite da CEF<br/><small>Number of requisitions exceeded the CEF rate limit</small> |
| <a id="FGTS00037"></a>`FGTS00037` | 400 | **Path Param Is Incorrect**<br/>O parâmetro de rota exigido precisa ser<br/><small>The required path param must be</small> |
| <a id="FGTS00038"></a>`FGTS00038` | 400 | **Payload Is Incorrect**<br/>Um payload deve ser enviado e ele não pode ser vazio<br/><small>A payload must be sent and cannot be empty</small> |
| <a id="FGTS00039"></a>`FGTS00039` | 408 | **The process exceeded the tolerance time**<br/>O processo excedeu o tempo de tolerância. Tente novamente<br/><small>The process exceeded the tolerance time. Try again</small> |
| <a id="FGTS00040"></a>`FGTS00040` | 404 | A fila {queue_name} não existe. Verifique se o nome da fila está correto.<br/><small>{queue_name} queue doesn</small> |
| <a id="FGTS00041"></a>`FGTS00041` | 409 | Já existe uma fila com o nome<br/><small>A queue with</small> |
| <a id="FGTS00042"></a>`FGTS00042` | 404 | O cliente {requester_key} não existe. Verifique se a chave do cliente está correta.<br/><small>The requester {requester_key} doesn</small> |
| <a id="FGTS00043"></a>`FGTS00043` | 400 | O cliente<br/><small>The requester</small> |
| <a id="FGTS00044"></a>`FGTS00044` | 403 | **Request not allowed at the moment**<br/>Esta solicitação não é permitida no momento. Por favor, tente novamente entre os dias 20 e 5 do mês, durante o horário das 22:00 (10 PM) às 07:00 (7 AM).<br/><small>This request is not allowed at the moment. Please try again between the 20th and 5th of the month, during the hours of 22:00 (10 PM) to 07:00 (7 AM).</small> |
| <a id="FGTS00045"></a>`FGTS00045` | 409 | **Period Status Conflict**<br/>O período<br/><small>The period</small> |
| <a id="FGTS00046"></a>`FGTS00046` | 409 | **Period Status Conflict**<br/>O período<br/><small>The period</small> |
| <a id="FGTS00047"></a>`FGTS00047` | 404 | **The reservation is not in status**<br/>A reserva não está no status<br/><small>The reservation is not in status</small> |
| <a id="FGTS00048"></a>`FGTS00048` | 409 | **Period Status Conflict**<br/>O período<br/><small>The period</small> |
| <a id="FGTS00049"></a>`FGTS00049` | 409 | **Reservation Already Locked**<br/>A reserva<br/><small>The reservation</small> |
| <a id="FGTS00401"></a>`FGTS00401` | 401 | **Unauthenticated User**<br/>Você precisa estar autenticado para realizar essa requisição.<br/><small>You need to be authenticated to send this request.</small> |
| <a id="FGTS00403"></a>`FGTS00403` | 404 | **Invalid Document Number Format**<br/>O número de documento {document_number} é inválido ou está mal formatado. Use apenas dígitos.<br/><small>The given document number {document_number} is invalid or malformed. Use only digits.</small> |

### FPL — Consignado Federal Siape

23 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="FPL000001"></a>`FPL000001` | 400 | **Bad Request**<br/>CPF {document_number} fornecido não é valido.<br/><small>Given {document_number} document number is invalid.</small> |
| <a id="FPL000002"></a>`FPL000002` | 400 | **Bad Request**<br/>O período da reserva deve ser maior que 0 e igual ao valor de períodos.<br/><small>Given reservation_period: {reservation_period}, must be greater than 0 and equal to the number of periods.</small> |
| <a id="FPL000003"></a>`FPL000003` | 400 | **Bad Request**<br/>Todos os períodos da reserva devem possuir valor igual ao valor reservado: {reservation_amount}<br/><small>All periods must have the amount equal to reservation amount: {reservation_amount}.</small> |
| <a id="FPL000004"></a>`FPL000004` | 400 | **Bad Request**<br/>Os períodos devem possuir data superior a hoje.<br/><small>Periods due date must be grater than today.</small> |
| <a id="FPL000006"></a>`FPL000006` | 400 | **Bad Request**<br/>Montante desenbolsado {disbursed_amount} não pode ser maior que a soma das parcelas {amount_payable}<br/><small>Amount disbursed {disbursed_amount} cannot be greater than the sum of the {amount_payable} installments</small> |
| <a id="FPL000007"></a>`FPL000007` | 400 | **Bad Request**<br/>Os períodos devem possuir datas em meses subsequentes.<br/><small>Periods due date must occur in sub sequent months.</small> |
| <a id="FPL000008"></a>`FPL000008` | 409 | **Reservation Status Conflict**<br/>Reservas no status<br/><small>Reservation with status</small> |
| <a id="FPL000009"></a>`FPL000009` | 400 | **Refinancing contract cannot be reverted**<br/>Contrato de refinanciamento não pode ser revertido após 7 dias úteis da reserva.<br/><small>Refinancing contract cannot be reverted after 7 working days from reservation.</small> |
| <a id="FPL000010"></a>`FPL000010` | 500 | **Product doesn**<br/>O produto requerido não existe.<br/><small>The requested product doesn</small> |
| <a id="FPL000012"></a>`FPL000012` | 404 | **Balance not Found**<br/>A consulta de saldo com chave {balance_key} não foi encontrada.<br/><small>Balance with key {balance_key} was not found.</small> |
| <a id="FPL000013"></a>`FPL000013` | 404 | **Reservation not Found**<br/>A reserva com chave {reservation_key} não foi encontrada.<br/><small>Reservation with key {reservation_key} was not found.</small> |
| <a id="FPL000014"></a>`FPL000014` | 404 | **External key not Found**<br/>A reserva com chave externa {external_key} não foi encontrada.<br/><small>Reservation with external key {external_key} was not found.</small> |
| <a id="FPL000015"></a>`FPL000015` | 409 |  |
| <a id="FPL000016"></a>`FPL000016` | 404 | **Contract not Found**<br/>Contrato {contract_number} não encontrado<br/><small>Contract {contract_number} not found</small> |
| <a id="FPL000018"></a>`FPL000018` | 404 | **Disbursemente Option not Found**<br/>Opção de desembolso para {disbursement_date} não foi encontrada.<br/><small>Disbursemente option for {disbursement_date} was not found.</small> |
| <a id="FPL000019"></a>`FPL000019` | - | Os servidores da cache retornaram um erro.<br/><small>Cache server returned an error.</small> |
| <a id="FPL000020"></a>`FPL000020` | 409 | **Conflict**<br/>Consulta de margem com status {status} não pode ser retentado.<br/><small>Balance Request with status {status} cannot be retried.</small> |
| <a id="FPL000021"></a>`FPL000021` | 400 | **Reservation status not permitted on refinancing**<br/>Reserva com a chave externa: {external_key}  está no status {status} que não é permitido para refinanciamento.<br/><small>Reservation with external_key: {external_key} is on status {status} which is not permitted for refinancing.</small> |
| <a id="FPL000022"></a>`FPL000022` | 404 | **Protocol not Found**<br/>Protocolo com chave {external_key} não foi encontrada.<br/><small>Protocol with key {external_key} was not found.</small> |
| <a id="FPL000023"></a>`FPL000023` | 400 | **Ivanlid protocol type**<br/>Protocolo do tipo {protocol_type} não existe.<br/><small>Protocol type {protocol_type} doesn</small> |
| <a id="FPL000024"></a>`FPL000024` | 400 | **Invalid Balance**<br/>A consulta de saldo com status {balance_status} não pode ser processada.<br/><small>Balance with status {balance_status} can</small> |
| <a id="FPL000025"></a>`FPL000025` | 500 | **Incorrect Refinanced Reservation.**<br/>O número de reservas refinanciadas está incorreto.<br/><small>The number of refinanced reservation is incorrect.</small> |
| <a id="FPL000026"></a>`FPL000026` | 400 | **Incorrect Reservation Status.**<br/>A reserva {reservation_key} está em um status incorreto para este fluxo -  status: {status_enumerator}.<br/><small>The reservation {reservation_key} is in an incorrect status for this flow - status: {status_enumerator}.</small> |

### GDF — Autenticação e Autorização

28 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="GDF000001"></a>`GDF000001` | 403 | **Permission Validation Error**<br/>Somente usuários master são permitidos<br/><small>Only master user's are allowed</small> |
| <a id="GDF000002"></a>`GDF000002` | 403 | **Permission Validation Error**<br/>Um SELECTED-AGENT deve ser fornecido<br/><small>A SELECTED-AGENT must be provided</small> |
| <a id="GDF000003"></a>`GDF000003` | 400 | **Bad Request**<br/>Nenhuma chave de API do cliente recebida<br/><small>No API Client Key received</small> |
| <a id="GDF000004"></a>`GDF000004` | 400 | **Bad Request**<br/>Corpo da request vazio<br/><small>Empty body received</small> |
| <a id="GDF000005"></a>`GDF000005` | 400 | **Bad Request**<br/>Cliente da API já criado para esta person_key<br/><small>API Client already created for this person_key</small> |
| <a id="GDF000006"></a>`GDF000006` | 400 | **Bad Request**<br/>allowed_endpoint duplicado<br/><small>Duplicated allowed_endpoint provided</small> |
| <a id="GDF000007"></a>`GDF000007` | 404 | **Not Found**<br/>Nenhuma ClientIntegration encontrada para client_integration_key: {client_integration_key}.<br/><small>No ClientIntegration found for client_integration_key: {client_integration_key} .</small> |
| <a id="GDF000008"></a>`GDF000008` | 400 | **Bad Request**<br/>Uma client_integration_key deve ser fornecida<br/><small>A client_integration_key must be provided</small> |
| <a id="GDF000009"></a>`GDF000009` | 400 | **Bad Request**<br/>Uma ação deve ser fornecida<br/><small>A action must be provided</small> |
| <a id="GDF000010"></a>`GDF000010` | 400 | **Bad Request**<br/>Ação não existe ({action_name}).<br/><small>Action doesnt exist ({action_name}).</small> |
| <a id="GDF000011"></a>`GDF000011` | 404 | **Not Found**<br/>Nenhuma ClientIntegration encontrada para client_integration_key / allowed_endpoint_key: {client_integration_key} / {allowed_endpoint_key}.<br/><small>No ClientIntegration found for client_integration_key / allowed_endpoint_key: {client_integration_key} / {allowed_endpoint_key}.</small> |
| <a id="GDF000012"></a>`GDF000012` | 404 | **Not Found**<br/>Nenhuma AllowedEndpoint encontrada para client_integration_key / allowed_endpoint_key: {client_integration_key} / {allowed_endpoint_key}.<br/><small>No AllowedEndpoint found for client_integration_key / allowed_endpoint_key: {client_integration_key} / {allowed_endpoint_key}.</small> |
| <a id="GDF000013"></a>`GDF000013` | 400 | **Bad Request**<br/>Uma chave allowed_endpoint_key deve ser fornecida<br/><small>A allowed_endpoint_key must be provided</small> |
| <a id="GDF000014"></a>`GDF000014` | 401 | **QI Unauthenticated**<br/>Por favor forneça credenciais válidas como parte da request. (Documentação: https://docs.qitech.com.br) Detalhes: {details_br}<br/><small>Please provide valid credentials as part of the request. (Documentation: https://docs.qitech.com.br) Details: {details}</small> |
| <a id="GDF000015"></a>`GDF000015` | 400 | **Bad Request**<br/>Por favor forneça uma chave pública válida<br/><small>Please provide a valid client_public_key</small> |
| <a id="GDF000016"></a>`GDF000016` | 400 | **Bad Request**<br/>Erro ao decodificar o JSON do corpo da requisição. Por favor verifique se o corpo é válido. Detalhes: {json_ex}<br/><small>Error while decoding request's JSON body. Please verify if body is valid. Details: {json_ex}</small> |
| <a id="GDF000017"></a>`GDF000017` | 400 | **Bad Request**<br/>Valor inválido ({info}).<br/><small>Invalid Value ({info}).</small> |
| <a id="GDF000018"></a>`GDF000018` | 404 | **Not Found**<br/>Nenhuma ClientIntegration encontrada para api_client_key: {api_client_key}.<br/><small>No ClientIntegration found for api_client_key: {api_client_key}.</small> |
| <a id="GDF000019"></a>`GDF000019` | 400 | **Bad Request**<br/>Mapeamento ainda inexistente para request_type: '{request_type}'.<br/><small>Informed request_type: '{request_type}' has not been mapped yet.</small> |
| <a id="GDF000020"></a>`GDF000020` | 500 | **Internal Error**<br/>Account Key não pode ser nulo quando solicitar uma inclusão de chave.<br/><small>Account Key can't be null when including pix key.</small> |
| <a id="GDF000021"></a>`GDF000021` | 500 | **Internal Error**<br/>Falha na requisição para autorização de SCR.<br/><small>Failed to request SCR authorization.</small> |
| <a id="GDF000022"></a>`GDF000022` | 400 | **Bad Request**<br/>Mapeamento ainda inexistente para request_type: '{request_type}'.<br/><small>Informed request_type: '{request_type}' has not been mapped yet.</small> |
| <a id="GDF000023"></a>`GDF000023` | 401 | **Unauthorized**<br/>SSL validation error<br/><small>Error na verificação SSL</small> |
| <a id="GDF000024"></a>`GDF000024` | 400 | **Bad Request**<br/>Error at client webhook endpoint<br/><small>Error no endpoint de webhook do cliente</small> |
| <a id="GDF000025"></a>`GDF000025` | 403 | **Permission Validation Error**<br/>Somente os ambientes de desenvolvimento e de sandbox são permitidos para realizar requisições na Mock API.<br/><small>Only sandbox and dev environment are allowed to request Mock API</small> |
| <a id="GDF000026"></a>`GDF000026` | 400 | **Bad Request**<br/>Versão do método de assinatura não permitida<br/><small>Signature method version not allowed</small> |
| <a id="GDF000027"></a>`GDF000027` | 404 | **Not Found**<br/>Nenhuma ClientIntegration encontrada para a person_key: {person_key}.<br/><small>No ClientIntegration found for person_key: {person_key}.</small> |
| <a id="GDF000028"></a>`GDF000028` | 404 | **Not Found**<br/>A requisição precisa de um body, mesmo que um vazio como: '{}'.<br/><small>The request needs a body, even an empty one like: '{}'.</small> |

### LEG — Lego

155 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="LEG000001"></a>`LEG000001` | 400 | **Bad Request**<br/>Use POST /configuration |
| <a id="LEG000002"></a>`LEG000002` | 400 | **Bad Request**<br/>Request não é interna<br/><small>Request is not internal</small> |
| <a id="LEG000003"></a>`LEG000003` | 400 | **Configuration Error**<br/>Já existe uma configuração para a pessoa: {person_key} no endpoint: {endpoint}. Para alterar uma configuração, use PUT /configuration<br/><small>A configuration already exists for the person: {person_key} on the endpoint: {endpoint}. To change a configuration use PUT /configuration</small> |
| <a id="LEG000004"></a>`LEG000004` | 400 | **Bad Request**<br/>Nenhum selected-agent fornecido<br/><small>No selected-agent provided</small> |
| <a id="LEG000005"></a>`LEG000005` | 400 | **Configuration Error**<br/>Nenhuma configuração encontrada para a pessoa: {person_key} no endpoint: {endpoint}. Para registrar uma nova, use POST / configuration<br/><small>No configuration found for the person: {person_key} on the endpoint: {endpoint}. To register a new one, use POST /configuration</small> |
| <a id="LEG0000057"></a>`LEG0000057` | 400 | **Bad Request**<br/>A operation_key recebida já está registrada para outra operação. Por favor, envie uma key não utilizada.<br/><small>Received operation_key already registered for another operation. Please send a new one.</small> |
| <a id="LEG000006"></a>`LEG000006` | 400 | **Configuration Error**<br/>Multiplas configurações encontradas para a pessoa: {person_key} no endpoint: {endpoint}. Por favor entre em contato com o administrador<br/><small>Multiple configurations found for the person: {person_key} on the endpoint: {endpoint}. Please contact the system administrator.</small> |
| <a id="LEG000007"></a>`LEG000007` | 400 | **Configuration Error**<br/>Chave da configuração não fornecida.<br/><small>No configuration key provided.</small> |
| <a id="LEG000008"></a>`LEG000008` | 404 | **Configuration Error**<br/>Nenhuma configuração encontrada para a configuration_key: {configuration_key}.<br/><small>No configuration found for the configuration_key: {configuration_key}</small> |
| <a id="LEG000009"></a>`LEG000009` | 404 | **Configuration Error**<br/>Nenhuma configuração encontrada para a pessoa: {person_key}.<br/><small>No configuration found for person: {person_key}</small> |
| <a id="LEG000010"></a>`LEG000010` | 400 | **Bad Request**<br/>A ação é nula<br/><small>Action is null</small> |
| <a id="LEG0000100"></a>`LEG0000100` | 400 | **Bad Request**<br/>Falha ao validar contrato na dataprev, tente novamente.<br/><small>Failed to check contract in dataprev. Please try again.</small> |
| <a id="LEG0000101"></a>`LEG0000101` | 400 | **Bad Request**<br/>Status inválido para solicão de abertura de conta. Status enviado {account_status}.<br/><small>Invalid status response for checking account request. Status sent {account_status}.</small> |
| <a id="LEG0000102"></a>`LEG0000102` | 400 | **Bad Request**<br/>Chave pix inválida. Chave enviada {pix_key}. Por favor entre em contato.<br/><small>Invalid pix_key. Pix key sent {pix_key}. Please contact support</small> |
| <a id="LEG0000103"></a>`LEG0000103` | 400 | **Bad Request**<br/>Chave pix inválida comprimento do email. Chave enviada {pix_key}. Email não deve ultrapassar 72 caracteres.<br/><small>Invalid pix_key email lenght. Pix key sent {pix_key}. Email must not exceed 72 chars.</small> |
| <a id="LEG0000104"></a>`LEG0000104` | 400 | **Bad Request**<br/>Chave pix inválida email. Chave enviada {pix_key}. Email não deve conter espaços.<br/><small>Invalid pix_key email type. Pix key sent {pix_key}. Email must not contains white space.</small> |
| <a id="LEG0000105"></a>`LEG0000105` | 400 | **Bad Request**<br/>Chave pix inválida email. Chave enviada {pix_key}. Email deve conter apenas caracteres minúsculos.<br/><small>Invalid pix_key email type. Pix key sent {pix_key}. Email must only contains lower chars .</small> |
| <a id="LEG0000106"></a>`LEG0000106` | 400 | **Bad Request**<br/>Chave pix inválida. Chave enviada {pix_key}. Telefone deve ser no formato internacional<br/><small>Invalid pix_key. Pix key sent {pix_key}. Phone must been in internacional format</small> |
| <a id="LEG0000107"></a>`LEG0000107` | 400 | **Bad Request**<br/>Chave pix inválida. Chave enviada {pix_key}. Documentos não devem conter caracteres especiais.<br/><small>Invalid pix_key. Pix key sent {pix_key}. Documents must not contains special chars.</small> |
| <a id="LEG0000108"></a>`LEG0000108` | 400 | **Bad Request**<br/>Chave pix inválida. Chave enviada {pix_key}. Documentos devem ser válidos.<br/><small>Invalid pix_key. Pix key sent {pix_key}. Documents must be valid.</small> |
| <a id="LEG0000109"></a>`LEG0000109` | 400 | **Bad Request**<br/>Chave pix inválida. Chave enviada {pix_key}. Chave aletória deve ser um uuid4 válido.<br/><small>Invalid pix_key. Pix key sent {pix_key}. Random key must be a valid uuid4</small> |
| <a id="LEG000011"></a>`LEG000011` | 400 | **Bad Request**<br/>Ação inválida<br/><small>Invalid action</small> |
| <a id="LEG0000110"></a>`LEG0000110` | 400 | **Bad Request**<br/>Operação cancelada não pode ser assinada.<br/><small>Operation canceled cannot be signed.</small> |
| <a id="LEG0000111"></a>`LEG0000111` | 400 | **Bad Request**<br/>O campo 'type' não pode ser nulo e deve conter um dos valores ('data-signature', 'pdf-signature')<br/><small>Field 'type' cannot be null and must contain one of the values ('data-signature', 'pdf-signature')</small> |
| <a id="LEG0000112"></a>`LEG0000112` | 400 | **Bad Request**<br/>Url enviada não é válida {url}<br/><small>Invalid url {url}</small> |
| <a id="LEG0000113"></a>`LEG0000113` | 400 | **Bad Request**<br/>Número Compe inválido. Valor de número compe: {financial_institution_code} não existe.<br/><small>Invalid code number. Value financial institution code: {financial_institution_code} does not exist.</small> |
| <a id="LEG0000114"></a>`LEG0000114` | 400 | **Bad Request**<br/>Foram encontradas parcelas com valor total menor que o mínimo de R$ 1,00.<br/><small>Found installments with total amount below the minimum of R$ 1,00</small> |
| <a id="LEG0000115"></a>`LEG0000115` | 400 | **Bad Request**<br/>É necessário informar no mínimo uma parcela<br/><small>It is necessary to inform at least one installment</small> |
| <a id="LEG0000116"></a>`LEG0000116` | 400 | **Bad Request**<br/>A operação atual não permite confirmação da reserva.<br/><small>Reserve confirmation is not possibile in current operation step.</small> |
| <a id="LEG0000117"></a>`LEG0000117` | 400 | **Bad Request**<br/>A operação atual não permite assinatura.<br/><small>Signature is not possibile in current operation step.</small> |
| <a id="LEG0000118"></a>`LEG0000118` | 400 | **Bad Request**<br/>Ignorando evento por quê não está nos status permitidos.<br/><small>Ignoring event because is not in allowed status.</small> |
| <a id="LEG0000119"></a>`LEG0000119` | 400 | **Bad Request**<br/>A operação não pode ser desembolsada antes de ser assinada<br/><small>Operation cannot be disbursed before it is signed.</small> |
| <a id="LEG000012"></a>`LEG000012` | 400 | **Bad Request**<br/>Falta chave da simulação de dívida<br/><small>Missing simulation debt key</small> |
| <a id="LEG0000120"></a>`LEG0000120` | 400 | **Bad Request**<br/>O brick está em 'dataprev_reservation_check', mas o webhook recebido é de desembolso.<br/><small>Brick flow step is 'dataprev_reservation_check', but received webhook is 'opened'.</small> |
| <a id="LEG0000121"></a>`LEG0000121` | 400 | **Bad Request**<br/>Operações que não estão canceladas não podem processar o webhook de cancelamento permanente.<br/><small>Operation that is not canceled cannot process cancel permanently webhook.</small> |
| <a id="LEG0000122"></a>`LEG0000122` | 400 | **Bad Request**<br/>Tarifa não permitida<br/><small>Contract Fee not permitted</small> |
| <a id="LEG0000123"></a>`LEG0000123` | 400 | **Bad Request**<br/>Status do evento ({event_status}) ou tipo de evento ({event_type}) inválidos para processar o brick.<br/><small>Invalid event_status ({event_status}) or event_type ({event_type}) to process brick.</small> |
| <a id="LEG000013"></a>`LEG000013` | 404 | **Not Found**<br/>Operação não encontrada para chave {debt_key}<br/><small>No operation found for key {debt_key}</small> |
| <a id="LEG000014"></a>`LEG000014` | 400 | **Bad Request**<br/>A chave {debt_key} não pertence a nenhuma operação do cliente {selected_agent}<br/><small>Key {debt_key} doesn't belong to any operation of client {selected_agent}</small> |
| <a id="LEG000015"></a>`LEG000015` | 400 | **Bad Request**<br/>Nenhuma chave de operação (operation_key) fornecida<br/><small>No operation_key provided</small> |
| <a id="LEG000016"></a>`LEG000016` | 404 | **Not Found**<br/>Operação não encontrada para chave de operação {operation_key}<br/><small>No operation found for the given operation_key {operation_key}</small> |
| <a id="LEG000017"></a>`LEG000017` | 400 | **Bad Request**<br/>Nenhuma relação encontrada para a pessoa especificada {person_key} e operação {operation_key}<br/><small>No relationship found for the given person {person_key} and operation {operation_key}</small> |
| <a id="LEG000018"></a>`LEG000018` | 400 | **Bad Request**<br/>A chave fornecida {operation_key} não está relacionada à operação {endpoint}. Por favor, use o endpoint apropriado<br/><small>The given key {operation_key} isn`t related to {endpoint} operation. Please use the appropriate endpoint</small> |
| <a id="LEG000019"></a>`LEG000019` | 400 | **Bad Request**<br/>Método {method} não permitido para o endpoint {endpoint}<br/><small>Method {method} not allowed for the endpoint {endpoint}</small> |
| <a id="LEG000020"></a>`LEG000020` | 400 | **Bad Request**<br/>Chave do documento (document_key) faltando, use GET /document/{document_key}<br/><small>Missing document_key, use GET /document/{document_key}</small> |
| <a id="LEG000021"></a>`LEG000021` | 404 | **Bad Request**<br/>Documento não encontrado para chave {document_key}<br/><small>Document not found for key {document_key}</small> |
| <a id="LEG000022"></a>`LEG000022` | 400 | **Bad Request**<br/>Para acessar informações de um documento, use GET /document/{document_key}<br/><small>To get document information, use GET /document/{document_key}</small> |
| <a id="LEG000023"></a>`LEG000023` | 400 | **Bad Request**<br/>Tipo de MiME {document_mime_type} não suportado<br/><small>MiME type {document_mime_type} not supported</small> |
| <a id="LEG000024"></a>`LEG000024` | 400 | **Bad Request**<br/>Tipo de MiME e extensão do arquivo não batem<br/><small>File MIME type and extension don't match</small> |
| <a id="LEG000025"></a>`LEG000025` | 400 | **Bad Request**<br/>Ocorreu um erro ao tentar criar um documento na doc-api: nenhuma resposta recebida<br/><small>An error occurred when trying to create document on doc-api: no response received</small> |
| <a id="LEG000026"></a>`LEG000026` | 400 | **Bad Request**<br/>A pessoa {person_key} não é dona do documento {document_key}<br/><small>Person {person_key} doesn't own document {document_key}</small> |
| <a id="LEG000027"></a>`LEG000027` | 400 | **Bad Request**<br/>A operação {operation_key} não pertence à pessoa {person_key}<br/><small>Operation key {operation_key} doesn't belong to requester {person_key}</small> |
| <a id="LEG000028"></a>`LEG000028` | 400 | **Bad Request**<br/>A chave fornecida {} não está relacionada a uma operação de crédito<br/><small>The given key {operation_key} is not related to a credit operation</small> |
| <a id="LEG000029"></a>`LEG000029` | 400 | **Bad Request**<br/>O status da operação {operation_key} é {credit_operation_status} e ainda não foi emitido<br/><small>Operation {operation_key} status is {credit_operation_status} and has not been issued yet</small> |
| <a id="LEG000030"></a>`LEG000030` | 400 | **Bad Request**<br/>Operação {operation_key} está {credit_operation_status}<br/><small>Operation {operation_key} is {credit_operation_status}</small> |
| <a id="LEG000031"></a>`LEG000031` | 400 | **Bad Request**<br/>Falta compliance_document_keys<br/><small>Missing compliance_document_keys</small> |
| <a id="LEG000032"></a>`LEG000032` | 404 | **Not Found**<br/>Nenhum documento foi encontrado para o compliance_document_key fornecido: {compliance_document_key}<br/><small>No document was found for the given compliance_document_key: {compliance_document_key}</small> |
| <a id="LEG000033"></a>`LEG000033` | 500 | **Configuration Error**<br/>Há um problema com sua configuração. Entre em contato com a administração do sistema<br/><small>There is a problem with your configuration. Please contact system administration</small> |
| <a id="LEG000034"></a>`LEG000034` | 400 | **Bad Request**<br/>Tipo de divisão mista entre valor e percentual<br/><small>Found mix of split type amount and percentage</small> |
| <a id="LEG000035"></a>`LEG000035` | 400 | **Bad Request**<br/>Para várias contas, você deve especificar os valores divididos<br/><small>For multiple accounts you must specify the split amounts</small> |
| <a id="LEG000036"></a>`LEG000036` | 400 | **Bad Request**<br/>Operação ({operation_key}) cancelada<br/><small>Operation ({operation_key}) status is cancelled</small> |
| <a id="LEG000037"></a>`LEG000037` | 400 | **Bad Request**<br/>Status não implementado<br/><small>Status not implemented</small> |
| <a id="LEG000038"></a>`LEG000038` | 400 | **Bad Request**<br/>Bloco {brick_name} não existe.<br/><small>Brick {brick_name} doesnt exist.</small> |
| <a id="LEG000039"></a>`LEG000039` | 400 | **Bad Request**<br/>Número da conta: {account_number} com o dígito {branch_number} não encontrada<br/><small>Account number: {account_number} with branch {branch_number} not found</small> |
| <a id="LEG000040"></a>`LEG000040` | 400 | **Bad Request**<br/>A conta de liquidação {account_number} não pertence ao mutuário com o número do documento {borrower_document_number}<br/><small>Settlement account {account_number} does not belong to borrower with document number {borrower_document_number}</small> |
| <a id="LEG000041"></a>`LEG000041` | 400 | **Request Validator Error**<br/>Payload Inválido<br/><small>{description}</small> |
| <a id="LEG000042"></a>`LEG000042` | 400 | **Request Validator Error**<br/>Campo ausente document_number em disbursement_bank_accounts<br/><small>Missing field document_number on disbursement_bank_accounts</small> |
| <a id="LEG000043"></a>`LEG000043` | 400 | **Request Validator Error**<br/>Falta o nome do campo em disbursement_bank_accounts<br/><small>Missing field name on disbursement_bank_accounts</small> |
| <a id="LEG000044"></a>`LEG000044` | 400 | **Request Validator Error**<br/>A soma percentual_recebível de todas as disbursement_bank_accounts não pode ser maior que 100<br/><small>The percentage_receivable sum of all disbursement_bank_accounts can't be greater than 100</small> |
| <a id="LEG000045"></a>`LEG000045` | 400 | **Request Validator Error**<br/>A soma percentage_receivable de todas as disbursement_bank_accounts deve ser 100 se foi definida para todas as contas enviadas<br/><small>The percentage_receivable sum of all disbursement_bank_accounts must be 100 if it was set for all accounts sent</small> |
| <a id="LEG000046"></a>`LEG000046` | 400 | **Request Validator Error**<br/>contract_number já registrado. Por favor, use outro<br/><small>contract_number already registered. Please use another one</small> |
| <a id="LEG000047"></a>`LEG000047` | 400 | **Request Validator Error**<br/>allowed_user ausente para criação de conta PJ<br/><small>Missing allowed_user for legal account creation</small> |
| <a id="LEG000048"></a>`LEG000048` | 400 | **Bad Request**<br/>O requester_document_number fornecido ({document_number}) não é válido<br/><small>The provided requester_document_number ({document_number}) is not valid</small> |
| <a id="LEG000049"></a>`LEG000049` | 400 | **Bad Request**<br/>Nenhuma operation_key ou transaction_request_key fornecida<br/><small>No operation_key or transaction_request_key provided</small> |
| <a id="LEG000050"></a>`LEG000050` | 400 | **Bad Request**<br/>Operação não encontrada para a chave fornecida {operation_key}<br/><small>Operation not found for the given key {operation_key}.</small> |
| <a id="LEG000051"></a>`LEG000051` | 400 | **Bad Request**<br/>A operação não pode ser emitida antes de ser assinada<br/><small>Operation cannot be issued before it is signed.</small> |
| <a id="LEG000052"></a>`LEG000052` | 400 | **Bad Request**<br/>O parâmetro action_type deve ser enviado.<br/><small>Must provide parameter action_type.</small> |
| <a id="LEG000053"></a>`LEG000053` | 400 | **Bad Request**<br/>Não é possível executar esta ação {action_type}<br/><small>Cannot perform this action {action_type}.</small> |
| <a id="LEG000054"></a>`LEG000054` | 400 | **Bad Request**<br/>Simulação inválida na requisição<br/><small>Invalid simulation within request</small> |
| <a id="LEG000055"></a>`LEG000055` | 400 | **Bad Request**<br/>Envie somente 'rebates' ou 'rebate' e/ou 'rebate_type'<br/><small>Provide either 'rebates' or 'rebate' and/or 'rebate_type'</small> |
| <a id="LEG000056"></a>`LEG000056` | 403 | **Unauthorized**<br/>O cliente não possui este item<br/><small>Client does not own this item</small> |
| <a id="LEG000058"></a>`LEG000058` | 400 | **Bad Request**<br/>Envie somente 'annual_interest_rate' ou 'monthly_interest_rate'<br/><small>Provide either 'annual_interest_rate' or 'monthly_interest_rate'</small> |
| <a id="LEG000059"></a>`LEG000059` | 400 | **Bad Request**<br/>Envie 'annual_interest_rate' quando o 'interest_type' for 'cdi_perc'<br/><small>Provide 'annual_interest_rate' when interest_type is 'cdi_perc'</small> |
| <a id="LEG000060"></a>`LEG000060` | 400 | **Bad Request**<br/>Parâmetro incorreto no body da request<br/><small>Wrong parameter on the request body</small> |
| <a id="LEG000061"></a>`LEG000061` | 401 | **Unauthorized**<br/>Payload inválido ou expirado<br/><small>Invalid or expired payload</small> |
| <a id="LEG000062"></a>`LEG000062` | 400 | **Bad Request**<br/>Operação esperando confirmação do evento de desembolso: Status recebido {operation_status}<br/><small>Operation is waiting disbursement confirmation. Status received: {operation_status}</small> |
| <a id="LEG000063"></a>`LEG000063` | 400 | **Bad Request**<br/>Status não aceito por parâmetros ausentes ou incorretos no corpo do retorno de chamada: {operation_status}<br/><small>Status not accepted by missing or wrong parameters on the callback body: {operation_status}</small> |
| <a id="LEG000064"></a>`LEG000064` | 400 | **Bad Request**<br/>Assignment não encontrado for key: {assignment_key}<br/><small>Assignment not found for key: {assignment_key}</small> |
| <a id="LEG000065"></a>`LEG000065` | 400 | **Bad Request**<br/>Parâmetro de assinatura ausente ou incorreto no body da request<br/><small>Missing or wrong signature parameter on the request body</small> |
| <a id="LEG000066"></a>`LEG000066` | 400 | **Bad Request**<br/>Operação {operation_key} já tem um endosso com status {endorsement_status}<br/><small>Operation {operation_key} already has a endorsement with status {endorsement_status}</small> |
| <a id="LEG000067"></a>`LEG000067` | 500 | **Internal Error**<br/>Erro ao gerar {errors}<br/><small>Error while generating {errors}</small> |
| <a id="LEG000068"></a>`LEG000068` | 400 | **Bad Request**<br/>Corpo da requisição inválido para simulações em lote.<br/><small>Invalid request body for batch simulation.</small> |
| <a id="LEG000069"></a>`LEG000069` | 400 | **Bad Request**<br/>Corpo da requisição inválido para simulação unitária.<br/><small>Invalid request body for single simulation.</small> |
| <a id="LEG000070"></a>`LEG000070` | 400 | **Bad Request**<br/>A operação de crédito {credit_operation_key} não pertence à pessoa {person_key}<br/><small>Credit Operation key {credit_operation_key} doesn't belong to requester {person_key}</small> |
| <a id="LEG000071"></a>`LEG000071` | 400 | **Bad Request**<br/>Não é possível desembolsar {target_disbursed_amount}, o máximo possível é {max_disbursed_amount}<br/><small>Cannot serve {target_disbursed_amount}, the max is {max_disbursed_amount}</small> |
| <a id="LEG000072"></a>`LEG000072` | 400 | **Bad Request**<br/>Falha ao validar hash MT. Razão: {reason}<br/><small>Failed validating MT hash. Reason: {reason}</small> |
| <a id="LEG000073"></a>`LEG000073` | 400 | **Bad Request**<br/>Status da operação {operation_key} não permite cancelamento.Status atual: {co_status}<br/><small>Operation {operation_key} actual status does not allow cancel operation. Actual status is {co_status}</small> |
| <a id="LEG000074"></a>`LEG000074` | 400 | **Bad Request**<br/>Devolução de Pix não é permitido para contas escrow<br/><small>Pix Chargeback is now allowed from escrow accounts.</small> |
| <a id="LEG000075"></a>`LEG000075` | 400 | **Bad Request**<br/>Conta {account_key} está fechada.<br/><small>Account {account_key} is closed.</small> |
| <a id="LEG000076"></a>`LEG000076` | 400 | **Bad Request**<br/>Conta {account_key} está bloqueada.<br/><small>Account {account_key} is blocked.</small> |
| <a id="LEG000077"></a>`LEG000077` | 403 | **Unauthorized**<br/>Usuário não tem permissão para realizar essa ação.<br/><small>User has no credentials to perform this action.</small> |
| <a id="LEG000078"></a>`LEG000078` | 400 | **Bad Request**<br/>Chave Pix e conta de destinos não podem ser ambos nulos.<br/><small>Pix key and target_account must not be null.</small> |
| <a id="LEG000079"></a>`LEG000079` | 400 | **Bad Request**<br/>Data de agendamento não pode ser menor que hoje.<br/><small>Schedule date can not be less than today.</small> |
| <a id="LEG000080"></a>`LEG000080` | 400 | **Bad Request**<br/>Conta de origem possui saldo negativo.<br/><small>Source Account has negative balance</small> |
| <a id="LEG000081"></a>`LEG000081` | 400 | **Bad Request**<br/>Conta de destino não permitida para essa conta escrow.<br/><small>Account destination not allowed for this escrow account.</small> |
| <a id="LEG000082"></a>`LEG000082` | 400 | **Bad Request**<br/>O documento de identificação do requester não pode ser nulo.<br/><small>Requester document identification can not be null</small> |
| <a id="LEG000083"></a>`LEG000083` | 400 | **Bad Request**<br/>Transferência Pix não encontrada para a pix_transfer_key {pix_transfer_key}.<br/><small>Pix Transfer not found for pix_transfer_key {pix_transfer_key}.</small> |
| <a id="LEG000084"></a>`LEG000084` | 400 | **Bad Request**<br/>O campo pix_transfer_key não deve ser nulo quando for uma devolução Pix.<br/><small>pix_transfer_key can not be null for chargeback</small> |
| <a id="LEG000085"></a>`LEG000085` | 400 | **Bad Request**<br/>Pix Key inválida.<br/><small>Invalid Pix Key.</small> |
| <a id="LEG000086"></a>`LEG000086` | 400 | **Bad Request**<br/>Conta para a account_key {account_key} não encontrada.<br/><small>Account for account key {account_key} not found.</small> |
| <a id="LEG000087"></a>`LEG000087` | 400 | **Bad Request**<br/>Valor da transação inválido<br/><small>Invalid decimal transaction amount</small> |
| <a id="LEG000088"></a>`LEG000088` | 400 | **Bad Request**<br/>Finalidade da transação deve ser transfer, payment_with_change or withdraw<br/><small>Transfer purpose must be one of transfer, payment_with_change or withdraw</small> |
| <a id="LEG000089"></a>`LEG000089` | 400 | **Bad Request**<br/>Quando o pix_transfer_type é static, dynamic_instant ou dynamic_term, end_to_end_id é obrigatório<br/><small>When pix_transfer_type is static, dynamic_instant or dynamic_term, end_to_end_id is required</small> |
| <a id="LEG000090"></a>`LEG000090` | 400 | **Bad Request**<br/>O Compliance não foi aprovado<br/><small>Compliance has not been approved</small> |
| <a id="LEG000091"></a>`LEG000091` | 400 | **Bad Request**<br/>O documento enviado {document_number} não é dono da conta de origem<br/><small>Given document number {document_number} is not source account owner.</small> |
| <a id="LEG000092"></a>`LEG000092` | 400 | **Bad Request**<br/>Payload inválida para a etapa de fluxo atual em operação {operation_key}.<br/><small>Invalid payload for current flow step in operation {operation_key}.</small> |
| <a id="LEG000093"></a>`LEG000093` | 400 | **Bad Request**<br/>Origem {origin} não esperada no fluxo da kyc<br/><small>Origin {origin} not expected for kyc flow.</small> |
| <a id="LEG000094"></a>`LEG000094` | 404 | **Bad Request**<br/>Documento de biometria facial não foi encontrado<br/><small>Facial Biometrics Document was not found</small> |
| <a id="LEG000095"></a>`LEG000095` | 423 | **Locked**<br/>TED está disponível entre {opening_time} e {closing_time}<br/><small>TED is available from {opening_time} to {closing_time}</small> |
| <a id="LEG000096"></a>`LEG000096` | 400 | **Bad Request**<br/>As taxas de juros prefixadas não foram cadastradas, favor entrar em contato.<br/><small>Prefixed interest rate not registered, please contact us.</small> |
| <a id="LEG000097"></a>`LEG000097` | 401 | **Unauthorized**<br/>Acesso negado para o cargo informado<br/><small>Access denied for informed role</small> |
| <a id="LEG000098"></a>`LEG000098` | 400 | **Bad Request**<br/>Formato de data inválido. Deve ser YYYY-MM-DD<br/><small>Invalid date format. Should be YYYY-MM-DD</small> |
| <a id="LEG000099"></a>`LEG000099` | 400 | **Bad Request**<br/>Número de parcelas desejadas deve ser igual ao número de parcelas<br/><small>Number of desired installments must be equal to number of installments</small> |
| <a id="LEG000124"></a>`LEG000124` | 400 | **Bad Request**<br/>Data de desembolso precisa ser hoje para desembolso sincrono.<br/><small>Disbursement date must be today for synchronous disbursement.</small> |
| <a id="LEG000125"></a>`LEG000125` | 400 | **Bad Request**<br/>Account key não enviada.<br/><small>Account key not sent.</small> |
| <a id="LEG000126"></a>`LEG000126` | 400 | **Bad Request**<br/>O status da operação de crédito: {co_status} não permite esta operação.<br/><small>Credit operation status: {co_status} does not allow this operation.</small> |
| <a id="LEG000127"></a>`LEG000127` | 400 | **Bad Request**<br/>A nova data de desembolso deve estar entre a data inicial de desembolso e a data final de desembolso.<br/><small>The new disbursement date must be between the disbursement start date and disbursement end date.</small> |
| <a id="LEG000128"></a>`LEG000128` | 400 | **Bad Request**<br/>Uma nova data de desembolso deve ser informada.<br/><small>A new valid disbursement date must be provided.</small> |
| <a id="LEG000129"></a>`LEG000129` | 400 | **Bad Request**<br/>Etapa não encontrada para configuralçao desta operação.<br/><small>Flow step not found for this operation configuration.</small> |
| <a id="LEG000130"></a>`LEG000130` | 400 | **Bad Request**<br/>Ação não permitida, porque a garantia não foi constituído. Credit Operation Key {credit_operation_key}<br/><small>Unable to do action, because collaterals are not constituted. Credit operation key {credit_operation_key};</small> |
| <a id="LEG000131"></a>`LEG000131` | 400 | **Bad Request**<br/>Ação não permitida, porque a entrada não foi paga. Credit Operation Key {credit_operation_key}<br/><small>Unable to do action, because entry is not paid. Credit operation key {credit_operation_key};</small> |
| <a id="LEG000132"></a>`LEG000132` | 400 | **Bad Request**<br/>A operação de crédito {credit_operation_key} não tem data de desembolso<br/><small>Credit Operation {credit_operation_key} has no disbursement_date</small> |
| <a id="LEG000133"></a>`LEG000133` | 400 | **Bad Request**<br/>Data da cessão deve ser maior ou igual à data de desembolso.<br/><small>Assignment date must be after or equal disbursement date.</small> |
| <a id="LEG000134"></a>`LEG000134` | 400 | **Bad Request**<br/>Conta com ducumento {document_number} não encontrada<br/><small>Account with document number: {document_number}</small> |
| <a id="LEG000135"></a>`LEG000135` | 400 | **Bad Request**<br/>Endereço de Ip inválido {ip_address} .<br/><small>Invalid Ip Address {ip_address} .</small> |
| <a id="LEG000136"></a>`LEG000136` | 400 | **Bad Request**<br/>Pre price não aceita parcelas personalizadas com percentual de amortização.<br/><small>Pre price do not accept custom installment with principal amortization percentage.</small> |
| <a id="LEG000137"></a>`LEG000137` | 400 | **Bad Request**<br/>'amount' ou 'disbursed_amount' deve ser informado.<br/><small>'amount' or 'disbursed_amount' must be informed.</small> |
| <a id="LEG000138"></a>`LEG000138` | 400 | **Bad Request**<br/>A ultima deve ter juros.<br/><small>Last installment must have interest.</small> |
| <a id="LEG000139"></a>`LEG000139` | 400 | **Bad Request**<br/>Porcentagem de Amortização pode ter no máximo 4 casas decimais.<br/><small>Amortization Percentage can have a maximum of 4 decimal places.</small> |
| <a id="LEG000140"></a>`LEG000140` | 400 | **Bad Request**<br/>Porcentagem da amotização principal não pode ser 0% se não há juros.<br/><small>Principal amortization percentage can not be 0 without interest.</small> |
| <a id="LEG000141"></a>`LEG000141` | 400 | **Bad Request**<br/>Valor total da porcentagem é {total}, deve ser 1<br/><small>Total amount of percentage is {total}, must be 1</small> |
| <a id="LEG000142"></a>`LEG000142` | 400 | **Bad Request**<br/>Valor de face da parcela não deve ser informado se a parcela possui porcentage de amortização.<br/><small>Installment face value must not be informed if installment has principal_amortization_percentage.</small> |
| <a id="LEG000143"></a>`LEG000143` | 400 | **Bad Request**<br/>Primeira data de vencimento não deve ser informada se a data de vencimento da parcela for informada.<br/><small>First due date should not be informed if the installment due date is informed.</small> |
| <a id="LEG000144"></a>`LEG000144` | 400 | **Bad Request**<br/>O valor de face da parcela não pode ser alterado porque não foi informado na requisição original.<br/><small>Installment face value cannot be changed because it was not informed in the original request.</small> |
| <a id="LEG000145"></a>`LEG000145` | 400 | **Bad Request**<br/>O desembolso passou de {limit_days} para reverter a operação.<br/><small>The disbursement has passed {limit_days} to reverse operation.</small> |
| <a id="LEG000146"></a>`LEG000146` | 400 | **Bad Request**<br/>A reversão é permitida apenas para desembolsos em conta interna.<br/><small>The reversal is allowed just for internal account disbursements.</small> |
| <a id="LEG000147"></a>`LEG000147` | 400 | **Bad Request**<br/>A soma do saldo das contas de desembolsos: {account_balance} deve ser igual ao valor desembolsado: {disbursed_issue_amount}.<br/><small>The sum of disbursement account balance: {account_balance} must be equal to disbursed issue amount: {disbursed_issue_amount}.</small> |
| <a id="LEG000148"></a>`LEG000148` | 400 | **Bad Request**<br/>A operação não pode ter mais de uma conta de desembolso pra criar a reversão.<br/><small>The operation cannot have more than one disbursement account to create the reversal.</small> |
| <a id="LEG000149"></a>`LEG000149` | 400 | **Bad Request**<br/>A operação não pode ser assinada antes de ter seu documento gerado.<br/><small>Operation cannot be signed before document is generated.</small> |
| <a id="LEG000150"></a>`LEG000150` | 400 | **Bad Request**<br/>Data de assinatura (signature_datetime) não está no formato esperado: YYYY-MM-DDTHH:MM:SSZ<br/><small>Signature datetime is not in the expected format: YYYY-MM-DDTHH:MM:SSZ</small> |
| <a id="LEG000151"></a>`LEG000151` | 400 | **Bad Request**<br/>similarity_score não pode ser nulo<br/><small>similarity_score cannot be null</small> |
| <a id="LEG000152"></a>`LEG000152` | 400 | **Bad Request**<br/>similarity_score deve ser maior que 0<br/><small>similarity_score must be greater than 0</small> |
| <a id="LEG000153"></a>`LEG000153` | 400 | **Bad Request**<br/>O template do documento não pode ser definido para INSS.<br/><small>Document template key must not be set for social security collateral.</small> |
| <a id="LEG000154"></a>`LEG000154` | 400 | **Bad Request**<br/>A categoria de operação 'aumento salarial' não está permitida.<br/><small>Operation category 'minimum_wage_increase' is not allowed for social security collateral.</small> |
| <a id="LEG000155"></a>`LEG000155` | 400 | **Bad Request**<br/>Prêmio de seguro não encontrado nos dados da operação.<br/><small>Insurance premium not found in operation data.</small> |

### MPR — Consignado Militar

32 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="MPR000001"></a>`MPR000001` | 400 | **Invalid Document Number**<br/>CPF {document_number} fornecido não é valido.<br/><small>Given {document_number} document number is invalid.</small> |
| <a id="MPR000002"></a>`MPR000002` | 500 | **Internal Error**<br/>Os servidores da cache retornaram um erro.<br/><small>Cache server returned an error.</small> |
| <a id="MPR0000029"></a>`MPR0000029` | 409 | **Reservation already locked**<br/>A reserva com o id {reservation_id} já está bloqueada sendo processada.<br/><small>Reservation with id {reservation_id} is already locked being processed.</small> |
| <a id="MPR000003"></a>`MPR000003` | 400 | **Already on deletion process**<br/>Reserva com a chave externa: {external_key} já está em processo de desaverbação<br/><small>Reservation with external_key: {external_key} already on deletion process</small> |
| <a id="MPR000004"></a>`MPR000004` | 404 | **Reservation Not Found**<br/>Reserva com a chave: {reservation_key} não encontrada<br/><small>Reservation with key: {reservation_key} not found</small> |
| <a id="MPR000005"></a>`MPR000005` | 400 | **Already finished**<br/>Reserva com a chave externa: {external_key} já está em seu status final {reservation_status}<br/><small>Reservation with external_key: {external_key} is already in its final status {reservation_status}</small> |
| <a id="MPR000006"></a>`MPR000006` | 400 | **Reservation type conflict**<br/>Tipo de Reserva: {reservation_type} não esperado para o fluxo {flow_translation}.<br/><small>Reservation Type: {reservation_type} not expected for {flow} flow.</small> |
| <a id="MPR000007"></a>`MPR000007` | 404 | **Disbursement Option not Found**<br/>Opção de desembolso para {disbursement_date} não foi encontrada.<br/><small>Disbursement option for {disbursement_date} was not found.</small> |
| <a id="MPR000009"></a>`MPR000009` | 409 | **Reservation Status Conflict**<br/>Reservas no status<br/><small>Reservation with status</small> |
| <a id="MPR000010"></a>`MPR000010` | 404 | **Balance Not Found**<br/>Pedido de Margem com a chave: {balance_key} não foi encontrado.<br/><small>Balance Request with key: {balance_key} was not found.</small> |
| <a id="MPR000011"></a>`MPR000011` | 403 | **Unauthorized Request**<br/>Requisição precisar ser internal ou da master.<br/><small>Request must be internal or from master.</small> |
| <a id="MPR000012"></a>`MPR000012` | 404 | **Accrual Not Found**<br/>Accrual não encontrado: {reference_date}<br/><small>Accrual not found: {reference_date}.</small> |
| <a id="MPR000013"></a>`MPR000013` | 404 | **Active Token Not Found**<br/>Token ativo não encontrado para a reserva: {reservation_key}<br/><small>Active token was not found for reservation: {reservation_key}.</small> |
| <a id="MPR000014"></a>`MPR000014` | 400 | **Balance Not Allowed**<br/>Pedido de Margem com o status: {status} não foi permitido a retentativa.<br/><small>Balance Request with status: {status} was not allowed to retry.</small> |
| <a id="MPR000015"></a>`MPR000015` | 400 | **Balance Not Allowed**<br/>Pedido de Margem com o status: {status} não foi permitido a retentativa.<br/><small>Balance Request with status: {status} was not allowed to retry.</small> |
| <a id="MPR000016"></a>`MPR000016` | 404 | **Balance Not Found**<br/>Consulta de contratos para portabilidade com a chave: {portability_contracts_report_key} não foi encontrado.<br/><small>Portability contracts report with key: {portability_contracts_report_key} was not found.</small> |
| <a id="MPR000017"></a>`MPR000017` | 404 | **Reservation Not Found for Debt Key**<br/>Reserva com a chave de débito: {external_key} não encontrada<br/><small>Reservation with debt_key: {external_key} not found</small> |
| <a id="MPR000018"></a>`MPR000018` | 400 | **Reservation status not permitted on refinancing**<br/>Reserva com a chave externa: {external_key}  está no status {status} que não é permitido para refinanciamento.<br/><small>Reservation with external_key: {external_key} is on status {status} which is not permitted for refinancing.</small> |
| <a id="MPR000019"></a>`MPR000019` | 404 | **Period not found for informed Reservation**<br/>Reserva com a chave: {reservation_key}  não possui uma parcela com a data de vencimento: {due_date}.<br/><small>Reservation with reservation_key: {reservation_key} does not have a Period with due_date: {due_date}.</small> |
| <a id="MPR000020"></a>`MPR000020` | 400 | **Informed period not allowed to be paid**<br/>Periodo com vencimento: {due_date} da reserva: {reservation_key} está no status: {period_status} que não permite a atualização para o status<br/><small>Period with due_date: {due_date} from reservation: {reservation_key} is on status: {period_status} which does not allow to be updated to status</small> |
| <a id="MPR000021"></a>`MPR000021` | 500 | **Encoding Error**<br/>Erro ao codificar arquivo<br/><small>Error while encoding file</small> |
| <a id="MPR000022"></a>`MPR000022` | 400 | **Invalid Registration Code**<br/>Matrícula fornecida: {registration_code} é invalida.<br/><small>Informed registration code: {registration_code} is invalid.</small> |
| <a id="MPR000023"></a>`MPR000023` | 404 | **Protocol not Found**<br/>Protocolo com chave {external_key} não foi encontrada.<br/><small>Protocol with debt key {external_key} was not found.</small> |
| <a id="MPR000024"></a>`MPR000024` | 400 | **Ivanlid protocol type**<br/>Protocolo do tipo {protocol_type} não existe.<br/><small>Protocol type {protocol_type} doesn</small> |
| <a id="MPR000025"></a>`MPR000025` | 400 | **Reservation Type Not Allowed to Change**<br/>Reserva com a chave: {external_key} é do tipo {reservation_type_enum} e não pode ser alterada.<br/><small>Reservation with debt_key: {external_key} is of type {reservation_type_enum}, which is not allowed to be changed.</small> |
| <a id="MPR000026"></a>`MPR000026` | 400 | **Reservation Status not Permitted for Type Change**<br/>Reserva com a chave: {external_key} está no status {reservation_status_enum} que não é permitido para o fluxo de alteração de tipo de reserva.<br/><small>Reservation with debt_key: {external_key} is on status {reservation_status_enum}, which is not permitted for reservation type change.</small> |
| <a id="MPR000027"></a>`MPR000027` | 400 | **Proposal has Remaining Installments**<br/>Proposal {proposal_key} não deveria ter installments sobrando.<br/><small>Proposal {proposal_key} shouldn</small> |
| <a id="MPR000028"></a>`MPR000028` | 400 | **Zetra Invalid Document Type**<br/>Erro ao enviar documento para Zetra. Tipo de arquivo inválido.<br/><small>Zetra error while uploading document. File type is invalid</small> |
| <a id="MPR000030"></a>`MPR000030` | 404 | **Contract Not Found**<br/>Reserva com o número de contrato: {contract_number} não encontrada<br/><small>Reservation with contract number: {contract_number} not found</small> |
| <a id="MPR000031"></a>`MPR000031` | 500 | Proposta não encontrada para reserva {reservation_key} - {status}<br/><small>Proposal not found for reservation {reservation_key} - {status}</small> |
| <a id="MPR000032"></a>`MPR000032` | 400 | **Renegotiation Proposal bad request**<br/>Renegotiation Proposal bad request |
| <a id="MPR000033"></a>`MPR000033` | 400 | **External System Unavailable**<br/>O sistema externo retornou um código de status superior a 500<br/><small>External system response status code is greater than 500</small> |

### PPA — Leilão Consignado Privado

23 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="PPA000001"></a>`PPA000001` | 404 | **Requester Proposal not Found**<br/>A entidade com<br/><small>Requester Proposal with</small> |
| <a id="PPA000002"></a>`PPA000002` | 500 | **Error publishing message on pub sub.**<br/>Erro ao publicar mensagem no Pub Sub, número máximo de tentativas excedido.<br/><small>Error publishing message on Pub Sub, max reetries exceeded.</small> |
| <a id="PPA000003"></a>`PPA000003` | 409 | **Entity already locked**<br/>A reserva com o id {reservation_id} já está bloqueada sendo processada.<br/><small>Reservation with id {reservation_id} is already locked being processed.</small> |
| <a id="PPA000004"></a>`PPA000004` | 404 | **Requester not Found**<br/>Requester com chave {requester_key} não foi encontrado.<br/><small>Requester with</small> |
| <a id="PPA000005"></a>`PPA000005` | 404 | **Proposal Request not Found**<br/>Proposal Request com<br/><small>Proposal Request with</small> |
| <a id="PPA000006"></a>`PPA000006` | 400 | **Auction has ended, invalid action**<br/>Leilão para<br/><small>The auction for</small> |
| <a id="PPA000007"></a>`PPA000007` | 409 | **Proposal was already cancelled**<br/>Proposta com chave {auction_proposal_key} já foi cancelada<br/><small>The Auction Proposal with key: {auction_proposal_key} was already cancelled</small> |
| <a id="PPA000008"></a>`PPA000008` | 400 | **Invalid requester proposal payload**<br/>payload de proposta é inválido para auction_proposal_key:{auction_proposal_key}<br/><small>Invalid requester proposal payload for auction_proposal_key:{auction_proposal_key}</small> |
| <a id="PPA000009"></a>`PPA000009` | 409 | **Duplicated Proposal for this issuer proposal request**<br/>Proposta já foi feita: {issuer_proposal_request_key}, chave da proposta: {auction_proposal_key}<br/><small>Already made a proposal for issuer_proposal_request: {issuer_proposal_request_key}, the proposal key is: {auction_proposal_key}</small> |
| <a id="PPA000010"></a>`PPA000010` | 502 | **Dataprevs system is down**<br/>Sistema da Dataprev está fora de ar<br/><small>Dataprev system is down</small> |
| <a id="PPA000011"></a>`PPA000011` | 400 | **Error when connecting to private payroll for external_id**<br/>API de consignado privado não está respondendo devidamente ao PATCH de external_id<br/><small>Private Payroll API is not responding properly to external_id PATCH</small> |
| <a id="PPA000013"></a>`PPA000013` | 400 | **Could not create credit operation for auction winner**<br/>Erro ao criar operação de credito para proposta vencedora do leilão, chave da proposta: {auction_proposal_key}<br/><small>Could not create credit operation for auction winner for auction_proposal_key: {auction_proposal_key}</small> |
| <a id="PPA000014"></a>`PPA000014` | 400 | **Could not simulate credit operation for Proposal**<br/>Erro ao simular operação de credito para proposta vencedora do leilão, chave da proposta: {issuer_proposal_request_key}<br/><small>Could not simulate credit operation for auction winner for auction_proposal_key: {issuer_proposal_request_key}</small> |
| <a id="PPA000015"></a>`PPA000015` | 400 | **The assignment amount is greater than the operation final amount**<br/>Erro ao simular operação de credito para proposta feita a solicitação com chave {issuer_proposal_request_key}. Valores de entrada devem ser modificados.<br/><small>Could not simulate credit operation for proposal made to issuer proposal request with key: {issuer_proposal_request_key}. The input values need to be changed.</small> |
| <a id="PPA000016"></a>`PPA000016` | 400 | **Requester with this key does not exist**<br/>Não foi possível obter o requester da tabela de empregadores exclusivos, requester_key: {requester_key}<br/><small>Could not get the requester from exclusive employer table, requester with key {requester_key} does not exist</small> |
| <a id="PPA000017"></a>`PPA000017` | 400 | **Invalid Disbursement Account**<br/>Conta de desembolso invalida enquanto atualizava proposta com chave {auction_proposal_key}<br/><small>Invalid Disbursement Account while updating account for auction proposal with key: {auction_proposal_key}</small> |
| <a id="PPA000018"></a>`PPA000018` | 400 | **Invalid Employer Document Number**<br/>Número de documento de empregador inválido para proposta com chave {auction_proposal_key}<br/><small>Invalid Employer Document Number for auction proposal with key: {auction_proposal_key}</small> |
| <a id="PPA000019"></a>`PPA000019` | 400 | **Error when cancelling credit operation**<br/>Erro ao cancelar operação de crédito para proposta com chave {auction_proposal_key}<br/><small>Error when cancelling credit operation for auction proposal with key: {auction_proposal_key}</small> |
| <a id="PPA000020"></a>`PPA000020` | 400 | **Auction Proposal Validation Error**<br/>Erro durante validação de proposta para solicitação com chave da solicitação: {issuer_proposal_request_key}<br/><small>Error when validating auction proposal for issuer proposal request with key {issuer_proposal_request_key}</small> |
| <a id="PPA000021"></a>`PPA000021` | 400 | **Termination alert found in existent balance inquiry during validation**<br/>Alerta de terminação de vínculo em consulta de margem existente durante validação de proposta para solicitação com chave da solicitação: {issuer_proposal_request_key}<br/><small>Termination alert in existent balance inquiry during validation of auction proposal for issuer proposal request with key {issuer_proposal_request_key}</small> |
| <a id="PPA000022"></a>`PPA000022` | 400 | **Invalid Interest Rate**<br/>A taxa de juros não pode ser maior que {max_interest_rate}% ou menor que {min_interest_rate}%.<br/><small>Interest rate can</small> |
| <a id="PPA000023"></a>`PPA000023` | 400 | **Insurance premium not allowed**<br/>Seguro não é permitido para operações de Consignado Privado<br/><small>Insurance premium is not allowed for private payroll operations</small> |
| <a id="PPA000024"></a>`PPA000024` | 404 | **Requester configuration not found**<br/>Configuração de requester com chave {requester_key} não encontrada<br/><small>Requester configuration with key {requester_key} not found</small> |

### PRP — Consignado Privado

98 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="PRP000002"></a>`PRP000002` | - | **Bad Request**<br/>O envio do termo de autorização é obrigatório<br/><small>The authorization term is required</small> |
| <a id="PRP000003"></a>`PRP000003` | - | **Bad Request**<br/>O número de documento do emissor é inválido<br/><small>The issuer document number is invalid</small> |
| <a id="PRP000004"></a>`PRP000004` | - | **Bad Request**<br/>O número de documento do signatário é inválido<br/><small>The signer document number is invalid</small> |
| <a id="PRP000005"></a>`PRP000005` | - | **Bad Request**<br/>O número de documento do representante legal é inválido<br/><small>The legal representative document number is invalid</small> |
| <a id="PRP000006"></a>`PRP000006` | - | **Conflict**<br/>O número de documento do signatário é diferente do esperado<br/><small>The signer document number is different from the expected</small> |
| <a id="PRP000007"></a>`PRP000007` | - | **Rate Limit Exceeded**<br/>Limite de chamadas excedido para o serviço do Dataprev. Tente novamente mais tarde.<br/><small>Rate limit exceeded for Dataprev service. Try again later.</small> |
| <a id="PRP000008"></a>`PRP000008` | - | **Bad Gateway**<br/>Erro inesperado no serviço do Dataprev<br/><small>Unexpected error on Dataprev service</small> |
| <a id="PRP000009"></a>`PRP000009` | - | **Balance Inquiry Not Found**<br/>A chave da consulta de saldo não é válida<br/><small>The balance inquiry key is not valid</small> |
| <a id="PRP000010"></a>`PRP000010` | - | **Employment Relationships Inquiry Not Found**<br/>A chave da consulta de vínculos de emprego não é válida<br/><small>The employment relationships inquiry key is not valid</small> |
| <a id="PRP000011"></a>`PRP000011` | - | **Reservation already exists**<br/>A reserva já existe para a chave externa fornecida<br/><small>A reservation already exists for the external key provided</small> |
| <a id="PRP000012"></a>`PRP000012` | - | **Balance inquiry not found**<br/>Nenhuma consulta de saldo foi encontrada para a reserva<br/><small>A balance inquiry was not found for the reservation</small> |
| <a id="PRP000013"></a>`PRP000013` | - | **Balance inquiry not completed**<br/>A consulta de saldo não foi concluída<br/><small>The balance inquiry was not completed</small> |
| <a id="PRP000014"></a>`PRP000014` | - | **Periods are required**<br/>Os períodos são obrigatórios<br/><small>The periods are required</small> |
| <a id="PRP000015"></a>`PRP000015` | - | **Periods are greater than maximum allowed**<br/>Os períodos são maiores que o máximo permitido: {max_periods}<br/><small>The periods are greater than the maximum allowed: {max_periods}</small> |
| <a id="PRP000016"></a>`PRP000016` | - | **First due date is less than disbursement date**<br/>A data de vencimento inicial deve ser maior que a data de liberação<br/><small>The first due date must be greater than the disbursement date</small> |
| <a id="PRP000017"></a>`PRP000017` | - | **Invalid due date**<br/>As datas de vencimento devem ser no dia {due_day} ou após do mês<br/><small>Due dates must be on or after the {due_day}th day of the month</small> |
| <a id="PRP000018"></a>`PRP000018` | - | **Monthly interest rate is greater than maximum allowed**<br/>A taxa de juros mensal é maior que a máxima permitida: {formatted_rate}<br/><small>The monthly interest rate is greater than the maximum allowed: {formatted_rate}</small> |
| <a id="PRP000021"></a>`PRP000021` | - | **Total amount is less than minimum allowed**<br/>O valor total é menor que o mínimo permitido: {formatted_amount}<br/><small>The total amount is less than the minimum allowed: {formatted_amount}</small> |
| <a id="PRP000022"></a>`PRP000022` | - | **Invalid number of documents**<br/>O número de documentos deve ser 3 ou 4<br/><small>The number of documents must be 3 or 4</small> |
| <a id="PRP000023"></a>`PRP000023` | - | **Duplicate document type**<br/>O tipo de documento {DOCUMENT_TYPES_TRANSLATION[document_type]} está duplicado<br/><small>The document type {document_type} is duplicated</small> |
| <a id="PRP000024"></a>`PRP000024` | - | **Document identification is required**<br/>O documento de identificação é obrigatório<br/><small>The document identification is required</small> |
| <a id="PRP000025"></a>`PRP000025` | - | **Document identification back is required**<br/>O documento de identificação de verso é obrigatório<br/><small>The document identification back is required</small> |
| <a id="PRP000026"></a>`PRP000026` | - | **Selfie is required**<br/>A selfie é obrigatória<br/><small>The selfie is required</small> |
| <a id="PRP000027"></a>`PRP000027` | - | **CCB document is required**<br/>Deve ser fornecido exatamente um contrato de {ccb_types}<br/><small>Exactly one contract of {ccb_types} must be provided</small> |
| <a id="PRP000028"></a>`PRP000028` | - | **Failed to download file**<br/>Falha ao baixar o arquivo de {url}<br/><small>Failed to download file from {url}</small> |
| <a id="PRP000029"></a>`PRP000029` | - | **Failed to convert PDF to image**<br/>Falha ao converter PDF para imagem: {error}<br/><small>Failed to convert PDF to image: {error}</small> |
| <a id="PRP000030"></a>`PRP000030` | - | **Empty PDF file**<br/>O arquivo PDF está vazio ou não contém páginas válidas para conversão<br/><small>PDF file appears to be empty or contains no valid pages to convert</small> |
| <a id="PRP000031"></a>`PRP000031` | - | **Invalid document image**<br/>A imagem do documento não pode ser processada: {error}<br/><small>The document image cannot be processed: {error}</small> |
| <a id="PRP000032"></a>`PRP000032` | - | **Invalid document image format**<br/>O documento<br/><small>The document</small> |
| <a id="PRP000033"></a>`PRP000033` | - | **Invalid document image size**<br/>O documento<br/><small>The document</small> |
| <a id="PRP000034"></a>`PRP000034` | - | **Error cancelling credit operation permanently**<br/>Falha ao cancelar permanentemente a operação de crédito: {external_key}<br/><small>Failed to cancel credit operation permanently: {external_key}</small> |
| <a id="PRP000035"></a>`PRP000035` | - | **Reservation not found**<br/>A reserva não foi encontrada<br/><small>The reservation was not found</small> |
| <a id="PRP000037"></a>`PRP000037` | - | **Reservation is not pending auction**<br/>A reserva não está pendente de leilão<br/><small>The reservation is not pending auction</small> |
| <a id="PRP000038"></a>`PRP000038` | - | **Error creating proposal**<br/>Erro ao criar proposta<br/><small>Failed to create proposal</small> |
| <a id="PRP000039"></a>`PRP000039` | - | **Error getting proposal**<br/>Erro ao obter proposta<br/><small>Failed to get proposal</small> |
| <a id="PRP000040"></a>`PRP000040` | - | **Reservation period is not equal to the number of periods**<br/>O período de reserva não é igual ao número de períodos<br/><small>The reservation period is not equal to the number of periods</small> |
| <a id="PRP000041"></a>`PRP000041` | - | **Error getting credit operation by external key**<br/>Falha ao buscar a operação de crédito: {external_key}<br/><small>Failed to get credit operation by external key: {external_key}</small> |
| <a id="PRP000042"></a>`PRP000042` | - | **Service Unavailable**<br/>Serviço indisponível para o serviço do Dataprev<br/><small>Service unavailable for Dataprev service</small> |
| <a id="PRP000043"></a>`PRP000043` | - | **Invalid reason**<br/>Exclusão de reserva falhou<br/><small>Reservation deletion failed</small> |
| <a id="PRP000044"></a>`PRP000044` | - | **Reason not found**<br/>Motivo não encontrado<br/><small>Reason not found</small> |
| <a id="PRP000045"></a>`PRP000045` | - | **Invalid reason**<br/>Inclusão de reserva falhou<br/><small>Reservation inclusion failed</small> |
| <a id="PRP000046"></a>`PRP000046` | - | **Error creating document**<br/>Falha ao criar o documento: {document_name}<br/><small>Failed to create document: {document_name}</small> |
| <a id="PRP000047"></a>`PRP000047` | - | **Error uploading document**<br/>Falha ao enviar o documento: {document_key}<br/><small>Failed to upload document: {document_key}</small> |
| <a id="PRP000048"></a>`PRP000048` | - | **Error updating disbursement date**<br/>Falha ao atualizar a data de desembolso para a operação de crédito: {external_key}<br/><small>Failed to update disbursement date for credit operation: {external_key}</small> |
| <a id="PRP000049"></a>`PRP000049` | - | **Error constituting collateral**<br/>Falha ao constituir a garantia para a operação de crédito: {external_key}<br/><small>Failed to constitute collateral for credit operation: {external_key}</small> |
| <a id="PRP000050"></a>`PRP000050` | - | **Error cancelling credit operation**<br/>Falha ao cancelar a operação de crédito: {external_key}<br/><small>Failed to cancel credit operation: {external_key}</small> |
| <a id="PRP000051"></a>`PRP000051` | - | **Document validation failed**<br/>A validação de documentos falhou<br/><small>Document validation failed</small> |
| <a id="PRP000052"></a>`PRP000052` | - | **Reservation cannot be deleted**<br/>A reserva está em fluxo de suspensão<br/><small>The reservation is in suspension flow</small> |
| <a id="PRP000053"></a>`PRP000053` | - | **Protocol type not found**<br/>O tipo de protocolo não foi encontrado<br/><small>The protocol type was not found</small> |
| <a id="PRP000054"></a>`PRP000054` | - | **Authentication Error**<br/>Falha na autenticação com serviço externo<br/><small>Failed to authenticate with external service</small> |
| <a id="PRP000055"></a>`PRP000055` | - | **Error getting document by name**<br/>Falha ao buscar o documento: {document_name}<br/><small>Failed to get document by name: {document_name}</small> |
| <a id="PRP000056"></a>`PRP000056` | - | **Empty document list**<br/>A lista de documentos está vazia: {document_name}<br/><small>Document list is empty: {document_name}</small> |
| <a id="PRP000057"></a>`PRP000057` | - | **Reservation is not pending requester authorization**<br/>A reserva não está pendente de autorização do requerente<br/><small>The reservation is not pending requester authorization</small> |
| <a id="PRP000058"></a>`PRP000058` | - | **Error creating credit analysis**<br/>Falha ao criar a análise de crédito para o número de documento {document_number}<br/><small>Failed to create credit analysis for document number {document_number}</small> |
| <a id="PRP000059"></a>`PRP000059` | - | **Invalid credit analysis status**<br/>Status de análise de crédito inválido: {analysis_status}<br/><small>Invalid credit analysis status: {analysis_status}</small> |
| <a id="PRP000060"></a>`PRP000060` | - | **Reservation is not pending credit analysis**<br/>A reserva não está pendente de análise de crédito<br/><small>The reservation is not pending credit analysis</small> |
| <a id="PRP000061"></a>`PRP000061` | - | **Requester configuration not found**<br/>A configuração do cliente com a chave {requester_key} não foi encontrada<br/><small>The requester configuration with key {requester_key} was not found</small> |
| <a id="PRP000062"></a>`PRP000062` | - | **Requester configuration already exists**<br/>A configuração do cliente com a chave {requester_key} já existe<br/><small>The requester configuration with key {requester_key} already exists</small> |
| <a id="PRP000063"></a>`PRP000063` | - | **Reservation is not pending documents submission**<br/>A reserva não está pendente de envio de documentos<br/><small>The reservation is not pending documents submission</small> |
| <a id="PRP000064"></a>`PRP000064` | - | **Invalid biometry analysis**<br/>A análise biométrica é inválida<br/><small>The biometry analysis is invalid</small> |
| <a id="PRP000067"></a>`PRP000067` | - | **Invalid status for cancellation**<br/>O status da reserva {status} não é válido para cancelamento<br/><small>The reservation status {status} is not valid for cancellation</small> |
| <a id="PRP000068"></a>`PRP000068` | - | **Reservation is not canceled**<br/>A reserva não está cancelada<br/><small>The reservation is not canceled</small> |
| <a id="PRP000069"></a>`PRP000069` | - | **Wrong status event**<br/>O evento de status da reserva {status} não é válido<br/><small>The reservation status event {status} is not valid</small> |
| <a id="PRP000070"></a>`PRP000070` | - | **Invalid status for reactivation**<br/>O evento de status da reserva {status} não é válido para reativação<br/><small>The reservation status event {status} is not valid for reactivation</small> |
| <a id="PRP000071"></a>`PRP000071` | - | **Error getting credit analysis**<br/>Falha ao obter a análise de crédito para a chave de reserva: {reservation_key}<br/><small>Failed to get credit analysis for reservation key: {reservation_key}</small> |
| <a id="PRP000072"></a>`PRP000072` | - | **Is not allowed to reserve**<br/>A reserva não é permitida para ser reservada<br/><small>The reservation is not allowed to be reserved</small> |
| <a id="PRP000073"></a>`PRP000073` | - | **Invalid status for documents submission**<br/>O status da reserva {status} não é válido para submissão dos documentos<br/><small>The reservation status {status} is not valid for documents submission</small> |
| <a id="PRP000074"></a>`PRP000074` | - | **Invalid status to delete**<br/>O status da reserva não é válido para exclusão<br/><small>The reservation status is not valid for deletion</small> |
| <a id="PRP000075"></a>`PRP000075` | - | **Bad Gateway**<br/>Erro ao incluir contrato legado<br/><small>Failed to include legacy contract</small> |
| <a id="PRP000076"></a>`PRP000076` | - | **Bad Request**<br/>Faltam campos obrigatórios<br/><small>Missing required fields</small> |
| <a id="PRP000077"></a>`PRP000077` | - | **Requester configuration is not active**<br/>A configuração do cliente com a chave {requester_key} não está ativa<br/><small>The requester configuration with key {requester_key} is not active</small> |
| <a id="PRP000078"></a>`PRP000078` | - | **Invalid configuration data**<br/>A configuração do cliente com a chave {requester_key} tem dados de configuração inválidos<br/><small>The requester configuration with key {requester_key} has invalid configuration data</small> |
| <a id="PRP000079"></a>`PRP000079` | - | **Legacy Contract not found**<br/>O contrato legado {contract_number} não foi encontrado<br/><small>The Legacy Contract {contract_number} was not found</small> |
| <a id="PRP000080"></a>`PRP000080` | - | **Bad Gateway**<br/>Erro ao excluir contrato legado<br/><small>Failed to exclude legacy contract</small> |
| <a id="PRP000081"></a>`PRP000081` | - | **Bad Gateway**<br/>Erro ao renegociar contrato legado<br/><small>Failed to renegotiate legacy contract</small> |
| <a id="PRP000082"></a>`PRP000082` | - | **Missing required fields**<br/>Os campos obrigatórios estão ausentes<br/><small>The required fields are missing</small> |
| <a id="PRP000083"></a>`PRP000083` | - | **Invalid legacy contract to refinance**<br/>O contrato legacy {contract_number} não é válido para refinanciamento<br/><small>The legacy contract {contract_number} is not valid to refinance</small> |
| <a id="PRP000084"></a>`PRP000084` | - | **Bad Request**<br/>A taxa de juros do contrato legado {contract_number} precisa ser maior que a do novo contrato: {interest_rate}<br/><small>The interest rate of the legacy contract {contract_number} must be greater than the new contract: {interest_rate}</small> |
| <a id="PRP000085"></a>`PRP000085` | - | **Success Reason not found**<br/>Motivo de sucesso não encontrado<br/><small>Success reason not found</small> |
| <a id="PRP000086"></a>`PRP000086` | - | **Failure Reason not found**<br/>Motivo de falha não encontrado<br/><small>Failure reason not found</small> |
| <a id="PRP000087"></a>`PRP000087` | - | **Outside of Dataprev working hours**<br/>Fora do horário de funcionamento da Dataprev<br/><small>Outside of Dataprev working hours</small> |
| <a id="PRP000088"></a>`PRP000088` | - | **Authorization Term Not Found**<br/>Termo de autorização não foi encontrado<br/><small>The Authorization Term key not found</small> |
| <a id="PRP000089"></a>`PRP000089` | - | **Termination alert found in balance inquiry**<br/>Alerta de terminação de vínculo encontrado em consulta de vínculo existente durante validação<br/><small>Termination alert found in existent balance inquiry during validation</small> |
| <a id="PRP000090"></a>`PRP000090` | - | **Bad Request**<br/>O contrato legado {contract_number} não está ativo<br/><small>The legacy contract {contract_number} is not active</small> |
| <a id="PRP000091"></a>`PRP000091` | - | **Bad Request**<br/>O número do documento do empregador é inválido<br/><small>The employer document number is invalid</small> |
| <a id="PRP000092"></a>`PRP000092` | - | **Invalid legacy contract refinancing reservation amount**<br/>O valor da reserva é maior que o valor total dos períodos dos contratos legacy<br/><small>Reservation amount is greater than the legacy contracts total period amount</small> |
| <a id="PRP000093"></a>`PRP000093` | - | **Failed to get registers**<br/>Falha ao obter registros<br/><small>Failed to get registers</small> |
| <a id="PRP000094"></a>`PRP000094` | - | **Failed to get payments**<br/>Falha ao obter pagamentos<br/><small>Failed to get payments</small> |
| <a id="PRP000095"></a>`PRP000095` | - | **Registers not found**<br/>Registros não encontrados<br/><small>Registers not found</small> |
| <a id="PRP000096"></a>`PRP000096` | - | **Payments not found**<br/>Pagamentos não encontrados<br/><small>Payments not found</small> |
| <a id="PRP000097"></a>`PRP000097` | - | **Already has balance inquiry**<br/>A reserva já tem uma consulta de saldo<br/><small>The reservation already has a balance inquiry</small> |
| <a id="PRP000098"></a>`PRP000098` | - | **Bad Request**<br/>Erro no termo de autorização<br/><small>Error on authorization term</small> |
| <a id="PRP000099"></a>`PRP000099` | - | **Requester Key Is Required**<br/>A chave do solicitante é obrigatória<br/><small>The requester key is required</small> |
| <a id="PRP000100"></a>`PRP000100` | - | **Invalid legacy contract for rollover**<br/>O contrato legacy {contract_number} possui CPF ou CNPJ do empregador diferente<br/><small>The legacy contract {contract_number} has different document number or employer document number</small> |
| <a id="PRP000101"></a>`PRP000101` | - | **Failed to create rollover reservation**<br/>Falha ao criar reserva de tombamento: {error_message or<br/><small>Failed to create rollover reservation: {error_message or</small> |
| <a id="PRP000102"></a>`PRP000102` | - | **Missing parameter**<br/>O parâmetro {parameter} está ausente<br/><small>The parameter {parameter} is missing</small> |
| <a id="PRP000104"></a>`PRP000104` | - | **Failed to generate a valid contract number**<br/>Falha ao criar número de contrato para reserva.<br/><small>Failed to generate a contract number for a reservation</small> |
| <a id="PRP000201"></a>`PRP000201` | - | **Employment Relationship Not Found**<br/>A chave da consulta de vínculos de emprego não é válida<br/><small>The employment relationships inquiry key is not valid</small> |

### RN — Renegociação de Dívidas

35 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="RN0000001"></a>`RN0000001` | 400 | **Bad Request**<br/>O status dessa operação de crédito é invalido para essa requisição. Status: {credit_operation_status}<br/><small>Credit operation status is invalid for this request. Status: {credit_operation_status}</small> |
| <a id="RN0000002"></a>`RN0000002` | 400 | **Bad Request**<br/>O status dessa parcela é invalido para essa requisição.Installment key:{installment_key}<br/><small>Installment status is invalid for this request.Installment key:{installment_key}</small> |
| <a id="RN0000003"></a>`RN0000003` | 404 | **Not Found**<br/>Nenhuma parcela encontrada para as installment keys recebidas.<br/><small>No installment found for received installment keys.</small> |
| <a id="RN0000004"></a>`RN0000004` | 400 | **Bad Request**<br/>O valor do desconto percentual deve ser menor ou igual a 1.<br/><small>The percentage discount amount must be less than or equal to 1.</small> |
| <a id="RN0000005"></a>`RN0000005` | 400 | **Bad Request**<br/>O valor do desconto não pode ser maior do que o valor das parcelas.<br/><small>The discount amount cannot be greater than the the installments values.</small> |
| <a id="RN0000006"></a>`RN0000006` | 400 | **Bad Request**<br/>A mesma installment_key foi informada mais de uma vez.Installment Key:{installment_key}<br/><small>The same installment key was informed more than once.Installment Key:{installment_key}</small> |
| <a id="RN0000007"></a>`RN0000007` | 400 | **Bad Request**<br/>Parcela não possui campo paid_amount. Installment_key:{installment_key}<br/><small>Installment doesn</small> |
| <a id="RN0000008"></a>`RN0000008` | 400 | **Bad Request**<br/>A proposta deve ter um pagamento vinculado a ela.<br/><small>Proposal must have a payment linked to it.</small> |
| <a id="RN0000009"></a>`RN0000009` | 403 | **Forbidden**<br/>O solicitante informado não é o mesmo da operação de crédito.<br/><small>The requester informed is not the same as the credit operation.</small> |
| <a id="RN0000010"></a>`RN0000010` | 404 | **Not Found**<br/>Proposta não encontrada.<br/><small>Proposal not found.</small> |
| <a id="RN0000011"></a>`RN0000011` | 400 | **Bad Request**<br/>Proposta não pode ser cancelada no status atual.Status:{status}<br/><small>Proposal cannot be canceled in current status.Status:{status}</small> |
| <a id="RN0000012"></a>`RN0000012` | 404 | **Not Found**<br/>Operação de credito não encontrada pelo número de contrato enviado.<br/><small>Credit Operation not found for sent contract number.</small> |
| <a id="RN0000013"></a>`RN0000013` | 404 | **Not found**<br/>O mecanismo de pagamento não foi encontrado.<br/><small>The payment engine has not been found.</small> |
| <a id="RN0000014"></a>`RN0000014` | 404 | **Not found**<br/>O perfil de solicitante não foi encontrado.<br/><small>The requester profile has not been found.</small> |
| <a id="RN0000015"></a>`RN0000015` | 400 | **Bad Request**<br/>A data de vencimento da renegociação ou a data de referência não podem estar no passado.<br/><small>Proposal due date or reference date cannot be in past.</small> |
| <a id="RN0000016"></a>`RN0000016` | 404 | **Not found**<br/>A configuração de solicitante não foi encontrada.<br/><small>The requester configuration has not been found.</small> |
| <a id="RN0000017"></a>`RN0000017` | 400 | **Bad Request**<br/>A renegociação não pode ser paga no status atual. Proposal Status: {status}<br/><small>The proposal cannot be paid in current status. Proposal Status: {status}</small> |
| <a id="RN0000018"></a>`RN0000018` | 400 | **Bad Request**<br/>O registro do boleto bancário foi rejeitado.<br/><small>The bank slip registration has been rejected.</small> |
| <a id="RN0000019"></a>`RN0000019` | 409 | **Conflict**<br/>Esse contrato ja está vinculado a outra proposta em andamento.<br/><small>This contract is already linked to another proposal in progress.</small> |
| <a id="RN0000020"></a>`RN0000020` | 400 | **Bad Request**<br/>A requisição de renegociação é inválida devido ao status da operação de crédito.<br/><small>Renegotiation request invalid due to credit operation status.</small> |
| <a id="RN0000021"></a>`RN0000021` | 400 | **Bad Request**<br/>Número de operações é maior que o máximo permitido. Máximo de operações permitidas: {maximum_operations}<br/><small>Number of operations is greater than the maximum allowed. Maximum operations allowed: {maximum_operations}</small> |
| <a id="RN0000022"></a>`RN0000022` | 400 | **Bad Request**<br/>Não é possível realizar uma renegociação em lote com emissores diferentes.<br/><small>It is not possible to carry out a batch renegotiation with different issuers.</small> |
| <a id="RN0000024"></a>`RN0000024` | 404 | **Not Found**<br/>Batch proposal não encontrada.<br/><small>Batch proposal not found.</small> |
| <a id="RN0000025"></a>`RN0000025` | 400 | **Bad Request**<br/>Proposta em lote não pode ser cancelada no status atual.Status:{status}<br/><small>Batch Proposal cannot be canceled in current status.Status:{status}</small> |
| <a id="RN0000026"></a>`RN0000026` | 400 | **Bad Request**<br/>Requester identifier key ja está sendo utilizada para outra proposta em lote.<br/><small>Requester identifier key is already been used for another batch proposal.</small> |
| <a id="RN0000027"></a>`RN0000027` | 400 | **Bad Request**<br/>O valor do desconto não pode ser maior do que o valor de pagamento da renegociação em lote: {payment_amount}.<br/><small>The discount amount cannot be greater than the batch proposal payment amount: {payment_amount}.</small> |
| <a id="RN0000028"></a>`RN0000028` | 400 | **Bad Request**<br/>As parcelas selecionadas para renegociação devem incluir as últimas datas de vencimento.<br/><small>Selected Installments for renegotiation must include the latest due dates.</small> |
| <a id="RN0000029"></a>`RN0000029` | 400 | **Bad Request**<br/>O tipo de amortização para a renegociação com colateral deve ser pagamento de parcelas.<br/><small>Amortization Type of collateral renegotiation must be Installment Payment.</small> |
| <a id="RN0000030"></a>`RN0000030` | 400 | **Bad Request**<br/>O campo de valor de desconto não pode ser informado para a batch proposal e para as operações na mesma requisição.<br/><small>Discount amount field can</small> |
| <a id="RN0000031"></a>`RN0000031` | 400 | **Bad Request**<br/>Valor de pagamento da parcela não pode ser 0. Installment_key: {installment_key}<br/><small>Installment payment amount can</small> |
| <a id="RN0000032"></a>`RN0000032` | 400 | **Bad Request**<br/>O valor do pagamento não pode ser maior que o valor de desembolso.<br/><small>Payment amount cannot be greater than the disbursement amount.</small> |
| <a id="RN0000033"></a>`RN0000033` | 400 | **Bad Request**<br/>O valor do pagamento não é necessário para o tipo de amortização presente.<br/><small>Payment amount is not required for present amount amortization type.</small> |
| <a id="RN0000034"></a>`RN0000034` | 400 | **Bad Request**<br/>Requester identifier key ja está sendo utilizada para outra proposta.<br/><small>Requester identifier key is already been used for another proposal.</small> |
| <a id="RN0000035"></a>`RN0000035` | 400 | **Bad Request**<br/>O valor do desconto é invalido. O valor do desconto deve ser apenas desconto de juros.<br/><small>Invalid discount amount. Discount amount must be only interest discount.</small> |
| <a id="RN0000036"></a>`RN0000036` | 500 | **Internal Server Error**<br/>Número máximo de retentativas é muito grande.<br/><small>Max retries set is too big to be executable.</small> |
| <a id="RN0000037"></a>`RN0000037` | 400 | **Bad Request**<br/>O documento do pagador não corresponde ao documento do empregador para a operação de crédito.<br/><small>The payer document number does not match the employer document for the credit operation.</small> |
| <a id="RN0000038"></a>`RN0000038` | 400 | **Renegotiation Errors**<br/>Uma ou mais operacoes falharam.<br/><small>One or more operations failed.</small> |

### SSC — INSS

91 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="SSC000001"></a>`SSC000001` | 404 | **Contract not Found**<br/>Contrato {contract_number} não encontrado no DataPrev<br/><small>Contract {contract_number} not found in DataPrev</small> |
| <a id="SSC000002"></a>`SSC000002` | 400 | **Contract not Found**<br/>Contrato {contract_number} não está ativo<br/><small>Contract {contract_number} is not active</small> |
| <a id="SSC000003"></a>`SSC000003` | 404 | **Benefits not Found**<br/>A reserva com chave {benefits_key} não foi encontrada.<br/><small>Benefits with key {benefits_key} was not found.</small> |
| <a id="SSC000004"></a>`SSC000004` | 404 | **Reservation not Found**<br/>A reserva com chave {reservation_key} não foi encontrada.<br/><small>Reservation with key {reservation_key} was not found.</small> |
| <a id="SSC000005"></a>`SSC000005` | 404 | **Document not Found**<br/>O documento com chave {document_key} não foi encontrada.<br/><small>Document with key {document_key} was not found.</small> |
| <a id="SSC000006"></a>`SSC000006` | 404 | **Balance not Found**<br/>A consulta de saldo com chave {balance_key} não foi encontrada.<br/><small>Balance with key {balance_key} was not found.</small> |
| <a id="SSC0000069"></a>`SSC0000069` | 404 | **Reservation not Found**<br/>A reserva com ID {reservation_id} não foi encontrada.<br/><small>Reservation with ID {reservation_id} was not found.</small> |
| <a id="SSC000007"></a>`SSC000007` | 403 | **Forbidden**<br/>Não existe uma autorização válida para a pessoa com cpf {document_number}.<br/><small>There is not an active authorization for person {document_number}.</small> |
| <a id="SSC0000071"></a>`SSC0000071` | 409 | **Reservation already locked**<br/>A reserva com a key {reservation_key} já está bloqueada sendo processada.<br/><small>Reservation with key {reservation_key} is already locked being processed.</small> |
| <a id="SSC0000072"></a>`SSC0000072` | 400 | **Refinancing contract cannot be reverted**<br/>Contrato de refinanciamento não pode ser revertido após 7 dias úteis da reserva.<br/><small>Refinancing contract cannot be reverted after 7 working days from reservation.</small> |
| <a id="SSC0000073"></a>`SSC0000073` | 400 | **The number of grace competencies is invalid**<br/>O número da carência de competências está inválido. O intervalo aceito é de 0 a 6<br/><small>The number of grace competencies is invalid. The accepted range is 0 to 6</small> |
| <a id="SSC000008"></a>`SSC000008` | 400 | **Bad Request**<br/>O documento do termo deve ser o mesmo do requisitado.<br/><small>The term</small> |
| <a id="SSC000009"></a>`SSC000009` | 400 | **Bad Request**<br/>CPF {document_number} fornecido não é valido.<br/><small>Given {document_number} document number is invalid.</small> |
| <a id="SSC000010"></a>`SSC000010` | 400 | **Bad Request**<br/>Faltou informar os dados de telefone para contato<br/><small>Contact phone data is missing</small> |
| <a id="SSC000011"></a>`SSC000011` | 400 | **Bad Request**<br/>Faltou informar os dados de email para contato<br/><small>Contact email data is missing</small> |
| <a id="SSC000012"></a>`SSC000012` | 400 | **Bad Request**<br/>O atributo tipo de contato é necessário para o objeto assinante<br/><small>Contact type attribute is required for signer object</small> |
| <a id="SSC000013"></a>`SSC000013` | 400 | **Bad Request**<br/>Não pode proceder com o webhook de um documento não assinado<br/><small>Cannot proceed with webhook from non signed document</small> |
| <a id="SSC000014"></a>`SSC000014` | 409 | **Bad Request**<br/>O termo de assinatura é inelegivel para assinatura<br/><small>Term of signature is ineligible for signing</small> |
| <a id="SSC000015"></a>`SSC000015` | 400 | **Bad Request**<br/>Valores {invalid_types} não são tipos de documentos válidos<br/><small>Values {invalid_types} are not valid document_types</small> |
| <a id="SSC000016"></a>`SSC000016` | 409 | **Reservation not deleted**<br/> |
| <a id="SSC000017"></a>`SSC000017` | 404 | **External key not Found**<br/>A reserva com chave externa {external_key} não foi encontrada.<br/><small>Reservation with external key {external_key} was not found.</small> |
| <a id="SSC000018"></a>`SSC000018` | 409 | **Reservation Status Conflict**<br/>Reservas no status<br/><small>Reservation with status</small> |
| <a id="SSC000020"></a>`SSC000020` | 400 | **Bad Request**<br/>Os períodos devem possuir datas em meses subsequentes.<br/><small>Periods due date must occur in sub sequent months.</small> |
| <a id="SSC000021"></a>`SSC000021` | 400 | **Bad Request**<br/>A reserva precisa ter mais do que 0 períodos.<br/><small>Given reservation must have more than 0 periods.</small> |
| <a id="SSC000022"></a>`SSC000022` | 400 | **Bad Request**<br/>A data de competencia do inicio do desconto precisa ser equivalente a data de competencia atual e a data de competencia do desembolso<br/><small>Accrual date of the discount initiation needs to be equivalent to the current accrual date and the disbursement accrual date</small> |
| <a id="SSC000023"></a>`SSC000023` | 400 | **Bad Request**<br/>O DataPrev está fechado e não pode processar esse pedido.<br/><small>DataPrev is closed and cannot process this request</small> |
| <a id="SSC000024"></a>`SSC000024` | 400 | **Bad Request**<br/>Faltou informar os dados da portabilidade.<br/><small>Portability Data is missing.</small> |
| <a id="SSC000025"></a>`SSC000025` | 400 | **Bad Request**<br/>O assinante do termo precisa ser o beneficiario ou seu representante legal caso existente<br/><small>The signer</small> |
| <a id="SSC000026"></a>`SSC000026` | 400 | **Bad Requests**<br/>Erro inesperado do DataPrev<br/><small>Unexpected error from DataPrev.</small> |
| <a id="SSC000027"></a>`SSC000027` | 429 | **Rate Limit Exceeded**<br/>Limite de requisições do DataPrev excedido.<br/><small>DataPrev rate limit exceeded.</small> |
| <a id="SSC000028"></a>`SSC000028` | 409 | **Conflict**<br/>Consulta de margem com status {status} não pode ser retentado.<br/><small>Balance Request with status {status} cannot be retried.</small> |
| <a id="SSC000029"></a>`SSC000029` | 409 | **Reservation Already Registered**<br/>Reserva com a chave externa {external_key} já está cadastrado para o requester {requester_key}<br/><small>Reservation with external key {external_key} already exists for requester {requester_key}</small> |
| <a id="SSC000030"></a>`SSC000030` | 404 | **Disbursement Option not Found**<br/>Opção de desembolso para {disbursement_date} não foi encontrada.<br/><small>Disbursement option for {disbursement_date} was not found.</small> |
| <a id="SSC000031"></a>`SSC000031` | 409 | **Conflict**<br/>Consulta de benefícios com status {status} não pode ser retentado.<br/><small>Benefits Request with status {status} cannot be retried.</small> |
| <a id="SSC000032"></a>`SSC000032` | 400 | **Bad Request**<br/>Faltou informar os dados de refinanciamento.<br/><small>Refinancing Data is missing.</small> |
| <a id="SSC000033"></a>`SSC000033` | 400 | **Bad Request**<br/>Faltou informar os dados de refinanciamento.<br/><small>Refinancing Data is missing.</small> |
| <a id="SSC000034"></a>`SSC000034` | 400 | **Bad Request**<br/>A(s) Reservas(s) não estão averbada(s) para realizar o refinanciamento.<br/><small>The Reservation(s) must be reserved in order to perform the refinancing.</small> |
| <a id="SSC000035"></a>`SSC000035` | 404 | **Reservation not Found**<br/>A reserva com chave externa {external_key} não foi encontrada.<br/><small>Reservation with external key {external_key} was not found.</small> |
| <a id="SSC000036"></a>`SSC000036` | 400 | **Bad Request**<br/>Tentando refinanciar reserva com titularidade trocada.<br/><small>Trying to refinance</small> |
| <a id="SSC000038"></a>`SSC000038` | 409 | **Discount Status Conflict**<br/>Disconto no status<br/><small>Discount with status</small> |
| <a id="SSC000040"></a>`SSC000040` | 404 | **Valid Balance not old than 15 days not Found**<br/>A consulta de saldo é muito antiga. A consulta mais recente é de {date}.<br/><small>The valid balance enquire is outdated. The most recent balance is from {date}.</small> |
| <a id="SSC000041"></a>`SSC000041` | 400 | **Bad Request**<br/>O benefício {benefit_number} está {translation_dict[reason]}.<br/><small>The benefit number {benefit_number} is {reason}</small> |
| <a id="SSC000042"></a>`SSC000042` | 404 | **Protocol not Found**<br/>Protocolo com chave {external_key} não foi encontrada.<br/><small>Protocol with key {external_key} was not found.</small> |
| <a id="SSC000043"></a>`SSC000043` | 404 | **Protocol not Found**<br/>Protocolo com hash de operação {hash_operation} não foi encontrada.<br/><small>Protocol with hash operation {hash_operation} was not found.</small> |
| <a id="SSC000044"></a>`SSC000044` | 400 | **Ivanlid protocol type**<br/>Protocolo do tipo {protocol_type} não existe.<br/><small>Protocol type {protocol_type} doesn</small> |
| <a id="SSC000045"></a>`SSC000045` | 409 |  |
| <a id="SSC000046"></a>`SSC000046` | 400 | **Bad Request**<br/>O produto INSS está temporariamente indisponível<br/><small>The INSS product is temporarily unavailable</small> |
| <a id="SSC000047"></a>`SSC000047` | 400 |  |
| <a id="SSC000048"></a>`SSC000048` | 500 |  |
| <a id="SSC000050"></a>`SSC000050` | 400 | **Invalid Contract Interest**<br/> |
| <a id="SSC000051"></a>`SSC000051` | 500 | **Internal Error**<br/>Erro ao criar instâncias do redis.<br/><small>Erro while creating redis instances.</small> |
| <a id="SSC000053"></a>`SSC000053` | 400 | **Reservation Cannot Be Suspended**<br/>Status {status}, reserva com status diferente de reservado não pode ser suspensa<br/><small>Status {status}, reservation other than reserved status cannot be suspended</small> |
| <a id="SSC000054"></a>`SSC000054` | 400 | **Document Submission Cannot Be Suspended**<br/>Reserva em processo de envio de documento, tente novamente mais tarde<br/><small>Reservation in document submission process, please try again later</small> |
| <a id="SSC000056"></a>`SSC000056` | 400 | **Reservation can**<br/> |
| <a id="SSC000057"></a>`SSC000057` | 400 | **Reservation can**<br/>Código de sucesso desconhecido: {code} para o endpoint requisitado.<br/><small>Unknown success code: {code} to requested endpoint.</small> |
| <a id="SSC000059"></a>`SSC000059` | 400 | **Reservation amount greater than available total balance**<br/>O valor da parcela: {reservation_amount} é maior que o valor total disponível (valor da parcela do contrato de origem + margem total disponível) : {total_amount_available}. Margem total diponível: {available_total_balance}.<br/><small>The installment face value: {reservation_amount} is greater than the available total balance (origin installment face value + available total balance):{total_amount_available}. Available total balance: {available_total_balance}.</small> |
| <a id="SSC000060"></a>`SSC000060` | 400 | **Invalid document size**<br/>O documento: {document_type} deve ter no mínimo 250x250px e no máximo 5MB.<br/><small>The document: {document_type} should have at least 250x250px and at most 5MB.</small> |
| <a id="SSC000061"></a>`SSC000061` | 400 | **Invalid document format**<br/>O documento: {document_type} deve estar no formato JPEG.<br/><small>The document: {document_type} should be in JPEG format.</small> |
| <a id="SSC000062"></a>`SSC000062` | 400 | **Status does not allow patch**<br/>Reserva {reservation_key} está no status {status_enum}. Portanto não pode ter o campo {field_name} alterado<br/><small>Reservation {reservation_key} is on status {status_enum}. Which does not allow the field {field_name} to be changed</small> |
| <a id="SSC000063"></a>`SSC000063` | 400 | **Broken Document**<br/>O documento: {document_type} está truncado ou corrompido.<br/><small>The document: {document_type} is truncated or broken.</small> |
| <a id="SSC000065"></a>`SSC000065` | 404 | **Balance not Found**<br/>Contrato de origem de portabilidade com chave {origin_contract_key} não foi encontrada.<br/><small>Portability origin contract with key {origin_contract_key} was not found.</small> |
| <a id="SSC000066"></a>`SSC000066` | 409 | **Conflict**<br/>Contrato de Origem de Portabilidade com status {status} não pode ser retentado.<br/><small>Portability Origin Contract Request with status {status} cannot be retried.</small> |
| <a id="SSC000067"></a>`SSC000067` | 409 | **Requester Configuration Already Exists**<br/>Configuração de solicitante já existe.<br/><small>Requester configuration already exists.</small> |
| <a id="SSC000068"></a>`SSC000068` | 400 | **Reservation can**<br/> |
| <a id="SSC000070"></a>`SSC000070` | 404 | **Portability Origin Contract not Found**<br/>Contrato de origem de portabilidade não foi encontrado.<br/><small>Portability Origin Contract was not found.</small> |
| <a id="SSC000074"></a>`SSC000074` | 404 | **Balance not Found**<br/>A consulta de saldo com o cpf {document_number} não foi encontrada.<br/><small>Balance with document number {document_number} was not found.</small> |
| <a id="SSC000075"></a>`SSC000075` | 400 | **Invalid last period due date**<br/>A data de vencimento da última parcela<br/><small>The last period due date</small> |
| <a id="SSC000076"></a>`SSC000076` | 400 | **Success balance request not found**<br/>Uma consulta de saldo válida para o novo número de benefício<br/><small>A success balance request for the new benefit number</small> |
| <a id="SSC000077"></a>`SSC000077` | 404 | **Balance not Found**<br/>A consulta de saldo para o cpf {document_number} com número de benefício {benefit_number} não foi encontrada.<br/><small>Balance for document number {document_number} with benefit number {benefit_number} was not found.</small> |
| <a id="SSC000078"></a>`SSC000078` | 404 | **Invalid Disbursement Date**<br/>A data de desembolso para esta operação está incorreta, ela não está entre a data limite de averbação e a próxima competência.<br/><small>Disbursement date for this operation is incorrect, it is not between the reservation limit and next accrual.</small> |
| <a id="SSC000079"></a>`SSC000079` | 400 | **Invalid Contract Interest Rate**<br/> |
| <a id="SSC000080"></a>`SSC000080` | 429 | **Rate limit exceeded**<br/> |
| <a id="SSC000081"></a>`SSC000081` | 404 | **Requester Configuration Not Found**<br/>Configuração de solicitante<br/><small>Requester configuration</small> |
| <a id="SSC000082"></a>`SSC000082` | 404 | **Bucket Configuration Not Found**<br/>Configuração de balde não encontrada.<br/><small>Bucket configuration not found.</small> |
| <a id="SSC000083"></a>`SSC000083` | 400 | **Reservation Failed**<br/>Última resposta: {cancel_reason}, Fichas disponíveis: {total_tokens}, Próxima Recarga: {next_refill_at}<br/><small>Last Response: {cancel_reason}, Tokens Available: {total_tokens}, Next Refill At: {next_refill_at}</small> |
| <a id="SSC000084"></a>`SSC000084` | 400 | **Bad Request**<br/>A reserva já foi processada e o status mudou para {reservation_status}, Fichas disponíveis: {tokens}<br/><small>The reservation has already been processed and the status has changed to {reservation_status}, Available Tokens: {tokens}</small> |
| <a id="SSC000085"></a>`SSC000085` | 400 | **Bad Request**<br/> |
| <a id="SSC000086"></a>`SSC000086` | 400 | **Bad request**<br/>Número de benefício {benefit_number} é muito longo ou está incorreto.<br/><small>Benefit with number {benefit_number} is too long or incorrect.</small> |
| <a id="SSC000087"></a>`SSC000087` | 400 | **Bad Request**<br/>A data de desembolso {disbursement_date} é muito antiga, atualize-a.<br/><small>Disbursement date {disbursement_date} is too old, update it.</small> |
| <a id="SSC000088"></a>`SSC000088` | 404 | **Reservation not Found**<br/>A reserva com chave de contrato {contract_number} não foi encontrada.<br/><small>Reservation with contract key {contract_number} was not found.</small> |
| <a id="SSC000089"></a>`SSC000089` | 404 | **Period not Found**<br/>O período com competência {competence} não foi encontrado.<br/><small>Period with competence {competence} was not found.</small> |
| <a id="SSC000090"></a>`SSC000090` | 400 | **Operation Canceled Without Installments**<br/>Operação cancelada e sem parcelas.<br/><small>Operation canceled and without installments.</small> |
| <a id="SSC000091"></a>`SSC000091` | 409 | **Refinanced Credit Operation inelegible**<br/>Refinanced Credit Operation {refinanced_co_key} inelegible for refinancing.<br/><small>Operação refinanciada {refinanced_co_key} inelegível para refinaciamento.</small> |
| <a id="SSC000092"></a>`SSC000092` | 400 | **Bad Request**<br/>O benefício {benefit_number} está bloqueado pelo beneficiário. data de bloqueio: {blocked_date}<br/><small>The benefit number {benefit_number} is blocked by the beneficiary. blocked_date: {blocked_date}</small> |
| <a id="SSC000093"></a>`SSC000093` | 400 | **Accrual not Found**<br/>A competência com data {accrual_date} não foi encontrada. O calendário de competência do DATAPREV vai até dezembro do ano atual.<br/><small>Accrual with date {accrual_date} was not found. DATAPREV accrual calendar goes until december of the current year.</small> |
| <a id="SSC000094"></a>`SSC000094` | 400 | **Suspension Reservation Failed**<br/>Suspensão da reserva falhou com código http: {http_code}.<br/><small>Suspension of reservation failed with http code {http_code}.</small> |
| <a id="SSC000095"></a>`SSC000095` | 400 | **Reservation Deleted With Canceled Operation**<br/>Reserva de external key {external_key} está deletada e operação de crédito está cancelada.<br/><small>Reservation with external key {external_key} is deleted and credit operation is canceled.</small> |
| <a id="SSC000096"></a>`SSC000096` | 501 | **Not Implemented**<br/>Não implementado<br/><small>Not implemented</small> |
| <a id="SSC000097"></a>`SSC000097` | 400 | **Deactivated Temporary**<br/>Desativado temporariamente<br/><small>Deactivated temporary</small> |
| <a id="SSC000098"></a>`SSC000098` | 400 | **Wrong reservation amount**<br/>O novo valor da reserva {new_reservation_amount} é diferente do valor da reserva a ser recalculado {reservation_amount_to_recalculate}.<br/><small>New reservation amount {new_reservation_amount} is different from reservation amount to recalculate {reservation_amount_to_recalculate}.</small> |
| <a id="SSC000099"></a>`SSC000099` | 408 | **Gateway Timeout**<br/>O DataPrev nao respondeu a tempo. Tente novamente mais tarde.<br/><small>DataPrev did not respond in time. Please retry later.</small> |

---

# Configurar data de desembolso

URL: /documentation/emissao_de_divida/configurar_data_de_desembolso

## Request

ENDPOINT /debt/ DEBT-KEY /set_disbursement_date
MÉTODO POST

**body.json**

```json
{
    "disbursement_date": "2021-09-01",
    "disbursement_bank_account": {
        "name": "Pedro Felipe Henrique Alves",
        "bank_code": "329",
        "account_digit": "1",
        "branch_number": "001",
        "account_number": "94632180173",
        "document_number": "026.923.850-63"
    }
}

```

:::caution **Atenção!**

 Caso seja optado pela emissão de dívida com múltiplas datas, após a assinatura do contrato a data de desembolso deve ser definida através deste endpoint.

:::

### Path Params

| Campo | tipo | Descrição |
|---|---| ---|
| `debt_key` * | string | Chave da divida devolvida no momento da criação da operação de crédito. |

### Body Params

| Campo | Tipo | Descrição |Caracteres |
|---|---|---|---|
| `disbursement_date` * | date | Data de desembolso da operação. | 10 | 
| `disbursement_bank_account` | object | **[Objeto Disbursement Bank Account](#objeto-disbursement_bank_accounts)** - Dados da conta bancária para desembolso da operação. |  | 

### Objeto Disbursement Bank Account

As informações bancárias para desembolso podem ser alteradas juntamente com a data de desembolso, por padrão, o desembolso é realizado em uma conta de titularidade do devedor.

| Campo                 | Tipo   | Descrição                                                                                          | Máx. Caract. | 
|-----------------------|--------|----------------------------------------------------------------------------------------------------|--------------|
| name                  | string | Nome do titular da conta                                                                           | 50           |
| document_number       | string | CPF do titular da conta                                                                            | 11           |
| bank_code *           | string | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3            |
| branch_number *       | string | Número da agência (não informar o dígito verificador da agência!)                                  | 4            |
| account_number *      | string | Número da conta (sem o dígito verificador da conta!)                                               | 10           |
| account_digit *       | string | Dígito verificador da conta (informar zero no lugar de letras)                                     | 1            |
| account_type          | enum   | [Enumerador Account Type](#enumerador-account-type) Tipo da conta                                  | 1            |

## Response

STATUS 400

**body.json**

```json
{
  "key": "25dd0a85-dbd7-453f-9076-d776a9ef7c3a",
  "event_datetime": "2022-03-29 15:30:20",
  "data": {},
  "webhook_type": "debt",
  "status": "disbursement_date_set"
}

```

STATUS 400

**body.json**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Consulta de dívida

URL: /documentation/emissao_de_divida/consulta_de_divida

## Request

ENDPOINT /debt
MÉTODO GET

## Query Params
| Campo | Tipo | Descrição                                                               | Caracteres |
|---|---|-------------------------------------------------------------------------| ---|
| `key` | string | Chave da divida devolvida no momento da criação da operação de crédito. | - |
| `requester_identifier_key` | string | Chave da UUID4 enviada na criação da dívida.        | - |
| `contract_number` | string | Número da CCB retornado na emissão de dívida.                            | - |
| `issuer_document_number` | string | Número de documento do emitente.                                        | - |
| `issuer_name` | string | Nome do emitente da dívida.                                             | - |
| `status` | string | Status da operação.                                                     | - |
| `page` | string | Página atual que está sendo consultada.                                 | - |
| `page_size` | string | Quantidade de resultados que cabem na página.                           | - |
| `total_due_balance` | boolean | Quando enviado como `true`, inclui o campo `balance_due` (saldo devedor total da operação) na resposta. Por padrão (`false` ou ausente), o `balance_due` **não** é retornado. | - |

:::tip Saldo devedor (`balance_due`)
O campo `balance_due` representa o saldo devedor total da operação e **só é retornado quando a consulta é feita com o parâmetro `total_due_balance=true`**. Sem esse parâmetro, a resposta não traz o saldo devedor.

Exemplo de requisição:

```bash
GET /debt?contract_number=ABC1234&total_due_balance=true
```

Compare os exemplos de resposta abaixo: **"Consulta sem `total_due_balance`"** (sem o campo) e **"Consulta com `total_due_balance=true`"** (com o campo `balance_due`).
:::

:::caution Não combine `total_due_balance` com `key`
O `total_due_balance` só funciona na **consulta por filtros** (sem a `key`). Quando você envia o parâmetro `key`, o endpoint usa a rota de consulta individual por chave, que **ignora** o `total_due_balance` (e os demais filtros) — por isso o `balance_due` não é retornado.

Para obter o `balance_due`, consulte **sem** a `key`, usando os demais filtros. Exemplo:

```bash
GET /debt?total_due_balance=true&contract_number=0369255657%2FMGG&issuer_document_number=05739967929&page_size=10&page=1
```

A resposta vem como uma **lista** (`data: [...]`) e cada item traz o `balance_due`.
:::

## Response

STATUS 200

Response Body: Consulta sem total_due_balance (sem balance_due )

```json
{
  "data": [
    {
      "borrower": {
        "document_number": "68394265057",
        "name": "Xuxa Meneguel"
      },
      "contract_fee_amount": 5.56,
      "installments": [
        {
          "bank_slip_key": null,
          "calendar_days": 57,
          "due_date": "2020-09-30",
          "due_principal": -0.00217819,
          "fine_amount": null,
          "has_interest": true,
          "installment_key": "28eb5907-ed25-4a86-bb9d-b6dc944f13df",
          "installment_number": 1,
          "installment_status": "opened",
          "installment_type": "principal",
          "paid_amount": 0,
          "post_fixed_amount": 0,
          "pre_fixed_amount": 268.75782181,
          "principal_amortization_amount": 1111.9,
          "tax_amount": 0,
          "total_amount": 1380.66,
          "workdays": 40
        }
      ],
      "operation_key": "7986dcc7-4331-478f-af47-adfbdf7f4a36",
      "status": "opened"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 100,
    "total_pages": 1,
    "total_rows": 55
  }
}

```

Response Body: Consulta com total_due_balance=true (com balance_due )

```json
{
  "data": {
    "additional_iof": 11.547136,
    "after_disbursement_actions": [],
    "all_day_disbursement": true,
    "annual_cet": 41.0883,
    "assigned": false,
    "assigned_at": null,
    "assignment_amount": 3038.72,
    "attached_document_list": [
      {
        "created_at": "2022-10-19T11:53:01",
        "document_key": "5df59dca-b8d1-4dca-8358-8b4bd944f3dc",
        "document_type": {
          "enumerator": "document_identification",
          "translation_path": "co.DocumentType.document_identification"
        },
        "document_url": "https://storage.googleapis.com/sandbox-doc-api/documents/5df59dca-b8d1-4dca-8358-8b4bd944f3dc/image_1666180300436.jpg",
        "related_party_key": null,
        "signature_required": false,
        "signature_url": null,
        "signed": false
      }
    ],
    "balance_due": 3150.62,
    "base_iof": 27.17569413,
    "calculus_correction": null,
    "central_depository": null,
    "cet": 2.91,
    "cetip_assignments": [],
    "cetip_settlements": [],
    "collateral_constituted": true,
    "collateral_type": null,
    "collaterals": [],
    "contract_fee_amount": 0,
    "contract_fees": [],
    "contract_number": "TESTE118261",
    "created_at": "2022-10-19T11:53:00",
    "credit_operation_key": "438ceaa3-2906-4ee3-85f9-0dcacd5f2581",
    "credit_operation_status": {
      "enumerator": "opened",
      "translation_path": "co.CreditOperationStatus.opened",
      "translation_ptbr": "Desembolsada"
    },
    "credit_operation_type": {
      "enumerator": "ccb",
      "translation_path": "co.CreditOperationType.ccb"
    },
    "credit_rating": null,
    "creditor_bank_account_key": "5d068423-6094-49e4-b15b-7740038295a8",
    "custodian": {
      "enumerator": "qi_scd",
      "translation_path": "co.Custodian.qi_scd"
    },
    "decimal_annual_cet": 0.43241941956989105,
    "decimal_cet": 0.0304,
    "disburse_before_assign": true,
    "disbursed_at": "2022-10-19T11:54:47",
    "disbursed_issue_amount": 3000,
    "disbursement_account": [
      {
        "account_branch": "1234",
        "account_digit": "1",
        "account_number": "2345678601",
        "account_type": "checking_account",
        "amount_receivable": null,
        "created_at": "2022-10-19T11:53:01",
        "digitable_line": null,
        "disbursement_type": "pix",
        "document_number": "92147661180",
        "financial_institutions": {
          "code_number": 104,
          "is_active": true,
          "is_pix_participant": true,
          "ispb": "00360305",
          "name": "CAIXA ECONOMICA FEDERAL"
        },
        "financial_institutions_code_number": 104,
        "is_pix_disbursement": true,
        "ispb": "00360305",
        "name": "104 CAIXA ECONOMICA FEDERAL",
        "percentage_receivable": 100,
        "pix_key": null,
        "pix_transfer_key": "da80477f-412e-40a5-81b0-c830b238081e",
        "pix_type": "manual",
        "qr_code_key": null,
        "retry_counter": 0,
        "retry_vector": null,
        "transaction_key": null,
        "webhook_key": null
      }
    ],
    "disbursement_callback": {
      "installments": [
        {
          "bank_slip_key": "9d8c566a-c865-495e-8764-db8351e7ac41",
          "digitable_line": "32990001031000699925348000000207991730000055231",
          "due_date": "2022-11-18",
          "qr_code_key": "bdd41d56-8588-4468-9705-5233994cdc39",
          "qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/bdd41d56-8588-4468-9705-5233994cdc395204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***63044F44"
        }
      ],
      "key": "438ceaa3-2906-4ee3-85f9-0dcacd5f2581",
      "origin_type": "lego-api",
      "status": "opened",
      "transaction_receipts": [
        {
          "amount": 3000,
          "description": "00360305 1234 2345678601-1 92147661180 - 104 CAIXA ECONOMICA FEDERAL",
          "destination": {
            "account_digit": "1",
            "account_number": "2345678601",
            "bank_ispb": "00360305",
            "branch": "1234",
            "branch_digit": null,
            "document": "92147661180",
            "name": "104 CAIXA ECONOMICA FEDERAL",
            "purpose": "Crédito PIX em Conta",
            "type": "checking_account"
          },
          "fee": 0,
          "origin": {
            "account_branch": "0001",
            "account_digit": "5",
            "account_key": "5d068423-6094-49e4-b15b-7740038295a8",
            "account_number": "00002",
            "bank_code": "329",
            "branch": "0001",
            "branch_digit": null,
            "document": "32402502000135",
            "name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
            "type": "payment_account"
          },
          "origin_transaction_key": null,
          "timestamp": "2022-10-19T11:55:03",
          "transaction_key": "da80477f-412e-40a5-81b0-c830b238081e"
        }
      ]
    },
    "disbursement_confirmed_at": "2022-10-20T13:00:56",
    "disbursement_date": "2022-10-19",
    "disbursement_end_date": "2022-10-19",
    "disbursement_inelegibility_reason": null,
    "disbursement_inelegibility_reason_issued": null,
    "disbursement_options": [
      {
        "additional_iof": 11.547136,
        "annual_cet": 41.0883,
        "assignment_amount": 3038.72,
        "base_iof": 27.17569413,
        "calculus_correction": null,
        "cet": 2.91,
        "contract_fee_amount": 0,
        "contract_fees": [],
        "created_at": "2022-10-19T11:53:01",
        "disbursed_issue_amount": 3000,
        "disbursement_date": "2022-10-19",
        "external_contract_fee_amount": 0,
        "external_contract_fees": [],
        "first_due_date": "2022-11-18",
        "installments": [
          {
            "additional_costs": [],
            "business_due_date": "2022-11-21",
            "calendar_days": 30,
            "created_at": "2022-10-19T11:53:01",
            "due_date": "2022-11-18",
            "due_interest": 0,
            "due_principal": 3038.72,
            "fine_amount": null,
            "has_interest": true,
            "installment_number": 1,
            "post_fixed_amount": 0,
            "pre_fixed_amount": 75.66402982,
            "principal_amortization_amount": 476.64597018,
            "tax_amount": 1.17254909,
            "total_amount": 552.31,
            "workdays": 20
          }
        ],
        "interest_subsidy_amount": 0,
        "issue_amount": 3038.72,
        "net_external_contract_fee_amount": 0,
        "prefixed_interest_rate": null,
        "share_quantity": 4,
        "total_iof": 38.72
      }
    ],
    "disbursement_start_date": "2022-10-19",
    "document_certifier": {
      "enumerator": "electronic_client_side",
      "translation_path": "co.DocumentCertifier.electronic_client_side"
    },
    "early_settlement_configuration": {
      "created_at": "2022-10-19T11:53:00",
      "early_settlement_configuration_type": {
        "enumerator": "fixed_rate",
        "translation_path": "co.EarlySettlementConfigurationType.fixed_rate"
      },
      "effective_end_date": null,
      "fixed_interest_rate": 0
    },
    "endorsement": null,
    "entry": null,
    "events": [],
    "external_contract_fee_amount": 0,
    "external_contract_fees": [],
    "extra_fields": null,
    "facial_biometrics_enabled": false,
    "final_disbursement_amount": 3000,
    "financial_index": null,
    "fine_configuration": {
      "contract_fine_rate": 0.02,
      "created_at": "2022-10-19T11:53:00",
      "fine_delay_rate": {
        "annual_rate": 0.12682503,
        "created_at": "2022-10-19T11:53:00",
        "daily_rate": 0.00033173,
        "interest_base": {
          "enumerator": "calendar_days",
          "translation_path": "co.InterestBase.calendar_days",
          "year_days": 360
        },
        "monthly_rate": 0.01
      }
    },
    "first_due_date": "2022-11-18",
    "first_due_date_delay": null,
    "if_code": null,
    "installments": [
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": "9d8c566a-c865-495e-8764-db8351e7ac41",
        "business_due_date": "2022-11-21",
        "calendar_days": 30,
        "cetip_settlements": [],
        "created_at": "2022-10-19T11:53:00",
        "digitable_line": "32990001031000699925348000000207991730000055231",
        "due_date": "2022-11-18",
        "due_interest": 0,
        "due_principal": 3038.72,
        "events": [
          {
            "amount": null,
            "created_at": "2022-10-19T11:54:47",
            "event_date": "2022-10-19T11:54:47",
            "installment_event_type": {
              "enumerator": "open",
              "translation_path": "co.InstallmentEventType.open"
            },
            "installment_old_status": {
              "enumerator": "created",
              "translation_path": "co.InstallmentStatus.created"
            },
            "old_due_date": null
          },
          {
            "amount": null,
            "created_at": "2022-11-18T08:00:10",
            "event_date": "2022-11-18T08:00:10",
            "installment_event_type": {
              "enumerator": "maturity",
              "translation_path": "co.InstallmentEventType.maturity"
            },
            "installment_old_status": {
              "enumerator": "opened",
              "translation_path": "co.InstallmentStatus.opened"
            },
            "old_due_date": null
          },
          {
            "amount": 11.76,
            "created_at": "2022-11-22T08:00:14",
            "event_date": "2022-11-22T08:00:14",
            "installment_event_type": {
              "enumerator": "delay_fine",
              "translation_path": "co.InstallmentEventType.delay_fine"
            },
            "installment_old_status": {
              "enumerator": "waiting_payment",
              "translation_path": "co.InstallmentStatus.waiting_payment"
            },
            "old_due_date": null
          },
          {
            "amount": 11.94,
            "created_at": "2022-11-23T09:13:46",
            "event_date": "2022-11-23T09:13:46",
            "installment_event_type": {
              "enumerator": "delay_fine",
              "translation_path": "co.InstallmentEventType.delay_fine"
            },
            "installment_old_status": {
              "enumerator": "overdue",
              "translation_path": "co.InstallmentStatus.overdue"
            },
            "old_due_date": null
          },
          {
            "amount": 12.12,
            "created_at": "2022-11-24T09:15:55",
            "event_date": "2022-11-24T09:15:55",
            "installment_event_type": {
              "enumerator": "delay_fine",
              "translation_path": "co.InstallmentEventType.delay_fine"
            },
            "installment_old_status": {
              "enumerator": "overdue",
              "translation_path": "co.InstallmentStatus.overdue"
            },
            "old_due_date": null
          },
          {
            "amount": 12.3,
            "created_at": "2022-11-25T09:24:45",
            "event_date": "2022-11-25T09:24:44",
            "installment_event_type": {
              "enumerator": "delay_fine",
              "translation_path": "co.InstallmentEventType.delay_fine"
            },
            "installment_old_status": {
              "enumerator": "overdue",
              "translation_path": "co.InstallmentStatus.overdue"
            },
            "old_due_date": null
          },
          {
            "amount": 12.84,
            "created_at": "2022-11-28T09:37:41",
            "event_date": "2022-11-28T09:37:41",
            "installment_event_type": {
              "enumerator": "delay_fine",
              "translation_path": "co.InstallmentEventType.delay_fine"
            },
            "installment_old_status": {
              "enumerator": "overdue",
              "translation_path": "co.InstallmentStatus.overdue"
            },
            "old_due_date": null
          },
          {
            "amount": 13.02,
            "created_at": "2022-11-29T09:17:44",
            "event_date": "2022-11-29T09:17:44",
            "installment_event_type": {
              "enumerator": "delay_fine",
              "translation_path": "co.InstallmentEventType.delay_fine"
            },
            "installment_old_status": {
              "enumerator": "overdue",
              "translation_path": "co.InstallmentStatus.overdue"
            },
            "old_due_date": null
          }
        ],
        "fine_amount": 13.02,
        "has_interest": true,
        "installment_key": "1d76836e-1fcc-4b67-8c01-64faa43de9c8",
        "installment_number": 1,
        "installment_payment": [],
        "installment_status": {
          "enumerator": "overdue",
          "translation_path": "co.InstallmentStatus.overdue"
        },
        "installment_type": {
          "enumerator": "principal",
          "translation_path": "co.InstallmentType.principal"
        },
        "original_due_principal": 3038.72,
        "original_pre_fixed_amount": 75.66402982,
        "original_principal_amortization_amount": 476.64597018,
        "original_total_amount": 552.31,
        "paid_amount": 0,
        "paid_at": null,
        "payment_type": {
          "enumerator": "bankslip",
          "translation_path": "co.PaymentType.bankslip"
        },
        "post_fixed_amount": 0,
        "pre_fixed_amount": 75.66402982,
        "principal_amortization_amount": 476.64597018,
        "qr_code_key": "bdd41d56-8588-4468-9705-5233994cdc39",
        "qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/bdd41d56-8588-4468-9705-5233994cdc395204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***63044F44",
        "renegotiation_proposal_key": null,
        "tax_amount": 1.17254909,
        "total_accrual_amount": null,
        "total_amount": 565.33,
        "total_paid_amount": 0,
        "updated_at": "2022-11-29T09:17:44",
        "workdays": 20
      },
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": "527835e4-7b09-42f2-a7d0-befed3a326fd",
        "business_due_date": "2022-12-20",
        "calendar_days": 31,
        "cetip_settlements": [],
        "created_at": "2022-10-19T11:53:00",
        "digitable_line": "32990001031000699925349000000205492040000055231",
        "due_date": "2022-12-19",
        "due_interest": 0,
        "due_principal": 2562.07402982,
        "events": [
          {
            "amount": null,
            "created_at": "2022-10-19T11:54:47",
            "event_date": "2022-10-19T11:54:47",
            "installment_event_type": {
              "enumerator": "open",
              "translation_path": "co.InstallmentEventType.open"
            },
            "installment_old_status": {
              "enumerator": "created",
              "translation_path": "co.InstallmentStatus.created"
            },
            "old_due_date": null
          }
        ],
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "dde36938-8594-4507-a87d-cd2dd5309817",
        "installment_number": 2,
        "installment_payment": [],
        "installment_status": {
          "enumerator": "opened",
          "translation_path": "co.InstallmentStatus.opened"
        },
        "installment_type": {
          "enumerator": "principal",
          "translation_path": "co.InstallmentType.principal"
        },
        "original_due_principal": 2562.07402982,
        "original_pre_fixed_amount": 65.94922003,
        "original_principal_amortization_amount": 486.36077997,
        "original_total_amount": 552.31,
        "paid_amount": 0,
        "paid_at": null,
        "payment_type": {
          "enumerator": "bankslip",
          "translation_path": "co.PaymentType.bankslip"
        },
        "post_fixed_amount": 0,
        "pre_fixed_amount": 65.94922003,
        "principal_amortization_amount": 486.36077997,
        "qr_code_key": "9d2980e9-fa0c-4b21-a7c5-5ca266c9aba8",
        "qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/9d2980e9-fa0c-4b21-a7c5-5ca266c9aba85204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***6304FBC3",
        "renegotiation_proposal_key": null,
        "tax_amount": 2.43277662,
        "total_accrual_amount": null,
        "total_amount": 552.31,
        "total_paid_amount": 0,
        "updated_at": "2022-10-19T11:56:43",
        "workdays": 21
      },
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": "d69c9ab6-01f1-40bb-9519-a06ee2230c22",
        "business_due_date": "2023-01-19",
        "calendar_days": 30,
        "cetip_settlements": [],
        "created_at": "2022-10-19T11:53:00",
        "digitable_line": "32990001031000699925350000000203192340000055231",
        "due_date": "2023-01-18",
        "due_interest": 0,
        "due_principal": 2075.71324985,
        "events": [
          {
            "amount": null,
            "created_at": "2022-10-19T11:54:47",
            "event_date": "2022-10-19T11:54:47",
            "installment_event_type": {
              "enumerator": "open",
              "translation_path": "co.InstallmentEventType.open"
            },
            "installment_old_status": {
              "enumerator": "created",
              "translation_path": "co.InstallmentStatus.created"
            },
            "old_due_date": null
          }
        ],
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "93273ee0-71bd-46a6-b5e2-39e03a365b16",
        "installment_number": 3,
        "installment_payment": [],
        "installment_status": {
          "enumerator": "opened",
          "translation_path": "co.InstallmentStatus.opened"
        },
        "installment_type": {
          "enumerator": "principal",
          "translation_path": "co.InstallmentType.principal"
        },
        "original_due_principal": 2075.71324985,
        "original_pre_fixed_amount": 51.68519286,
        "original_principal_amortization_amount": 500.62480714,
        "original_total_amount": 552.31,
        "paid_amount": 0,
        "paid_at": null,
        "payment_type": {
          "enumerator": "bankslip",
          "translation_path": "co.PaymentType.bankslip"
        },
        "post_fixed_amount": 0,
        "pre_fixed_amount": 51.68519286,
        "principal_amortization_amount": 500.62480714,
        "qr_code_key": "d79eb27b-7a1e-4d4c-94a1-f20045c4904e",
        "qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/d79eb27b-7a1e-4d4c-94a1-f20045c4904e5204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***6304E949",
        "renegotiation_proposal_key": null,
        "tax_amount": 3.73566231,
        "total_accrual_amount": null,
        "total_amount": 552.31,
        "total_paid_amount": 0,
        "updated_at": "2022-10-19T11:56:43",
        "workdays": 22
      },
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": "5c62c50f-5326-4226-b154-a0cc6d2f62e7",
        "business_due_date": "2023-02-23",
        "calendar_days": 35,
        "cetip_settlements": [],
        "created_at": "2022-10-19T11:53:00",
        "digitable_line": "32990001031000699925351000000201192690000055231",
        "due_date": "2023-02-22",
        "due_interest": 0,
        "due_principal": 1575.08844271,
        "events": [
          {
            "amount": null,
            "created_at": "2022-10-19T11:54:47",
            "event_date": "2022-10-19T11:54:47",
            "installment_event_type": {
              "enumerator": "open",
              "translation_path": "co.InstallmentEventType.open"
            },
            "installment_old_status": {
              "enumerator": "created",
              "translation_path": "co.InstallmentStatus.created"
            },
            "old_due_date": null
          }
        ],
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "1f7b16fe-04b6-4f07-a807-eb3501e44e0d",
        "installment_number": 4,
        "installment_payment": [],
        "installment_status": {
          "enumerator": "opened",
          "translation_path": "co.InstallmentStatus.opened"
        },
        "installment_type": {
          "enumerator": "principal",
          "translation_path": "co.InstallmentType.principal"
        },
        "original_due_principal": 1575.08844271,
        "original_pre_fixed_amount": 45.8505547,
        "original_principal_amortization_amount": 506.4594453,
        "original_total_amount": 552.31,
        "paid_amount": 0,
        "paid_at": null,
        "payment_type": {
          "enumerator": "bankslip",
          "translation_path": "co.PaymentType.bankslip"
        },
        "post_fixed_amount": 0,
        "pre_fixed_amount": 45.8505547,
        "principal_amortization_amount": 506.4594453,
        "qr_code_key": "b55464c8-3764-4ee2-a814-ce22396aabe7",
        "qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/b55464c8-3764-4ee2-a814-ce22396aabe75204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***63044215",
        "renegotiation_proposal_key": null,
        "tax_amount": 5.23273899,
        "total_accrual_amount": null,
        "total_amount": 552.31,
        "total_paid_amount": 0,
        "updated_at": "2022-10-19T11:56:43",
        "workdays": 23
      },
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": "256be15f-dcc6-4775-8298-c3efde5a1147",
        "business_due_date": "2023-03-21",
        "calendar_days": 26,
        "cetip_settlements": [],
        "created_at": "2022-10-19T11:53:00",
        "digitable_line": "32990001031000699925352000000209192950000055231",
        "due_date": "2023-03-20",
        "due_interest": 0,
        "due_principal": 1068.62899741,
        "events": [
          {
            "amount": null,
            "created_at": "2022-10-19T11:54:47",
            "event_date": "2022-10-19T11:54:47",
            "installment_event_type": {
              "enumerator": "open",
              "translation_path": "co.InstallmentEventType.open"
            },
            "installment_old_status": {
              "enumerator": "created",
              "translation_path": "co.InstallmentStatus.created"
            },
            "old_due_date": null
          }
        ],
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "3ed37dc1-61f8-44f1-af21-a55f0cf0795d",
        "installment_number": 5,
        "installment_payment": [],
        "installment_status": {
          "enumerator": "opened",
          "translation_path": "co.InstallmentStatus.opened"
        },
        "installment_type": {
          "enumerator": "principal",
          "translation_path": "co.InstallmentType.principal"
        },
        "original_due_principal": 1068.62899741,
        "original_pre_fixed_amount": 23.02305805,
        "original_principal_amortization_amount": 529.28694195,
        "original_total_amount": 552.31,
        "paid_amount": 0,
        "paid_at": null,
        "payment_type": {
          "enumerator": "bankslip",
          "translation_path": "co.PaymentType.bankslip"
        },
        "post_fixed_amount": 0,
        "pre_fixed_amount": 23.02305805,
        "principal_amortization_amount": 529.28694195,
        "qr_code_key": "64e05528-83fb-432a-8af7-491ca4eb7b90",
        "qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/64e05528-83fb-432a-8af7-491ca4eb7b905204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***630472F7",
        "renegotiation_proposal_key": null,
        "tax_amount": 6.59703244,
        "total_accrual_amount": null,
        "total_amount": 552.31,
        "total_paid_amount": 0,
        "updated_at": "2022-10-19T11:56:43",
        "workdays": 18
      },
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": "a8c2edaa-ed3d-4c5b-808e-b26947a5e79e",
        "business_due_date": "2023-04-19",
        "calendar_days": 29,
        "cetip_settlements": [],
        "created_at": "2022-10-19T11:53:01",
        "digitable_line": "32990001031000699925353000000207293240000055232",
        "due_date": "2023-04-18",
        "due_interest": 0,
        "due_principal": 539.34205545,
        "events": [
          {
            "amount": null,
            "created_at": "2022-10-19T11:54:47",
            "event_date": "2022-10-19T11:54:47",
            "installment_event_type": {
              "enumerator": "open",
              "translation_path": "co.InstallmentEventType.open"
            },
            "installment_old_status": {
              "enumerator": "created",
              "translation_path": "co.InstallmentStatus.created"
            },
            "old_due_date": null
          }
        ],
        "fine_amount": null,
        "has_interest": true,
        "installment_key": "2b58b2be-89cd-4710-a6a5-81180938b501",
        "installment_number": 6,
        "installment_payment": [],
        "installment_status": {
          "enumerator": "opened",
          "translation_path": "co.InstallmentStatus.opened"
        },
        "installment_type": {
          "enumerator": "principal",
          "translation_path": "co.InstallmentType.principal"
        },
        "original_due_principal": 539.34205545,
        "original_pre_fixed_amount": 12.97660456,
        "original_principal_amortization_amount": 539.34339544,
        "original_total_amount": 552.32,
        "paid_amount": 0,
        "paid_at": null,
        "payment_type": {
          "enumerator": "bankslip",
          "translation_path": "co.PaymentType.bankslip"
        },
        "post_fixed_amount": 0,
        "pre_fixed_amount": 12.97660456,
        "principal_amortization_amount": 539.34339544,
        "qr_code_key": "dcc7d257-e6a1-4d0a-88f7-1acf662482b5",
        "qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/dcc7d257-e6a1-4d0a-88f7-1acf662482b55204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***6304C9A1",
        "renegotiation_proposal_key": null,
        "tax_amount": 8.00493468,
        "total_accrual_amount": null,
        "total_amount": 552.32,
        "total_paid_amount": 0,
        "updated_at": "2022-10-19T11:56:43",
        "workdays": 20
      }
    ],
    "interest_grace_period": 0,
    "interest_payment_month_period": 1,
    "interest_subsidy_amount": 0,
    "interest_subsidy_percentage": 0,
    "interest_type": {
      "enumerator": "pre_price_days",
      "translation_path": "co.InterestType.pre_price_days"
    },
    "iof_charge_method": "financed",
    "ipoc_code": "324025020203192147661180DiDi118261",
    "is_allowed_to_disburse": true,
    "is_portability": false,
    "is_refinancing": 0,
    "isin_number": null,
    "issue_amount": 3038.72,
    "issue_date": "2022-10-19",
    "issuer_document_number": "92147661180",
    "issuer_name": "Wxy  Wsx",
    "kyc": null,
    "modality": {
      "code": "0203",
      "description": "crédito pessoal - sem consignação em folha de pagam.",
      "enumerator": null,
      "visible": true
    },
    "net_external_contract_fee_amount": 0,
    "next_due_date": "2022-12-19",
    "number_of_installments": 6,
    "operation_extra_fields": null,
    "operation_type": {
      "enumerator": "structured_operation",
      "translation_path": "co.OperationType.structured_operation"
    },
    "origin_key": "438ceaa3-2906-4ee3-85f9-0dcacd5f2581",
    "origin_type": {
      "enumerator": "lego-api",
      "translation_path": "co.OriginType.lego-api"
    },
    "original_prefixed_interest_rate": {
      "annual_rate": 0.34331516,
      "created_at": "2022-10-19T11:53:00",
      "daily_rate": 0.00082017,
      "interest_base": {
        "enumerator": "calendar_days",
        "translation_path": "co.InterestBase.calendar_days",
        "year_days": 360
      },
      "monthly_rate": 0.0249
    },
    "original_total_iof": 38.72,
    "payment_and_settlement_agent": {
      "enumerator": "qi_scd",
      "translation_path": "co.PaymentAndSettlementAgent.qi_scd"
    },
    "payment_type": {
      "enumerator": "bankslip",
      "translation_path": "co.PaymentType.bankslip"
    },
    "payroll_data": null,
    "portability_amount": null,
    "portability_financial_institution_code_number": null,
    "portability_original_contract": null,
    "post_fixed_interest_base": {
      "enumerator": "workdays",
      "translation_path": "co.InterestBase.workdays",
      "year_days": 252
    },
    "post_fixed_interest_rate": null,
    "prefixed_interest_rate": {
      "annual_rate": 0.34331516,
      "created_at": "2022-10-19T11:53:00",
      "daily_rate": 0.00082017,
      "interest_base": {
        "enumerator": "calendar_days",
        "translation_path": "co.InterestBase.calendar_days",
        "year_days": 360
      },
      "monthly_rate": 0.0249
    },
    "principal_amortization_month_period": 1,
    "principal_grace_period": 0,
    "purchaser_document_number": "32402502000135",
    "rebate_account": null,
    "refinanced_credit_operations": [],
    "registration_institution": {
      "enumerator": "qi_scd",
      "translation_path": "co.RegistrationInstitution.qi_scd"
    },
    "related_party_list": [
      {
        "address": {
          "city": "Aguascalientes",
          "complement": null,
          "created_at": "2022-10-19T11:52:59",
          "neighborhood": "Aguascalientes",
          "number": "1",
          "postal_code": "20000000",
          "state": "SP",
          "street": "Zona Centro"
        },
        "attached_document_list": [
          {
            "created_at": "2022-10-19T11:53:01",
            "document_key": "5df59dca-b8d1-4dca-8358-8b4bd944f3dc",
            "document_type": {
              "enumerator": "document_identification",
              "translation_path": "co.DocumentType.document_identification"
            },
            "document_url": "https://storage.googleapis.com/sandbox-doc-api/documents/5df59dca-b8d1-4dca-8358-8b4bd944f3dc/image_1666180300436.jpg",
            "related_party_key": null,
            "signature_required": false,
            "signature_url": null,
            "signed": false
          }
        ],
        "birth_date": "1997-10-19",
        "birth_place": null,
        "cnae_code": null,
        "company_document_number": null,
        "created_at": "2022-10-19T11:53:01",
        "document_identification_date": null,
        "document_identification_number": "",
        "document_identification_type": null,
        "email": "wxr@ff.com",
        "foundation_date": null,
        "gender": null,
        "income": 0.01,
        "individual_document_number": "92147661180",
        "is_pep": false,
        "marital_status": {
          "enumerator": "single",
          "translation_path": "co.MaritalStatus.single"
        },
        "mother_name": null,
        "name": "Wxy  Wsx",
        "nationality": "nationality",
        "person_type": "natural",
        "phone": {
          "area_code": "00",
          "country_code": "055",
          "created_at": "2022-10-19T11:53:00",
          "number": "016048311",
          "phone_key": "341d7c67-963c-49a5-b585-265425d71f52",
          "phone_type": null
        },
        "profession": null,
        "property_system": null,
        "related_party_key": "203b2ada-ff3e-44a6-a843-f244aa1afbc9",
        "revenue": null,
        "role_type": {
          "enumerator": "issuer",
          "translation_path": "co.RoleType.issuer"
        },
        "simples_nacional_participant": null,
        "spouse_document_number": null,
        "trading_name": null
      }
    ],
    "requester_identifier_key": "89bb875a4a654ecfbad0c6ce0b3b5037",
    "requester_key": "75f2ab85-a5ce-40b9-9b1e-915175906d78",
    "requester_name": "DiDi Global (99Pay)",
    "resource_source_account": {
      "enumerator": "third_party",
      "translation_path": "co.ResourceSourceAccount.third_party"
    },
    "selfie_enabled": false,
    "settlement_bank_account_key": null,
    "share_quantity": 4,
    "signature_method": {
      "enumerator": "email"
    },
    "tax_configuration": {
      "created_at": "2019-03-15T13:09:32",
      "iof_additional_rate": 0.0038,
      "iof_rate": 0.000082
    },
    "tax_exempt_amount": null,
    "third_party_account_key": "5d068423-6094-49e4-b15b-7740038295a8",
    "total_iof": 38.72
  },
  "operation_key": "438ceaa3-2906-4ee3-85f9-0dcacd5f2581",
  "status": "opened",
  "webhook_type": "signed_debt"
}

```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

## Query Params
| Campo | Tipo | Descrição                                                               | Caracteres |
|---|---|-------------------------------------------------------------------------| ---|
| `key` | string | Chave da divida devolvida no momento da criação da operação de crédito. | - |
| `requester_identifier_key` | string | Chave da UUID4 enviada na criação da dívida.        | - |
| `contract_number` | string | Número da CCB retornado na emissão de dívida.                            | - |
| `issuer_document_number` | string | Número de documento do emitente.                                        | - |
| `issuer_name` | string | Nome do emitente da dívida.                                             | - |
| `status` | string | Status da operação.                                                     | - |
| `page` | string | Página atual que está sendo consultada.                                 | - |
| `page_size` | string | Quantidade de resultados que cabem na página.                           | - |
| `total_due_balance` | boolean | Quando enviado como `true`, inclui o campo `balance_due` (saldo devedor total da operação) na resposta. Por padrão, o `balance_due` **não** é retornado. | - |

---

# Consulta de dívida por Contract Number

URL: /documentation/emissao_de_divida/consulta_por_contract_number

## Request

ENDPOINT /v2/credit_operation/contract_number/ CONTRACT-NUMBER
MÉTODO GET

## ⚠️ Observação Importante

Caso o número do contrato contenha uma barra (`/`), é necessário **encodar a barra** para `%2F`.

### Exemplo prático
**Entrada original:**
```
contract_number = 02159312/FGP
```

**Deve ser enviada como:**
```
02159312%2FFGP
```

### Exemplo em Python para encodar:
```python
import urllib.parse

contract_number = "02159312/FGP"
encoded_contract_number = urllib.parse.quote(contract_number)
print(encoded_contract_number)  # 02159312%2FFGP
```

:::

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `contract_number` * | string | Número do contrato de crédito. | string |

## Response

STATUS 200

Response Body

```json
{
  "credit_operation_key": "eaf5836a-ea6f-4baa-ac26-ce5199dfa448",
  "issue_amount": 1006.77,
  "origin_key": "52539e23-5c01-4b9c-8a68-6ed750ec7bc5",
  "assigned_at": "2025-08-24T10:00:00Z",
  "total_iof": 6.77,
  "disbursement_start_date": "2022-08-24",
  "disbursement_end_date": "2022-08-24",
  "issue_date": "2022-08-24",
  "requester_identifier_key": "5cb7456c-f2e3-41b3-b17a-ad47ba3c3cda",
  "installments": [
    {
      "business_due_date": "2022-08-30",
      "due_date": "2022-08-29",
      "calendar_days": 5,
      "due_interest": 0,
      "due_principal": 1006.77,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 18.93,
      "principal_amortization_amount": 363.14,
      "tax_amount": 0.15,
      "total_amount": 382.07,
      "workdays": 3,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "b56f61ec-202c-4a7a-8a5e-11f90972bae8",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 1006.77,
      "original_pre_fixed_amount": 18.93,
      "original_principal_amortization_amount": 363.14,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 1,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0
    },
    {
      "business_due_date": "2022-09-30",
      "due_date": "2022-09-29",
      "calendar_days": 31,
      "due_interest": 0,
      "due_principal": 643.63499424,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 78.82,
      "principal_amortization_amount": 303.25,
      "tax_amount": 0.9,
      "total_amount": 382.07,
      "workdays": 22,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "2a95a560-bec6-4207-9a38-98c72e023c59",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 643.63,
      "original_pre_fixed_amount": 78.82,
      "original_principal_amortization_amount": 303.25,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 2,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0
    },
    {
      "business_due_date": "2022-11-01",
      "due_date": "2022-10-31",
      "calendar_days": 32,
      "due_interest": 0,
      "due_principal": 340.38585509,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 41.68,
      "principal_amortization_amount": 340.39,
      "tax_amount": 1.9,
      "total_amount": 382.07,
      "workdays": 21,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "61924f59-11e3-49d0-9cf7-2a1d0ce54924",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 340.39,
      "original_pre_fixed_amount": 41.68,
      "original_principal_amortization_amount": 340.39,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 3,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0
    }
  ],
  "first_due_date": "2022-08-29",
  "requester_key": "52f36417-368e-4f5b-8841-71e3b9caa72f",
  "original_total_iof": 6.77,
  "contract_number": "0000000001/WO",
  "credit_operation_status_enumerator": "waiting_signature",
  "operation_type_enumerator": "structured_operation",
  "disbursement_date": "2022-08-24",
  "issuer_name": "Wilker Oliveiraço",
  "issuer_document_number": "37197645832",
  "external_contract_fees": [
    {
      "amount_type": {
        "enumerator": "percentage"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "spread_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    }
  ]
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Consulta de dívida por Credit Operation Key

URL: /documentation/emissao_de_divida/consulta_por_credit_operation_key

## Request

ENDPOINT /v2/credit_operation/ CREDIT-OPERATION-KEY
MÉTODO GET

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `credit_operation_key` * | string | Chave da operação de crédito. | UUID |

### Query params

| Campo | Tipo | Descrição | Default |
|---|---|---|---|
| `eval_present_value` | boolean | Quando `true`, calcula o valor presente de cada parcela e retorna o campo `present_amount` em cada item de `installments`, além de um `present_amount` na raiz com a soma das parcelas. Não pode ser usado para operações nos status: `waiting_signature`, `signed`, `issued`, `canceled`, `canceled_permanently` ou `amended`. | `false` |
| `calculate_delay` | boolean | Considera juros de mora no cálculo do valor presente. Só tem efeito quando `eval_present_value=true`. | `false` |
| `calculate_spread` | boolean | Considera o spread no cálculo do valor presente. Só tem efeito quando `eval_present_value=true`. | `true` |
| `present_value_reference_date` | string (date) | Data de referência (`YYYY-MM-DD`) usada como base para o cálculo do valor presente. Só tem efeito quando `eval_present_value=true`. | hoje |

## Response

STATUS 200

Response Body

**Sem eval_present_value**

```json
{
  "credit_operation_key": "eaf5836a-ea6f-4baa-ac26-ce5199dfa448",
  "issue_amount": 1006.77,
  "origin_key": "52539e23-5c01-4b9c-8a68-6ed750ec7bc5",
  "total_iof": 6.77,
  "disbursement_start_date": "2022-08-24",
  "disbursement_end_date": "2022-08-24",
  "assigned_at": "2025-08-24T10:00:00Z",
  "issue_date": "2022-08-24",
  "requester_identifier_key": "5cb7456c-f2e3-41b3-b17a-ad47ba3c3cda",
  "installments": [
    {
      "business_due_date": "2022-08-30",
      "due_date": "2022-08-29",
      "calendar_days": 5,
      "due_interest": 0,
      "due_principal": 1006.77,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 18.93,
      "principal_amortization_amount": 363.14,
      "tax_amount": 0.15,
      "total_amount": 382.07,
      "workdays": 3,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "b56f61ec-202c-4a7a-8a5e-11f90972bae8",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 1006.77,
      "original_pre_fixed_amount": 18.93,
      "original_principal_amortization_amount": 363.14,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 1,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0
    },
    {
      "business_due_date": "2022-09-30",
      "due_date": "2022-09-29",
      "calendar_days": 31,
      "due_interest": 0,
      "due_principal": 643.63499424,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 78.82,
      "principal_amortization_amount": 303.25,
      "tax_amount": 0.9,
      "total_amount": 382.07,
      "workdays": 22,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "2a95a560-bec6-4207-9a38-98c72e023c59",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 643.63,
      "original_pre_fixed_amount": 78.82,
      "original_principal_amortization_amount": 303.25,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 2,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0
    },
    {
      "business_due_date": "2022-11-01",
      "due_date": "2022-10-31",
      "calendar_days": 32,
      "due_interest": 0,
      "due_principal": 340.38585509,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 41.68,
      "principal_amortization_amount": 340.39,
      "tax_amount": 1.9,
      "total_amount": 382.07,
      "workdays": 21,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "61924f59-11e3-49d0-9cf7-2a1d0ce54924",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 340.39,
      "original_pre_fixed_amount": 41.68,
      "original_principal_amortization_amount": 340.39,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 3,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0
    }
  ],
  "first_due_date": "2022-08-29",
  "requester_key": "52f36417-368e-4f5b-8841-71e3b9caa72f",
  "original_total_iof": 6.77,
  "contract_number": "0000000001/WO",
  "credit_operation_status_enumerator": "waiting_signature",
  "operation_type_enumerator": "structured_operation",
  "disbursement_date": "2022-08-24",
  "issuer_name": "Wilker Oliveiraço",
  "issuer_document_number": "37197645832",
  "external_contract_fees": [
    {
      "amount_type": {
        "enumerator": "percentage"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "spread_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    }
  ]
}
```

**Com eval_present_value=true**

```json
{
  "credit_operation_key": "eaf5836a-ea6f-4baa-ac26-ce5199dfa448",
  "issue_amount": 1006.77,
  "present_amount": 889.87,
  "origin_key": "52539e23-5c01-4b9c-8a68-6ed750ec7bc5",
  "total_iof": 6.77,
  "disbursement_start_date": "2022-08-24",
  "disbursement_end_date": "2022-08-24",
  "assigned_at": "2025-08-24T10:00:00Z",
  "issue_date": "2022-08-24",
  "requester_identifier_key": "5cb7456c-f2e3-41b3-b17a-ad47ba3c3cda",
  "installments": [
    {
      "business_due_date": "2022-08-30",
      "due_date": "2022-08-29",
      "calendar_days": 5,
      "due_interest": 0,
      "due_principal": 1006.77,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 18.93,
      "principal_amortization_amount": 363.14,
      "tax_amount": 0.15,
      "total_amount": 382.07,
      "workdays": 3,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "b56f61ec-202c-4a7a-8a5e-11f90972bae8",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 1006.77,
      "original_pre_fixed_amount": 18.93,
      "original_principal_amortization_amount": 363.14,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 1,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0,
      "present_amount": 296.62
    },
    {
      "business_due_date": "2022-09-30",
      "due_date": "2022-09-29",
      "calendar_days": 31,
      "due_interest": 0,
      "due_principal": 643.63499424,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 78.82,
      "principal_amortization_amount": 303.25,
      "tax_amount": 0.9,
      "total_amount": 382.07,
      "workdays": 22,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "2a95a560-bec6-4207-9a38-98c72e023c59",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 643.63,
      "original_pre_fixed_amount": 78.82,
      "original_principal_amortization_amount": 303.25,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 2,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0,
      "present_amount": 296.62
    },
    {
      "business_due_date": "2022-11-01",
      "due_date": "2022-10-31",
      "calendar_days": 32,
      "due_interest": 0,
      "due_principal": 340.38585509,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 41.68,
      "principal_amortization_amount": 340.39,
      "tax_amount": 1.9,
      "total_amount": 382.07,
      "workdays": 21,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "61924f59-11e3-49d0-9cf7-2a1d0ce54924",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 340.39,
      "original_pre_fixed_amount": 41.68,
      "original_principal_amortization_amount": 340.39,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 3,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0,
      "present_amount": 296.63
    }
  ],
  "first_due_date": "2022-08-29",
  "requester_key": "52f36417-368e-4f5b-8841-71e3b9caa72f",
  "original_total_iof": 6.77,
  "contract_number": "0000000001/WO",
  "credit_operation_status_enumerator": "waiting_signature",
  "operation_type_enumerator": "structured_operation",
  "disbursement_date": "2022-08-24",
  "issuer_name": "Wilker Oliveiraço",
  "issuer_document_number": "37197645832",
  "external_contract_fees": [
    {
      "amount_type": {
        "enumerator": "percentage"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "spread_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    }
  ]
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Consulta de dívida por Requester Identifier Key

URL: /documentation/emissao_de_divida/consulta_por_requester_identifier_key

## Request

ENDPOINT /v2/credit_operation/requester_identifier_key/ REQUESTER-IDENTIFIER-KEY
MÉTODO GET

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `requester_identifier_key` * | string | Chave da UUID4 enviada na criação da dívida. | UUID |

### Query params

| Campo | Tipo | Descrição | Default |
|---|---|---|---|
| `eval_present_value` | boolean | Quando `true`, calcula o valor presente de cada parcela e retorna o campo `present_amount` em cada item de `installments`, além de um `present_amount` na raiz com a soma das parcelas. Não pode ser usado para operações nos status: `waiting_signature`, `signed`, `issued`, `canceled`, `canceled_permanently` ou `amended`. | `false` |
| `calculate_delay` | boolean | Considera juros de mora no cálculo do valor presente. Só tem efeito quando `eval_present_value=true`. | `false` |
| `calculate_spread` | boolean | Considera o spread no cálculo do valor presente. Só tem efeito quando `eval_present_value=true`. | `true` |
| `present_value_reference_date` | string (date) | Data de referência (`YYYY-MM-DD`) usada como base para o cálculo do valor presente. Só tem efeito quando `eval_present_value=true`. | hoje |

## Response

STATUS 200

Response Body

**Sem eval_present_value**

```json
{
  "credit_operation_key": "eaf5836a-ea6f-4baa-ac26-ce5199dfa448",
  "issue_amount": 1006.77,
  "origin_key": "52539e23-5c01-4b9c-8a68-6ed750ec7bc5",
  "total_iof": 6.77,
  "disbursement_start_date": "2022-08-24",
  "disbursement_end_date": "2022-08-24",
  "assigned_at": "2025-08-24T10:00:00Z",
  "issue_date": "2022-08-24",
  "requester_identifier_key": "5cb7456c-f2e3-41b3-b17a-ad47ba3c3cda",
  "installments": [
    {
      "business_due_date": "2022-08-30",
      "due_date": "2022-08-29",
      "calendar_days": 5,
      "due_interest": 0,
      "due_principal": 1006.77,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 18.93,
      "principal_amortization_amount": 363.14,
      "tax_amount": 0.15,
      "total_amount": 382.07,
      "workdays": 3,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "b56f61ec-202c-4a7a-8a5e-11f90972bae8",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 1006.77,
      "original_pre_fixed_amount": 18.93,
      "original_principal_amortization_amount": 363.14,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 1,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0
    },
    {
      "business_due_date": "2022-09-30",
      "due_date": "2022-09-29",
      "calendar_days": 31,
      "due_interest": 0,
      "due_principal": 643.63499424,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 78.82,
      "principal_amortization_amount": 303.25,
      "tax_amount": 0.9,
      "total_amount": 382.07,
      "workdays": 22,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "2a95a560-bec6-4207-9a38-98c72e023c59",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 643.63,
      "original_pre_fixed_amount": 78.82,
      "original_principal_amortization_amount": 303.25,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 2,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0
    },
    {
      "business_due_date": "2022-11-01",
      "due_date": "2022-10-31",
      "calendar_days": 32,
      "due_interest": 0,
      "due_principal": 340.38585509,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 41.68,
      "principal_amortization_amount": 340.39,
      "tax_amount": 1.9,
      "total_amount": 382.07,
      "workdays": 21,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "61924f59-11e3-49d0-9cf7-2a1d0ce54924",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 340.39,
      "original_pre_fixed_amount": 41.68,
      "original_principal_amortization_amount": 340.39,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 3,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0
    }
  ],
  "first_due_date": "2022-08-29",
  "requester_key": "52f36417-368e-4f5b-8841-71e3b9caa72f",
  "original_total_iof": 6.77,
  "contract_number": "0000000001/WO",
  "credit_operation_status_enumerator": "waiting_signature",
  "operation_type_enumerator": "structured_operation",
  "disbursement_date": "2022-08-24",
  "issuer_name": "Wilker Oliveiraço",
  "issuer_document_number": "37197645832",
  "external_contract_fees": [
    {
      "amount_type": {
        "enumerator": "percentage"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "spread_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    }
  ]
}
```

**Com eval_present_value=true**

```json
{
  "credit_operation_key": "eaf5836a-ea6f-4baa-ac26-ce5199dfa448",
  "issue_amount": 1006.77,
  "present_amount": 889.87,
  "origin_key": "52539e23-5c01-4b9c-8a68-6ed750ec7bc5",
  "total_iof": 6.77,
  "disbursement_start_date": "2022-08-24",
  "disbursement_end_date": "2022-08-24",
  "assigned_at": "2025-08-24T10:00:00Z",
  "issue_date": "2022-08-24",
  "requester_identifier_key": "5cb7456c-f2e3-41b3-b17a-ad47ba3c3cda",
  "installments": [
    {
      "business_due_date": "2022-08-30",
      "due_date": "2022-08-29",
      "calendar_days": 5,
      "due_interest": 0,
      "due_principal": 1006.77,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 18.93,
      "principal_amortization_amount": 363.14,
      "tax_amount": 0.15,
      "total_amount": 382.07,
      "workdays": 3,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "b56f61ec-202c-4a7a-8a5e-11f90972bae8",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 1006.77,
      "original_pre_fixed_amount": 18.93,
      "original_principal_amortization_amount": 363.14,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 1,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0,
      "present_amount": 296.62
    },
    {
      "business_due_date": "2022-09-30",
      "due_date": "2022-09-29",
      "calendar_days": 31,
      "due_interest": 0,
      "due_principal": 643.63499424,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 78.82,
      "principal_amortization_amount": 303.25,
      "tax_amount": 0.9,
      "total_amount": 382.07,
      "workdays": 22,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "2a95a560-bec6-4207-9a38-98c72e023c59",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 643.63,
      "original_pre_fixed_amount": 78.82,
      "original_principal_amortization_amount": 303.25,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 2,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0,
      "present_amount": 296.62
    },
    {
      "business_due_date": "2022-11-01",
      "due_date": "2022-10-31",
      "calendar_days": 32,
      "due_interest": 0,
      "due_principal": 340.38585509,
      "fine_amount": 0,
      "has_interest": true,
      "post_fixed_amount": 0,
      "pre_fixed_amount": 41.68,
      "principal_amortization_amount": 340.39,
      "tax_amount": 1.9,
      "total_amount": 382.07,
      "workdays": 21,
      "accrual_reference_date": null,
      "advanced_paid_amount": 0.0,
      "bank_slip_key": null,
      "digitable_line": null,
      "installment_key": "61924f59-11e3-49d0-9cf7-2a1d0ce54924",
      "installment_status": "created",
      "installment_type": "principal",
      "original_due_principal": 340.39,
      "original_pre_fixed_amount": 41.68,
      "original_principal_amortization_amount": 340.39,
      "paid_amount": 0.0,
      "original_total_amount": 382.07,
      "qr_code_key": null,
      "qr_code_url": null,
      "renegotiation_proposal_key": null,
      "total_accrual_amount": 0,
      "total_paid_amount": 0,
      "installment_number": 3,
      "paid_at": null,
      "updated_at": null,
      "principal_amortization_payment_amount": 0,
      "prefixed_interest_payment_amount": 0,
      "present_amount": 296.63
    }
  ],
  "first_due_date": "2022-08-29",
  "requester_key": "52f36417-368e-4f5b-8841-71e3b9caa72f",
  "original_total_iof": 6.77,
  "contract_number": "0000000001/WO",
  "credit_operation_status_enumerator": "waiting_signature",
  "operation_type_enumerator": "structured_operation",
  "disbursement_date": "2022-08-24",
  "issuer_name": "Wilker Oliveiraço",
  "issuer_document_number": "37197645832",
  "external_contract_fees": [
    {
      "amount_type": {
        "enumerator": "percentage"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "spread_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    },
    {
      "amount_type": {
        "enumerator": "absolute"
      },
      "fee_amount": 0.0,
      "tax_amount": 0.0,
      "irrf_amount": 0.0,
      "amount": 0.0,
      "pis_amount": 0.0,
      "amount_released": 0.0,
      "fee_type": {
        "enumerator": "tac_tax_free"
      },
      "cofins_amount": 0.0,
      "csll_amount": 0.0,
      "description": null,
      "net_fee_amount": 0.0,
      "rebate_account": null,
      "billing_type": {
        "enumerator": "disbursement"
      },
      "created_at": "2025-10-14T22:18:07"
    }
  ]
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Desembolso da operação

URL: /documentation/emissao_de_divida/desembolso_da_operacao

O desembolso de uma operação é a liberação dos recursos provenientes do contrato de crédito, na QI Tech, a forma de desembolso obedece as configurações do produto de crédito conforme explicitado nas configurações de desembolso.

:::info Informação
Por padrão as operações são desembolsadas via PIX na conta enviada para a operação, porém existem cinco
opções que podem ser selecionadas:

**1- Pix com informações de conta**;

**2- Pix com chave**;

**3- TED**;

**4- QR code Pix**;

**5- Boleto**;

Elas possuem campos específicos e estão detalhados na chave "disbursement_bank_accounts" da emissão de contrato.
:::

A rotina de desembolso da QI Tech roda a cada minuto observando se todos os requisitos configurados para o produto foram atendidos para aquele contrato específico e alterando seu status.

## Requisitos para Desembolso

- **Data de desembolso**

O Contrato de crédito da operação só é desembolsado na data definida como "disbursement_date".

- **Contrato de crédito emitido e assinado**

O Contrato de crédito da operação deve estar emitido e assinado.

- **Colateral constituído**

No caso de operações que exijam garantias, o colateral deve estar constituído para que o desembolso prossiga.

- **Aprovação de desembolso**

Caso a configuração de "aprovação para desembolso" esteja ativa, o contrato só será desembolsado após a chamada de API de aprovação.

- **Operações com entrada precisam estar pagas**

Caso a operação criada possua um parâmetro de entrada, o desembolso só ocorre após o pagamento e a liquidação financeira no sistema QI Tech.

- **Alinhamento de limites**

É necessário que exista limite de crédito disponível para que a operação seja desembolsada.

---

# Emissão de dívida PF

URL: /documentation/emissao_de_divida/emissao/emissao_de_divida_pf

Com a API de emissão de dívida é possível solicitar a emissão de uma dívida para uma pessoa física.
Não é necessário realizar o cadastro prévio do tomador, basta informar os dados cadastrais no momento da solicitação da dívida.

:::danger Atenção!

A QI Tech oferece uma solução de Onboarding de novos clientes e Anti-fraude.

Para receber uma cotação, entre em contato com nosso time comercial:

comercial@qitech.com.br ou (11) 3522-1301
:::

A API de dívida foi desenhada para ser executada em apenas uma
requisição, após um prévio envio dos arquivos ([upload de documentos](../../upload_de_documentos)).
O formato de assinatura do header e do body desta requisição é descrito em detalhes
[aqui](../../primeiros_passos/teste_de_autenticacao).

## Request

ENDPOINT /debt
MÉTODO POST

Request Body

```json
{
    "borrower": {
        "name": "Alan Mathison Turing",
        "email": "alan.turing@email.com",
        "phone": {
            "number": "912345678",
            "area_code": "11",
            "country_code": "055"
        },
        "is_pep": false,
        "address": {
            "city": "São Paulo",
            "state": "SP",
            "number": "1000",
            "street": "Avenida Feliz",
            "complement": "AP 801",
            "postal_code": "49026100",
            "neighborhood": "Centro"
        },
        "role_type": "issuer",
        "birth_date": "1990-11-20",
        "mother_name": "Nome da Mãe do Alan",
        "nationality": "brasileiro",
        "person_type": "natural",
        "individual_document_number": "96969879003",
        "document_identification": "494598fd-c226-4332-a500-591ae3884673"
    },
    "financial": {
        "disbursed_amount": 123456,
        "interest_type": "pre_price_days",
        "credit_operation_type": "ccb",
        "monthly_interest_rate": 0.018,
        "disbursement_date": "2026-03-01",
        "rebates": [
            {
                "amount": 10,
                "fee_type": "tac",
                "amount_type": "absolute",
                "rebate_bank_account": {
                    "name": "CONTA BANCARIA",
                    "bank_code": "329",
                    "account_digit": "1",
                    "branch_number": "0001",
                    "account_number": "00003",
                    "document_number": "32402502000135"
                }
            }
        ],
        "interest_grace_period": 0,
        "principal_grace_period": 0,
        "number_of_installments": 2,
        "fine_configuration": {
            "contract_fine_rate": 0.02,
            "interest_base": "calendar_days",
            "monthly_rate": 0.01
        }
    },
    "disbursement_bank_account": {
        "name": "Alan Mathison Turing",
        "document_number": "96969879003",
        "bank_code": "341",
        "branch_number": "8615",
        "account_number": "22110",
        "account_digit": "2",
        "account_type": "checking_account"
    },
    "purchaser_document_number": "32402502000135",
    "credit_agent": {
        "document_number": "87237271016",
        "name": "Agente de credito"
    }
}
```

:::warning Atenção
O objeto `credit_agent` representa o agente de crédito, por vezes conhecido como pastinha, responsável pela originação desta dívida. Este campo é obrigatório para a emissão de dívidas de consignados.
:::

## Response

A resposta desse pedido de dívida retornará o plano de pagamento assim como uma **DEBT-KEY**, que é o identificador da dívida na QI SCD.

STATUS 200

Response Body

```json
{
    "webhook_type": "debt",
    "key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
    "status": "waiting_signature",
    "event_datetime": "2025-03-27 22:46:10",
    "data": {
        "requester_identifier_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
        "iof_charge_method": "financed",
        "prefixed_interest_rate": {
            "annual_rate": 0.2387205316,
            "created_at": "2025-03-27T22:46:04",
            "daily_rate": 0.0005866899,
            "interest_base": "calendar_days_365",
            "monthly_rate": 0.018
        },
        "borrower": {
            "name": "Alan Mathison Turing",
            "document_number": "96969879003",
            "related_party_key": "d5cbcada-42e7-4d5b-84fc-3c2dc8038411"
        },
        "contract": {
            "number": "0000192840/AMT",
            "urls": [
                "https://storage.googleapis.com/sandbox-doc-api/documents/b2d974f9-c710-42e3-8ea4-69cc31561c38/GENERICTEST-ALAN_MATHISON_TURING-CCB-0000192840-20250327224604.pdf"
            ],
            "signers": [
                {
                    "signer_name": "Alan Mathison Turing",
                    "signer_document_number": "96969879003",
                    "signer_role": "issuer",
                    "signer_email": "alan.turing@email.com",
                    "signer_external_key": null,
                    "signature_url": null
                }
            ]
        },
        "installments": [
            {
                "accrual_reference_date": null,
                "additional_costs": [],
                "advanced_paid_amount": 0.0,
                "bank_slip_key": null,
                "business_due_date": "2026-04-01",
                "calendar_days": 31,
                "digitable_line": null,
                "due_date": "2026-04-01",
                "due_interest": 0.0,
                "due_principal": 124424.89,
                "fine_amount": null,
                "has_interest": true,
                "installment_history": [],
                "installment_key": "b4c722a1-c977-415d-891a-342308edd52f",
                "installment_number": 1,
                "installment_payment": [],
                "installment_status": "created",
                "installment_type": "principal",
                "original_due_principal": 124424.89,
                "original_pre_fixed_amount": 2282.99189209,
                "original_principal_amortization_amount": 61684.03810791,
                "original_total_amount": 63967.03,
                "paid_amount": 0.0,
                "paid_at": null,
                "post_fixed_amount": 0,
                "pre_fixed_amount": 2282.99189209,
                "principal_amortization_amount": 61684.03810791,
                "qr_code_key": null,
                "qr_code_url": null,
                "renegotiation_proposal_key": null,
                "tax_amount": 156.80082487,
                "total_accrual_amount": null,
                "total_amount": 63967.03,
                "total_paid_amount": 0.0,
                "workdays": 23
            },
            {
                "accrual_reference_date": null,
                "additional_costs": [],
                "advanced_paid_amount": 0.0,
                "bank_slip_key": null,
                "business_due_date": "2026-05-04",
                "calendar_days": 33,
                "digitable_line": null,
                "due_date": "2026-05-04",
                "due_interest": 0.0,
                "due_principal": 62740.85189209,
                "fine_amount": null,
                "has_interest": true,
                "installment_history": [],
                "installment_key": "0d042ffc-1629-4ed4-8ec9-0972b2f715ba",
                "installment_number": 2,
                "installment_payment": [],
                "installment_status": "created",
                "installment_type": "principal",
                "original_due_principal": 62740.85189209,
                "original_pre_fixed_amount": 1226.17810791,
                "original_principal_amortization_amount": 62740.85189209,
                "original_total_amount": 63967.03,
                "paid_amount": 0.0,
                "paid_at": null,
                "post_fixed_amount": 0,
                "pre_fixed_amount": 1226.17810791,
                "principal_amortization_amount": 62740.85189209,
                "qr_code_key": null,
                "qr_code_url": null,
                "renegotiation_proposal_key": null,
                "tax_amount": 329.26399073,
                "total_accrual_amount": null,
                "total_amount": 63967.03,
                "total_paid_amount": 0.0,
                "workdays": 20
            }
        ],
        "total_pre_fixed_amount": 3509.17,
        "contract_fees": [
            {
                "fee_type": "spread",
                "fee_amount": 497.7
            },
            {
                "fee_type": "spread_ted_fee",
                "fee_amount": 1.0
            }
        ],
        "contract_fee_amount": 498.7,
        "external_contract_fees": [
            {
                "fee_type": "tac",
                "fee_amount": 10.0,
                "tax_amount": 1.42,
                "description": null,
                "net_fee_amount": 8.58,
                "rebate_bank_account": {
                    "account_branch": "0001",
                    "account_digit": "1",
                    "account_number": "00003",
                    "created_at": "2025-03-27T22:46:04",
                    "document_number": "32402502000135",
                    "financial_institutions": {
                        "code_number": 329,
                        "is_active": true,
                        "is_pix_participant": true,
                        "ispb": 32402502,
                        "name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A."
                    },
                    "financial_institutions_code_number": "329",
                    "name": "CONTA BANCARIA"
                }
            },
            {
                "fee_type": "spread",
                "fee_amount": 0.0,
                "tax_amount": 0.0,
                "description": null,
                "net_fee_amount": 0.0,
                "rebate_bank_account": null
            },
            {
                "fee_type": "insurance_premium",
                "fee_amount": 0.0,
                "tax_amount": 0.0,
                "description": null,
                "net_fee_amount": 0.0,
                "rebate_bank_account": null
            }
        ],
        "external_contract_fee_amount": 10.0,
        "net_external_contract_fee_amount": 8.58,
        "assignment_amount": 124923.59,
        "issue_amount": 124424.89,
        "disbursed_issue_amount": 123456.0,
        "cet": "2,3100%",
        "annual_cet": "31,5716%",
        "number_of_installments": 2,
        "base_iof": 486.06,
        "additional_iof": 472.83,
        "total_iof": 958.89,
        "collaterals": [],
        "entry": null
    }
}
```

## Definições

### Objeto Request Body
| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **borrower** *                  | object | **[Objeto Borrower](#objeto-borrower)** - Devedor da operação de crédito                                                                                                                                         | -            | 
| **disbursement_bank_account** * | object | **[Objeto Disbursement Bank Account](#objeto-disbursement_bank_accounts)** - Dados da conta bancária para desembolso da operação                                                                                 | -            |
| **financial** *                 | object | **[Objeto Financial](#objeto-financial)** - Dados da conta bancária para desembolso da operaçãoIdentificador de que o objeto enviado é uma pessoa física. Deve conter SEMPRE o  valor "natural" para borrower PF | -            |
| **purchaser_document_number** * | string | CNPJ do cessionário (comprador) da operação de crédito                                                                                                                                                           | -            |

### Objeto Borrower
| Campo                            | Tipo    | Descrição                                                                             | Máx. Caract. | 
|----------------------------------|---------|---------------------------------------------------------------------------------------|--------------|
| **name** *                       | string  | Nome do devedor                                                                       | 100          |
| **email**                        | string  | Email do devedor                                                                      | 254          |
| **phone**                        | object  | **[Objeto Phone](#objeto-phone)** - Telefone de contato do devedor                    | -            | 
| **is_pep** *                     | boolean | Indicador de PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep)      | -            |
| **address** *                    | object  | **[Objeto Address](#objeto-address)** - Endereço do devedor                           | -            | 
| **role_type** *                  | enum    | default: _issuer_                                                                     | -            |
| **birth_date** *                 | date    | Data de nascimento do devedor (formato "AAAA-MM-DD")                                  | -            |
| **mother_name** *                | string  | Nome da mãe do devedor                                                                | 100          |
| **nationality**                  | string  | Nacionalidade do devedor                                                              | 50           |
| **person_type** *                | string  | Indicador de pessoa física - default: _natural_                                       | -            |
| **individual_document_number** * | string  | CPF do devedor (apenas números)                                                       | 11           |
| **document_identification**     * | string  | **DOCUMENT_KEY** do PDF do documento de identificação do devedor com foto (RG, CNH ou CIN) | -            |
| **document_identification_back** |string | DOCUMENT_KEY do PDF da parte de trás do documento de identificação da pessoa com foto (RG, CNH ou CIN) (enviado previamente). | 11 |
| **document_identification_type** | enum | **[Enumerador Document Identification Type](#enumerador-document-identification-type)** — Tipo do documento de identificação enviado. | - |
| **document_identification_number** | string | Número do documento de identificação. Quando `document_identification_type` for `cin`, este campo deve ser igual ao CPF (`individual_document_number`). | 16 |
| **wedding_certificate**          | string | DOCUMENT_KEY do PDF do certificado de casamento da pessoa (enviado previamente). No caso de marital_status ser "single", o valor deste campo deve ser NULL. | 11 |
| **proof_of_residence** *    |string | DOCUMENT_KEY do PDF do comprovante de endereço do endereço enviado (enviado previamente). | 11 |

### Enumerador Document Identification Type

| Valor | Descrição |
|---|---|
| `rg` | RG — Registro Geral |
| `rne` | RNE — Registro Nacional de Estrangeiros |
| `cnh` | CNH — Carteira Nacional de Habilitação |
| `ctps` | CTPS — Carteira de Trabalho e Previdência Social |
| `class_document` | Documento de classe profissional (CRM, OAB, CRC, etc.) |
| `passport` | Passaporte |
| `other` | Outro |
| `cin` | CIN — Carteira de Identidade Nacional. O campo `document_identification_number` deve ser igual ao CPF do portador. |

### Objeto Address
| Campo              | Tipo   | Descrição                                                                | Máx. Caract. | 
|--------------------|--------|--------------------------------------------------------------------------|--------------| 
| **city** *         | string | Cidade do endereço                                                       | 100          |
| **state** *        | string | Estado do endereço (com dois caracteres maiúsculos)                      | 2            |
| **number** *       | string | Número do endereço                                                       | 10           |
| **street** *       | string | Rua do endereço                                                          | 100          |
| **complement** *   | string | Complemento do endereço (texto livre)                                    | 100          |
| **postal_code** *  | string | CEP do endereço (http://www.buscacep.correios.com.br/sistemas/buscacep/) | 8            |
| **neighborhood** * | string | Bairro do endereço                                                       | 100          |

### Objeto Phone
| Campo              | Descrição | Exemplo                                               | Máx. Caract. | 
|--------------------|-----------|-------------------------------------------------------|--------------| 
| **number** *       | string    | Número de telefone                                    | 10           |
| **area_code** *    | string    | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2            |
| **country_code** * | string    | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3            |

### Objeto Disbursement Bank Account

Uma emissão de dívida deve conter as informações bancárias para desembolso, por padrão, uma conta de titularidade do devedor.

| Campo                 | Tipo   | Descrição                                                                                          | Máx. Caract. | 
|-----------------------|--------|----------------------------------------------------------------------------------------------------|--------------|
| name                  | string | Nome do titular da conta                                                                           | 50           |
| document_number       | string | CPF do titular da conta                                                                            | 11           |
| bank_code *           | string | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3            |
| branch_number *       | string | Número da agência (não informar o dígito verificador da agência!)                                  | 4            |
| account_number *      | string | Número da conta (sem o dígito verificador da conta!)                                               | 10           |
| account_digit *       | string | Dígito verificador da conta (informar zero no lugar de letras)                                     | 1            |
| account_type          | enum   | [Enumerador Account Type](#enumerador-account-type) Tipo da conta                                  | 1            |

### Objeto Financial

O objeto financial descreve as informações financeiras da operação de crédito.

| Campo                      | Tipo   | Descrição                                                                                                     | Máx. Caract. |
|----------------------------|--------|---------------------------------------------------------------------------------------------------------------|--------------|
| **amout**                  | float  | Valor de emissão/nominal da operação de crédito                                                               | -            |
| **interest_type**          | object | **[Enumerador Interest Type](#enumerador-interest-type)** - Método de amortização e forma de cálculo de juros | -            |
| **credit_operation_type**  | object | **[Enumerador Credit Operation Type](#enumerador-credit-operation-type)** - Tipo do contrato de crédito       | -            |
| **annual_interest_rate**   | float  | Taxa de juros pré-fixada expressa em decimal ao ano                                                           | -            |
| **disbursement_date**      | date   | Data do desembolso da operação                                                                                | -            |
| **interest_grace_period**  | int    | Carência de juros (em meses)                                                                                  | -            |
| **principal_grace_period** | int    | Período carência de principal                                                                                 | -            |
| **number_of_installments** | int    | Número de parcelas da operação de crédito                                                                     | -            |
| **fine_configuration**     | object | **[Objeto Fine Configuration](#objeto-fine-configuration)** - Configuração de juros e multa por atraso        | -            |

### Objeto Fine Configuration

No Objeto Fine Configuration são informados os valor de multa e juros por atraso da operação de crédito. 

| Campo                  | Tipo  | Descrição                                                                            | Máx. Caract. |
|------------------------|-------|--------------------------------------------------------------------------------------|--------------|
| **contract_fine_rate** | float | Percentual de multa por atraso                                                       | -            |
| **interest_base**      | enum  | **[Enumerador Interest Base](#enumerador-interest-base)** - Base de cálculo de juros | -            |
| **monthly_rate**       | float | Percentual de juros de atraso ao mês                                                 | -            |

### Objeto Rebates
| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **fee_type** *                  | enum | Tipo da tarifa.                                                                                                                                   | -            | 
| **amount_type** * | object | Tipo do valor a ser cobrado.                                                                                 | -            |
| **amount** *                 | object | Valor da tarifa. Se o tipo da tarifa for percentual, o valor deverá ser entre 0 e 100. | -            |

### Response Body
| Campo                      | Tipo   | Descrição                                                      | Máx. Caract. |
|----------------------------|--------|----------------------------------------------------------------|--------------|
| **data[n].data**           | object | **[Objeto Data](#objeto-data)**                                | -            |
| **data[n].event_datetime** | date   | Momento da geração da operação de crédito                      | -            |
| **data[n].key**            | string | **DEBT-KEY** - Chave única da operação de crédito dentro da QI | -            |
| **data[n].status**         | string | **[Possívies Status de uma dívida](../status_de_uma_divida)**     | -            |
| **data[n].type**           | string | _debt_                                                         | -            |

# Enumeradores

### Enumerador _Person Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **legal**   | Pessoa juridica        |
| **natural**    | Pesso física    |

### Enumerador _Amount Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **tac**   | Tarifa cobrada do tomador. |
| **spread**    | Tarifa cobrada do fundo adicionada ao preço de cessão da operação.    |

### Enumerador _Account Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **checking_account**   | Conta corrente        |
| **deposit_account**    | Conta de depósito     |
| **guaranteed_account** | Conta de garantia     |
| **investment_account** | Conta de investimento |
| **payment_account**    | Conta de pagamento    |
| **saving_account**     | Conta poupança        |
| **salary_account**     | Conta salário         |

### Enumerador _Interest Type_
| Enumerador           | Descrição                                                                                                                                                                |
|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **pre_price_days**   | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado ao dia                                                                                     |
| **pre_price**        | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado em períodos fixos (30 dias)                                                                |
| **pre_sac**          | Método de amortização SAC (amortização constante) com cálculo do juros pré-fixado ao dia                                                                                 |
| **post_sac**         | Método de amortização SAC (amortização constante) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                  |
| **post_price**       | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) em períodos fixos (30 dias) |
| **post_price_days**  | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                      |

### Enumerador _Credit Operation Type_
| Enumerador    | Descrição                      |
|---------------|--------------------------------|
| **ccb**       | Cédula de Crédito Bancário     |
| **cce**       | Cédula de Crédito à Exportação |
| **cci**       | Cédula de Crédito Imobiliário  |
| **nce**       | Nota de Crédito à Exportação   |

### Enumerador _Interest Base_
| Enumerador            | Descrição                                                                 |
|-----------------------|---------------------------------------------------------------------------|
| **workdays**          | Base de cálculo de juros em dias úteis considerando um ano de 252 dias    |
| **calendar_days**     | Base de cálculo de juros em dias corridos considerando um ano de 360 dias |
| **calendar_days_365** | Base de cálculo de juros em dias corridos considerando um ano de 365 dias |

### Enumerador _Fee Type_
Cada tipo de fee deve ser previamente habilitado e configurado pela QI Tech

| Enumerador            | Descrição                                                                  |
|-----------------------|----------------------------------------------------------------------------|
| **tac**               | Tarifa de abertura de cadastro                                             |
| **spread**            | Ágio cobrado no valor de aquisição da operação de crédito                  |
| **warranty_analysis** | Tarifa de análise de garantias                                             |
| **ted_fee**           | Tarifa de TED                                                              |
| **spread_ted_fee**    | Ágio da tarifa de TED cobrado no valor de aquisição da operação de crédito |

---

# Emissão de dívida PJ

URL: /documentation/emissao_de_divida/emissao/emissao_de_divida_pj

Com a API de emissão de dívida é possível solicitar a emissão de uma dívida para uma pessoa jurídica.
Não é necessário realizar o cadastro prévio do tomador, basta informar os dados cadastrais no momento da solicitação da dívida.

:::danger Atenção!

A QI Tech oferece uma solução de Onboarding de novos clientes e Anti-fraude.

[Confira aqui a documentação das APIs deste serviço.](https://www.zaig.com.br/en/devcenter.html)

Para receber uma cotação, entre em contato com nosso time comercial:

comercial@qitech.com.br ou (11) 3522-1301
:::

A API de dívida foi desenhada para ser executada em apenas uma
requisição, após um prévio envio dos arquivos ([upload de documentos](../../upload_de_documentos)).
O formato de assinatura do header e do body desta requisição é descrito em detalhes
[aqui](../../primeiros_passos/teste_de_autenticacao).

## Request

ENDPOINT /debt
MÉTODO POST

Request Body

```json
{
    "borrower": {
        "name": "RAZAO SOCIAL EMPRESA",
        "email": "emailempresa@email.com",
        "phone": {
            "number": "991112222",
            "area_code": "11",
            "country_code": "055"
        },
        "address": {
            "city": "São Paulo",
            "state": "SP",
            "number": "215",
            "street": "Rua Gilberto Sabino",
            "complement": "3 andar",
            "postal_code": "05425020",
            "neighborhood": "Pinheiros"
        },
        "cnae_code": "6822-6/00",
        "role_type": "issuer",
        "person_type": "legal",
        "company_type": "ltda",
        "trading_name": "NOME FANTASIA DA EMPRESA",
        "foundation_date": "2019-07-05",
        "attached_documents_list": [],
        "company_document_number": "80282008000127",
        "company_statute": "aa28e598-55e2-40f1-8884-671772c541a1",
        "company_representatives": [
            {
                "name": "NOME DO REPRESENTANTE",
                "email": "nomedorepresentante@email.com",
                "phone": {
                    "number": "990121234",
                    "area_code": "11",
                    "country_code": "055"
                },
                "is_pep": false,
                "final_beneficiary": true,
                "spouse": {
                    "name": "NOME CONJUGE REPRESENTANTE",
                    "email": "conjugerepresentante@email.com",
                    "phone": {
                        "number": "988881234",
                        "area_code": "11",
                        "country_code": "055"
                    },
                    "birth_date": "1994-12-04",
                    "person_type": "natural",
                    "is_pep": false,
                    "mother_name": "NOME DA MAE DO CONJUGE DO REPRESENTANTE",
                    "individual_document_number": "26571990032",
                    "document_identification_number": "10101010100",
                    "address": {
                        "city": "São Paulo",
                        "state": "SP",
                        "number": "215",
                        "street": "Rua Gilberto Sabino",
                        "complement": "3 andar",
                        "postal_code": "05425020",
                        "neighborhood": "Pinheiros"
                    }
                },
                "address": {
                    "city": "São Paulo",
                    "state": "SP",
                    "number": "215",
                    "street": "Rua Gilberto Sabino",
                    "complement": "3 andar",
                    "postal_code": "05425020",
                    "neighborhood": "Pinheiros"
                },
                "role_type": "company_representative",
                "birth_date": "1993-09-10",
                "profession": "DIRETOR",
                "mother_name": "NOME DA MAE DO REPRESENTANTE",
                "nationality": "BRASILEIRO",
                "person_type": "natural",
                "marital_status": "married",
                "property_system": "partial_communion_of_goods",
                "attached_documents_list": [],
                "individual_document_number": "31057466093",
                "document_identification_number": "20202020200"
            }
        ]
    },
    "financial": {
        "disbursed_amount": 10000,
        "interest_type": "pre_price_days",
        "credit_operation_type": "ccb",
        "monthly_interest_rate": 0.03,
        "disbursement_date": "2023-05-04",
        "first_due_date": "2023-06-03",
        "interest_grace_period": 0,
        "principal_grace_period": 0,
        "number_of_installments": 1,
        "fine_configuration": {
            "contract_fine_rate": 0.02,
            "interest_base": "calendar_days",
            "monthly_rate": 0.01
        }
    },
    "disbursement_bank_account": {
        "name": "RAZAO SOCIAL EMPRESA",
        "document_number": "80282008000127",
        "bank_code": "341",
        "branch_number": "8615",
        "account_number": "22110",
        "account_digit": "2",
        "account_type": "checking_account"
    },
    "purchaser_document_number": "32402502000135"
}

```

## Response

A resposta desse pedido de dívida retornará o plano de pagamento assim como uma **DEBT-KEY**, que é o identificador da dívida na QI SCD.

STATUS 200

Response Body

```json
{
  "data": {
    "additional_iof": 38.57988,
    "annual_cet": "71,3492%",
    "assignment_amount": 10254.13,
    "base_iof": 12.487704111671501,
    "borrower": {
      "document_number": "80282008000127",
      "name": "RAZAO SOCIAL EMPRESA",
      "related_party_key": "7620181e-f46a-45c1-a4ea-60439b9662ad"
    },
    "cet": "4,5900%",
    "collaterals": [],
    "contract": {
      "number": "0000069971/RSE",
      "signature_information": [
        {
          "signature_url": null,
          "signer_document_number": "31057466093",
          "signer_email": "nomedorepresentante@email.com",
          "signer_external_key": null,
          "signer_name": "NOME DO REPRESENTANTE",
          "signer_role": "issuer"
        }
      ],
      "urls": [
        "https://storage.googleapis.com/sandbox-doc-api/documents/df3e4530-3deb-4ba8-ad4e-c28ebeffb831/20230504122831.pdf"
      ]
    },
    "contract_fee_amount": 101.53,
    "contract_fees": [
      {
        "fee_amount": 101.53,
        "fee_type": "tac"
      }
    ],
    "external_contract_fee_amount": 101.53,
    "external_contract_fees": [
      {
        "fee_amount": 101.53,
        "fee_type": "spread",
        "net_fee_amount": 92.14,
        "tax_amount": 9.39
      },
      {
        "fee_amount": 0,
        "fee_type": "tac",
        "net_fee_amount": 0,
        "tax_amount": 0
      }
    ],
    "installments": [
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2023-06-05",
        "calendar_days": 30,
        "digitable_line": null,
        "due_date": "2023-06-03",
        "due_interest": 0,
        "due_principal": 10152.6,
        "fine_amount": null,
        "has_interest": true,
        "installment_history": [],
        "installment_key": "0eb42a83-557a-437a-9819-099b5364cde9",
        "installment_number": 1,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 10152.6,
        "original_pre_fixed_amount": 300.3450311613816,
        "original_principal_amortization_amount": 10152.60496883862,
        "original_total_amount": 10452.95,
        "paid_amount": 0,
        "paid_at": null,
        "post_fixed_amount": 0,
        "pre_fixed_amount": 300.3450311613816,
        "principal_amortization_amount": 10152.60496883862,
        "qr_code_key": null,
        "qr_code_url": null,
        "renegotiation_proposal_key": null,
        "tax_amount": 12.487704111671501,
        "total_accrual_amount": null,
        "total_amount": 10452.95,
        "total_paid_amount": 0,
        "workdays": 21
      }
    ],
    "iof_charge_method": "financed",
    "issue_amount": 10152.6,
    "net_external_contract_fee_amount": 92.14,
    "number_of_installments": 1,
    "prefixed_interest_rate": {
      "annual_rate": 0.42576089,
      "created_at": "2023-05-04T12:28:30",
      "daily_rate": 0.00097227,
      "interest_base": "calendar_days_365",
      "monthly_rate": 0.03
    },
    "requester_identifier_key": "feceb7fe-1305-45eb-899d-c87d36bcc534",
    "total_iof": 51.07,
    "total_pre_fixed_amount": 300.3450311613816
  },
  "event_datetime": "2023-05-04 12:28:35",
  "key": "feceb7fe-1305-45eb-899d-c87d36bcc534",
  "status": "waiting_signature",
  "webhook_type": "debt"
}

```

### Objeto Request Body
| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **borrower** *                  | object | **[Objeto Borrower](#objeto-borrower)** - Devedor da operação de crédito                                                                                                                                         | -            |
| **guarantor**                   | object | **[Objeto Guarantor](#objeto-borrower)** - Garantidores da operação da operação de crédito                                                                                                                       | -            |  
| **disbursement_bank_account** * | object | **[Objeto Disbursement Bank Account](#objeto-disbursement_bank_accounts)** - Dados da conta bancária para desembolso da operação                                                                                 | -            |
| **financial** *                 | object | **[Objeto Financial](#objeto-financial)** - Dados da conta bancária para desembolso da operaçãoIdentificador de que o objeto enviado é uma pessoa física. Deve conter SEMPRE o  valor "natural" para borrower PF | -            |
| **purchaser_document_number** * | string | CNPJ do cessionário (comprador) da operação de crédito                                                                                                                                                           | -            |

### Objeto Borrower  
| Campo                            | Tipo    | Descrição                                                                             | Máx. Caract. | 
|----------------------------------|---------|---------------------------------------------------------------------------------------|--------------|
| **name** *                       | string  | Razão social da empresa                                                                   | 100          |
| **trading_name** * | string | Nome fantasia |  |
| **email**   *                     | string  | Email institucional da empresa                                                                 | 254          |
| **phone**  *                      | object  | **[Objeto Phone](#objeto-phone)** - Telefone da empresa                     | -            | 
| **is_pep** *                     | boolean | Indicador de PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep)      | -            |
| **address** *                    | object  | **[Objeto Address](#objeto-address)** - Endereço do devedor                           | -            | 
| **role_type** *                  | enum    | default: _issuer_                                                                     | -            |
| **person_type** *                | string  | Indicador de pessoa jurídica - default: _legal_                                       | -            |
| **company_document_number** *    | string  | CNPJ (apenas números)                                                                 | -            |
| **cnae_code** * | string |  Classificação Nacional de Atividades Econômicas | |
| **company_representatives** *    | array of objects | Lista de representante legais da empresa  | **[Objeto Company Representatives](#objeto-company_representatives)** |
| **company_type** * | enum |  Tipo da empresa: "ltda", "sa",  "micro_enterprise" ou  "freelancer"| -  |
| **company_statute** * | string | `document_key` do PDF do estatuto da empresa | |
| **directors_election_minute** | string | `document_key` do PDF da Ata de eleição da empresa (obrigatório apenas para emrpresas com company_type "sa") | |
| **foundation_date** * | date | Data de abertura da empresa (formato "AAAA-MM-DD") |  |

Como mostrado acima tanto o campo "borrower" quanto os campos "guarantors" podem ser populados por Objeto PF ou Objeto PJ. Objeto PJ é o descritivo de uma pessoa jurídica na QI Tech.

### Objeto Company Representatives

| Campo | Descrição | Exemplo | Máx. Caract. | 
|---|---|---|---| 
| **person_type** * | string | Identificador de que o objeto enviado é uma pessoa física ou jurídica. | natural |
| **name** * | string | Razão social em caso de operações PJ ou Nome da pessoa em caso de operações PF. Limitado a 100 caracteres. |  |
| **mother_name** * | string | Nome da mãe do cliente em caso de PF. Limitado a 100 caracteres. |  |
| **birth_date** * | string | Data de nascimento da pessoa (formato "AAAA-MM-DD") | - |
| **profession** * |string | Profissão do cliente. Limitado a 64 caracteres. | 64 |
| **nationality** * | string | Nacionalidade do cliente.  | 50  |
| **marital_status** * | string | Estado civil do cliente. |
| **property_system** * |string | Regime de separação de bens (obrigatório apenas para pessoas com marital_status "married"). | **[Enumeradores property_system](#enumeradores-property_system)**  |
| **wedding_certificate** * | string | DOCUMENT_KEY do PDF do certificado de casamento da pessoa (enviado previamente). No caso de marital_status ser "single", o valor deste campo deve ser NULL. |  |
| **spouse** * |string |**[Objeto Spouse](#objeto-spouse)** (obrigatório apenas quando "compulsory_separation_of_goods" for "total_communion_of_goods", "partial_communion_of_goods", "final_participation_of_acquisitions" ou "compulsory_separation_of_goods"). No caso de marital_status ser "single", o valor deste campo deve ser NULL. | **[Objeto Spouse](#objeto-spouse)** |
| **is_pep** * |  boolean |Declaração se a pessoa é PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep). | true/false |
| **final_beneficiary** | boolean | Declaração se o representante é beneficiário final da empresa. | true/false |
| **individual_document_number** * |string | CPF da pessoa (apenas números). | 10 |
| **document_identification** * |string | DOCUMENT_KEY do PDF do documento de identificação da pessoa com foto (RG, CNH ou CIN) (enviado previamente) |  |
| **document_identification_back** |string | DOCUMENT_KEY do PDF da parte de trás do documento de identificação da pessoa com foto (RG, CNH ou CIN) (enviado previamente). |  |
| **document_identification_type** * | enum | Tipo do documento de identificação. Valores aceitos: `rg`, `rne`, `cnh`, `ctps`, `class_document`, `passport`, `other`, `cin`. Quando `cin`, o campo `document_identification_number` deve ser igual ao CPF. |  |
| **document_identification_number** * |string | Número do documento de identificação da pessoa enviado em "document_identification". Quando `document_identification_type` for `cin`, deve ser igual ao CPF (`individual_document_number`). | 16 |
| **email** * |string | Email do cliente. | 254 | 
| **phone** * | object | Telefone do cliente | **[Objeto Phone](#objeto-phone)** | - |
| **address** | object | Endereço do cliente. |  **[Objeto Address](#objeto-address)**  |  
| **proof_of_residence**  |string | DOCUMENT_KEY do PDF do comprovante de endereço do endereço enviado (enviado previamente). | - |

### Objeto Spouse
| Campo | Descrição | Exemplo | Máx. Caract. | 
|---|---|---|---| 
| **person_type** * | string | Identificador de que o objeto enviado é uma pessoa física ou jurídica. | natural |
| **name** * | string | Razão social em caso de operações PJ ou Nome da pessoa em caso de operações PF. Limitado a 100 caracteres. |  |
| **mother_name** * | string | Nome da mãe do cliente em caso de PF. Limitado a 100 caracteres. |  |
| **birth_date** * | string | Data de nascimento da pessoa (formato "AAAA-MM-DD") | - |
| **profession** * |string | Profissão do cliente. Limitado a 64 caracteres. | 64 |
| **is_pep** * |  boolean |Declaração se a pessoa é PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep). | true/false |
| **individual_document_number** * |string | CPF da pessoa (apenas números). | 10 |
| **document_identification_number** * |string | Número do documento de identificação da pessoa enviado em "document_identification".  | 16 |
| **email** * |string | Email do cliente. | 254 | 
| **phone** * | object | Telefone do cliente | **[Objeto phone](#objeto-phone)** | - |
| **address** | object | Endereço do cliente. |  **[Objeto address](#objeto-address)**  |  

### Objeto Address 

| Campo              | Tipo   | Descrição                                                                | Máx. Caract. | 
|--------------------|--------|--------------------------------------------------------------------------|--------------| 
| **city** *         | string | Cidade do endereço                                                       | 100          |
| **state** *        | string | Estado do endereço (com dois caracteres maiúsculos)                      | 2            |
| **number** *       | string | Número do endereço                                                       | 10           |
| **street** *       | string | Rua do endereço                                                          | 100          |
| **complement** *   | string | Complemento do endereço (texto livre)                                    | 100          |
| **postal_code** *  | string | CEP do endereço (http://www.buscacep.correios.com.br/sistemas/buscacep/) | 8            |
| **neighborhood** * | string | Bairro do endereço                                                       | 100          |

### Objeto Phone 

| Campo              | Descrição | Exemplo                                               | Máx. Caract. | 
|--------------------|-----------|-------------------------------------------------------|--------------| 
| **number** *       | string    | Número de telefone                                    | 10           |
| **area_code** *    | string    | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2            |
| **country_code** * | string    | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3            |

### Objeto Disbursement Bank Account

Uma emissão de dívida deve conter as informações bancárias para desembolso, por padrão, uma conta de titularidade do devedor.

| Campo                 | Tipo   | Descrição                                                                                          | Máx. Caract. | 
|-----------------------|--------|----------------------------------------------------------------------------------------------------|--------------|
| name                  | string | Nome do titular da conta                                                                           | 50           |
| document_number       | string | CPF do titular da conta                                                                            | 11           |
| bank_code *           | string | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3            |
| branch_number *       | string | Número da agência (não informar o dígito verificador da agência!)                                  | 4            |
| account_number *      | string | Número da conta (sem o dígito verificador da conta!)                                               | 10           |
| account_digit *       | string | Dígito verificador da conta (informar zero no lugar de letras)                                     | 1            |
| account_type          | enum   | [Enumerador Account Type](#enumerador-account-type) Tipo da conta                                  | 1            |

### Objeto Financial 

O objeto financial descreve as informações financeiras da emissão. Aqui são definidas a taxa de juros, carência e valor 
da dívida entre outros. O Objeto Financeiro possui os campos descritos abaixo, porém é importante notar que alguns
campos são opicionais e excludentes (caso um esteja disponível o outro não deverá ser enviado).

| Campo                      | Tipo   | Descrição                                                                                                     | Máx. Caract. |
|----------------------------|--------|---------------------------------------------------------------------------------------------------------------|--------------|
| **amout**                  | float  | Valor de emissão/nominal da operação de crédito                                                               | -            |
| **interest_type**          | object | **[Enumerador Interest Type](#enumerador-interest-type)** - Método de amortização e forma de cálculo de juros | -            |
| **credit_operation_type**  | object | **[Enumerador Credit Operation Type](#enumerador-credit-operation-type)** - Tipo do contrato de crédito       | -            |
| **annual_interest_rate**   | float  | Taxa de juros pré-fixada expressa em decimal ao ano                                                           | -            |
| **disbursement_date**      | date   | Data do desembolso da operação                                                                                | -            |
| **interest_grace_period**  | int    | Carência de juros (em meses)                                                                                  | -            |
| **principal_grace_period** | int    | Período carência de principal                                                                                 | -            |
| **number_of_installments** | int    | Número de parcelas da operação de crédito                                                                     | -            |
| **fine_configuration**     | object | **[Objeto Fine Configuration](#objeto-fine-configuration)** - Configuração de juros e multa por atraso        | -            |

### Objeto Fine Configuration

No Objeto Fine Configuration são informados os valor de multa e juros por atraso da operação de crédito. 

| Campo                  | Tipo  | Descrição                                                                            | Máx. Caract. |
|------------------------|-------|--------------------------------------------------------------------------------------|--------------|
| **contract_fine_rate** | float | Percentual de multa por atraso                                                       | -            |
| **interest_base**      | enum  | **[Enumerador Interest Base](#enumerador-interest-base)** - Base de cálculo de juros | -            |
| **monthly_rate**       | float | Percentual de juros de atraso ao mês                                                 | -            |

### Objeto Rebates
| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **fee_type** *                  | enum | Tipo da tarifa.                                                                                                                                   | -            | 
| **amount_type** * | object | Tipo do valor a ser cobrado.                                                                                 | -            |
| **amount** *                 | object | Valor da tarifa. Se o tipo da tarifa for percentual, o valor deverá ser entre 0 e 100. | -            |

### Response Body
| Campo                      | Tipo   | Descrição                                                      | Máx. Caract. |
|----------------------------|--------|----------------------------------------------------------------|--------------|
| **data[n].data**           | object | **[Objeto Data](#objeto-data)**                                | -            |
| **data[n].event_datetime** | date   | Momento da geração da operação de crédito                      | -            |
| **data[n].key**            | string | **DEBT-KEY** - Chave única da operação de crédito dentro da QI | -            |
| **data[n].status**         | string | **[Possívies Status de uma dívida](../status_de_uma_divida)**     | -            |
| **data[n].type**           | string | _debt_                                                         | -            |

# Enumeradores

### Enumerador _Person Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **legal**   | Pessoa juridica        |
| **natural**    | Pesso física    |

### Enumerador _Amount Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **tac**   | Tarifa cobrada do tomador. |
| **spread**    | Tarifa cobrada do fundo adicionada ao preço de cessão da operação.    |

### Enumerador _Account Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **checking_account**   | Conta corrente        |
| **deposit_account**    | Conta de depósito     |
| **guaranteed_account** | Conta de garantia     |
| **investment_account** | Conta de investimento |
| **payment_account**    | Conta de pagamento    |
| **saving_account**     | Conta poupança        |
| **salary_account**     | Conta salário         |

### Enumerador _Interest Type_
| Enumerador           | Descrição                                                                                                                                                                |
|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **pre_price_days**   | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado ao dia                                                                                     |
| **pre_price**        | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado em períodos fixos (30 dias)                                                                |
| **pre_sac**          | Método de amortização SAC (amortização constante) com cálculo do juros pré-fixado ao dia                                                                                 |
| **post_sac**         | Método de amortização SAC (amortização constante) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                  |
| **post_price**       | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) em períodos fixos (30 dias) |
| **post_price_days**  | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                      |

### Enumerador _Credit Operation Type_
| Enumerador | Descrição                      |
|------------|--------------------------------|
| **ccb**    | Cédula de Crédito Bancário     |
| **cce**    | Cédula de Crédito à Exportação |
| **cci**    | Cédula de Crédito Imobiliário  |
| **nce**    | Nota de Crédito à Exportação   |
| **ncom**   | Nota Comercial                 |

### Enumerador _Interest Base_
| Enumerador            | Descrição                                                                 |
|-----------------------|---------------------------------------------------------------------------|
| **workdays**          | Base de cálculo de juros em dias úteis considerando um ano de 252 dias    |
| **calendar_days**     | Base de cálculo de juros em dias corridos considerando um ano de 360 dias |
| **calendar_days_365** | Base de cálculo de juros em dias corridos considerando um ano de 365 dias |

### Enumerador _Fee Type_
Cada tipo de fee deve ser previamente habilitado e configurado pela QI Tech

| Enumerador            | Descrição                                                                  |
|-----------------------|----------------------------------------------------------------------------|
| **tac**               | Tarifa de abertura de cadastro                                             |
| **spread**            | Ágio cobrado no valor de aquisição da operação de crédito                  |
| **warranty_analysis** | Tarifa de análise de garantias                                             |
| **ted_fee**           | Tarifa de TED                                                              |
| **spread_ted_fee**    | Ágio da tarifa de TED cobrado no valor de aquisição da operação de crédito |

---

# Exemplos de payload de desembolso

URL: /documentation/emissao_de_divida/emissao/exemplo_payloads_desembolso

### Desembolsar em conta interna QI Tech

ENDPOINT /debt
MÉTODO POST

```json title='Request Body'
{
	"disbursement_bank_accounts": [{
		"bank_code": "329",
		"branch_number": "001",
		"account_number": "6947216",
		"account_digit": "4",
		"document_number": "94632180173",
		"name": "Pedro Felipe Henrique Alves",
		"percentage_receivable": 100
	}]
  ...
}
```

--- 

### Desembolsar com Pix Manual

ENDPOINT /debt
MÉTODO POST

```json title='Request Body'
{
	"disbursement_bank_accounts": [{
			"document_number": "31233261000185",
			"name": "Jorge Augusto Salgado Salhani",
			"pix_transfer_type": "manual",
			"bank_code": "329",
			"branch_number": "0001",
			"account_number": "62400",
			"account_digit": "6",
			"percentage_receivable": 100
		}]
		...
}
```
:::info Tipos de Chave Pix
A “pix_key” pode ser um CPF, CNPJ, E-mail, Celular ou uma Chave Aleatória (UUID), seguindo as seguintes formatações:

CPF: Número inteiro com 11 dígitos.

CNPJ: Número inteiro com 14 dígitos.

E-mail: Texto contendo ao menos um “@”.

Celular: Texto contendo os seguintes valores: “+55” + “DDD do celular“ + “Número Inteiro do Celular com no mínimo 8 e no máximo 9 dígitos”. Ex: “+5511987654321“.

Chave Aleatória: UUID.
:::

---

### Desembolsar com chave Pix

ENDPOINT /debt
MÉTODO POST

```json title='Request Body'

{
	"disbursement_bank_accounts": [{
			"document_number": "31233261000185",
			"name": "Jorge Augusto Salgado Salhani",
			"pix_key": "2f205c99-3161-4120-badd-854039d12de6",
			"pix_transfer_type": "key"
		}]
		...
}
```
---

### Desembolsar com QR Code Pix

ENDPOINT /debt
MÉTODO POST

```json title='Request Body'

{
	"disbursement_bank_accounts": [{
			"qr_code_key": "b76e436e-4767-4b16-91e6-9bfc794f2510"
		}]
		...
}
```

---

### Desembolsar com TED

ENDPOINT /debt
MÉTODO POST

```json title='Request Body'

{
	"disbursement_bank_accounts": [{
			"transfer_method": "ted",
			"bank_code": "329",
			"branch_number": "0001",
			"account_number": "62400",
			"account_digit": "6",
			"document_number": "31233261000185",
			"name": "Jorge Conta destino de desembolso",
			"percentage_receivable": 100
		}]
		...
}
```

---

###  Desembolsar pagando um Boleto

ENDPOINT /debt
MÉTODO POST

```json title='Request Body'

{
	"disbursement_bank_accounts": [{
		"digitable_line": "836400000169072200500006763953020230059001020193",
		"amount_receivable": 1607.22
	}]
		...
}
```

---

# Assinaturas alternativas

URL: /documentation/emissao_de_divida/formalizacao/assinatura_de_contrato

Para o uso de formas alternativas de assinatura é necessario que o dossie de arquivos de comprovação sejá compactado em um arquivo .zip e enviado através do endpoint /upload QI TECH, assim o document_key retornado pode ser ultilizado neste endpoint como forma de assinatura de contrato.

Exemplos de assinaturas alternativas:

- Ligação gravada;

- Analise de crédito;

## Request

ENDPOINT /debt/ DEBT-KEY /signed
MÉTODO POST

**Request Body**

```json
{
    "type": "data-signature",
    "signatures": [
        {
            "signed_object": {
                "raw_text": "Lorem ipsum dolor sit amet, consectetur a....",
                "document_key": "79003de0-2590-455d-9b73-426b8ca284eb",
                "document_md5": "7521bd5621d97af26b2c1721fc4023a8"
            },
            "authenticity": {
                "timestamp": "1970-01-01 00:00:01",
                "document_key": "79003de0-2590-455d-9b73-426b8ca284eb",
                "document_md5": "79003de0-2590-455d-9b73-426b8ca284eb"
            },
            "signer": {
                "name": "IVANILDO DE SENA LIMA",
                "email": "ivanlima2604@gmail.com",
                "phone": {
                    "country_code": "055",
                    "area_code": "11",
                    "number": "999999999"
                },
                "document_number": "61766976204"
            },
            "authentication_type": "zip"
        }
    ]
}
```

## Path Params

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `debt_key` * | string |  Chave da divida devolvida no momento da criação da operação de crédito. | - |

## Body Params

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `type` * | string |  Tipo de assinatura que será enviada. | - |
| `signatures` * | array of objects | Lista contendo objetos de comprovação de assinatura - deve ser enviado no caso de assinatura "type": "data-signature". |  **[Objetos signatures](#objeto-signatures )**|
| `path-pdf-signed` * | string | URL com o PDF assinado - deve ser enviado no caso de assinatura "type": "pdf-signature". | - |

### Objeto signatures

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `signed_object` | object | Objeto contendo o documento que esta sendo assinado. | **[Objetos signed_object](#objeto-signed_object )** |
| `authenticity` | object | objeto com dados de autenticação. | **[Objetos authenticity](#objeto-authenticity )** |
| `signer` | object | Objeto com os dados do signatário. | **[Objeto signer](#objeto-signer )** |
| `authentication_type` *| string | Tipo de assinatura. | - |

### Objeto signed_object

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `raw_text` | string | Texto corrido com os dados do contrato que será assinado (Obrigatório para autenticação tipo opt-in). | - |
| `document_key` | string | DOCUMENT_KEY do arquivo assinado enviado a partir da API 1.1 (obrigatório apenas caso o campo "raw_text" não seja enviado). | - |
| `document_md5` | string | DOCUMENT_MD% do arquivo assinado enviado a partir da API 1.1 (obrigatório apenas caso o campo "raw_text" não seja enviado). | - |

### Objeto authenticity

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `timestamp` *| string | Data da assinatura. | - |
| `document_key` * | string | DOCUMET_KEY retornado pela API 1.1 após o envio do arquivo com as evidencias de assinatura. | - |
| `document_md5` * | string | DOCUMET_MD5 retornado pela API 1.1 após o envio do arquivo com as evidencias de assinatura. | - |
 
### Objeto signer

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `name` *| string | Nome do signatário. | - |
| `email` *| string | E-mail do signatário. | - |
| `phone` | string | Objeto de telefone do signatário. |  **[Objeto phone](#objeto-phone)** |
| `document_number` *| string | Numero de documento do signatário. | - |

### Objeto phone

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
|`country_code` *| string | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3 | 
| `area_code` *| string | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2 |
| `number` *| string |Número de telefone (apenas números) |  10 |

## Response

STATUS 200

**Response Body**

```json
{
  "data": {},
  "event_datetime": "2022-11-07 15:24:47",
  "key": "\<DEBT-KEY\>",
  "status": "signature_received",
  "webhook_type": "debt"
}

```

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Assinatura de contrato com OPT-IN

URL: /documentation/emissao_de_divida/formalizacao/assinatura_opt_in

## Request

ENDPOINT /debt/ DEBT-KEY /signed
MÉTODO POST

**Request Body**

```json
{
    "type": "data_signature",
    "signatures": [
        {
            "signed_object": {
                "raw_text": "Lorem ipsum dolor sit amet, consectetur a...."
            },
            "authenticity": {
                "timestamp": "1970-01-01 00:00:01",
                "ip_address": "179.104.42.245",
                "session_id": "ddb1d063-4fdf-4330-af9c-3316e9142ff3"
            },
            "signer": {
                "name": "IVANILDO DE SENA LIMA",
                "email": "ivanlima2604@gmail.com",
                "phone": {
                    "country_code": "055",
                    "area_code": "11",
                    "number": "999999999"
                },
                "document_number": "61766976204"
            },
            "authentication_type": "opt-in"
        }
    ]
}
```

## Path Params

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `debt_key` * | string |  Chave da divida devolvida no momento da criação da operação de crédito. | - |

## Body Params

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `type` * | string |  Tipo de assinatura que será enviada. | - |
| `signatures` * | array of objects | Lista contendo objetos de comprovação de assinatura - deve ser enviado no caso de assinatura "type": "data-signature". |  **[Objetos signatures](#objeto-signatures )**|

### Objeto signatures

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `signed_object` | object | Objeto contendo o documento que esta sendo assinado. | **[Objetos signed_object](#objeto-signed_object )** |
| `authenticity` | object | objeto com dados de autenticação. | **[Objetos authenticity](#objeto-authenticity )** |
| `signer` | object | Objeto com os dados do signatário. | **[Objeto signer](#objeto-signer )** |
| `authentication_type` *| string | Tipo de assinatura. | - |

### Objeto signed_object

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `raw_text` * | string | Texto corrido com os dados do contrato que será assinado. | - |

### Objeto authenticity

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `timestamp` *| string | Data da assinatura. | - |
| `ip_address` | string | Campo obrigatório para o authentication_type “opt-in” indicando o endereço de IP onde o aceite foi coletado. | - |
| `session_id` | string | ID de identificação de sessão do cliente no momento da assinatura - deve ser consultável e as evidencias da sessão devem ser armazenadas por um período de no mínimo 5 anos (Obrigatório para o authentication_type "opt-in"). | - |
| `geolocation` | object | Campo opcional de geolocalização. | - |
 
### Objeto signer

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `name` *| string | Nome do signatário. | - |
| `email` *| string | E-mail do signatário. | - |
| `phone` | string | Objeto de telefone do signatário. |  **[Objeto phone](#objeto-phone)** |
| `document_number` *| string | Numero de documento do signatário. | - |

### Objeto phone

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
|`country_code` *| string | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3 | 
| `area_code` *| string | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2 |
| `number` *| string |Número de telefone (apenas números) |  10 |

## Response

STATUS 200

**Response Body**

```json
{
  "data": {},
  "event_datetime": "2022-11-07 15:24:47",
  "key": "\<DEBT-KEY\>",
  "status": "signature_received",
  "webhook_type": "debt"
}

```

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Envio do PDF assinado

URL: /documentation/emissao_de_divida/formalizacao/assinatura_pdf

## Request

ENDPOINT /debt/ DEBT-KEY /signed
MÉTODO POST

**Request Body**

```json
{
    "type": "pdf-signature",
    "path-pdf-signed": "https://www.google.com/"
}
```

## Path Params

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `debt_key` * | string |  Chave da divida devolvida no momento da criação da operação de crédito. | - |

## Body Params

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `type` * | string |  Tipo de assinatura que será enviada. | - |
| `path-pdf-signed` * | string | URL com o PDF assinado - deve ser enviado no caso de assinatura "type": "pdf-signature". | - |

## Response

STATUS 200

**Response Body**

```json
{
  "data": {},
  "event_datetime": "2022-11-07 15:24:47",
  "key": "\<DEBT-KEY\>",
  "status": "signature_received",
  "webhook_type": "debt"
}

```

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Assinatura de contrato com selfie

URL: /documentation/emissao_de_divida/formalizacao/assinatura_selfie

A autenticação através de selfie é disponibilizada para os parceiros que utilizam os serviços de nalise de crédito QI Tech, onde a autenticação através de selfie é validada e um ID de comprovação é gerado.

Este ID gerado através dos endpoints de anaise de crédito QI Tech podem ultilizados como assinatura do contrato.

## Request

ENDPOINT /debt/ DEBT-KEY /signed
MÉTODO POST

**Request Body**

```json
{
    "type": "data-signature",
    "signatures": [
        {
            "signed_object": {
                "raw_text": "Lorem ipsum dolor sit amet, consectetur a....",
                "document_key": "79003de0-2590-455d-9b73-426b8ca284eb",
                "document_md5": "7521bd5621d97af26b2c1721fc4023a8"
            },
            "authenticity": {
                "timestamp": "1970-01-01 00:00:01",
                "facial_recognition_key": "79003de0-2590-455d-9b73-426b8ca284eb"
            },
            "signer": {
                "name": "IVANILDO DE SENA LIMA",
                "email": "ivanlima2604@gmail.com",
                "phone": {
                    "country_code": "055",
                    "area_code": "11",
                    "number": "999999999"
                },
                "document_number": "61766976204"
            },
            "authentication_type": "opt-in"
        }
    ]
}
```

## Path Params

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `debt_key` * | string |  Chave da divida devolvida no momento da criação da operação de crédito. | - |

## Body Params

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `type` * | string |  Tipo de assinatura que será enviada. | - |
| `signatures` * | array of objects | Lista contendo objetos de comprovação de assinatura - deve ser enviado no caso de assinatura "type": "data-signature". |  **[Objetos signatures](#objeto-signatures )**|

### Objeto signatures

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `signed_object` | object | Objeto contendo o documento que esta sendo assinado. | **[Objetos signed_object](#objeto-signed_object )** |
| `authenticity` | object | objeto com dados de autenticação. | **[Objetos authenticity](#objeto-authenticity )** |
| `signer` | object | Objeto com os dados do signatário. | **[Objeto signer](#objeto-signer )** |
| `authentication_type` *| string | Tipo de assinatura. | - |

### Objeto signed_object

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `raw_text` | string | Texto corrido com os dados do contrato que será assinado (Obrigatório para autenticação tipo opt-in). | - |
| `document_key` | string | DOCUMENT_KEY do arquivo assinado enviado a partir da API 1.1 (obrigatório apenas caso o campo "raw_text" não seja enviado). | - |
| `document_md5` | string | DOCUMENT_MD5 do arquivo assinado enviado a partir da API 1.1 (obrigatório apenas caso o campo "raw_text" não seja enviado). | - |

### Objeto authenticity

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `timestamp` *| string | Data da assinatura. | - |
| `facial_recognition_key` * | string | Deve conter o facial_recognition_key devolvido pela API de face recognition QI Tech - Este campo só é disponível para o authentication_type "selfie" e exclui a obrigatoriedade do envio de outras comprovações. | - |
 
### Objeto signer

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
| `name` *| string | Nome do signatário. | - |
| `email` *| string | E-mail do signatário. | - |
| `phone` | string | Objeto de telefone do signatário. |  **[Objeto phone](#objeto-phone)** |
| `document_number` *| string | Numero de documento do signatário. | - |

### Objeto phone

| Campo |  Tipo | Descrição | Caracteres | 
|---|---|---|---|
|`country_code` *| string | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3 | 
| `area_code` *| string | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2 |
| `number` *| string |Número de telefone (apenas números) |  10 |

## Response

STATUS 200

**Response Body**

```json
{
  "data": {},
  "event_datetime": "2022-11-07 15:24:47",
  "key": "\<DEBT-KEY\>",
  "status": "signature_received",
  "webhook_type": "debt"
}

```

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Assinatura de contrato

URL: /documentation/emissao_de_divida/formalizacao/introducao_formalizacao

Por padrão a QI Tech realiza a coleta de assinaturas através da QI Sign e o contrato é enviado para os assinantes no momento da emissão, porém ainda existe a possibilidade de o parceiro realizar a coleta de assinaturas de forma independente e enviar o documento assinado ou as evidencias de assinatura para a QI Tech para seguir com a operação.

:::caution **Atenção**

Para que essa coleta seja realizada pelo parceiro e depois o documento assinado seja enviado através de API é necessário solicitar a configuração desse fluxo para o time de suporte QI Tech.
:::

O processo de assinatura pode ser feito de 2 formas:

1 - A coleta de assinaturas é realizada através da plataforma QI Tech;

2 - O parceiro realiza a coleta de assinaturas de forma independente e depois envia o contrato assinado para a QI Tech - Essa possibilidade contempla tanto o envio do PDF assinado quanto o envio de um hash de assinatura;

O fluxo de chamadas muda de acordo com o processo escolhido, podendo seguis as esteiras de chamadas abaixo:

## Fluxo 1
Após solicitar a configuração de fluxo 1 de assinatura para o time de suporte QI Tech, a única chamada necessária para realizar a emissão da divida é a chamada do conjunto 3 de acordo com o tomador de crédito da operação.

A QI tech por sua vez fará a emissão do contrato de crédito pré-configurado e o disparo para assinatura - o acompanhamento da operação poderá ser realizado através da API 5.1 ou através dos callbacks enviados.

A assinatura do documento é através da plataforma QI Sign e pode ocorrer via email, whatsapp ou sms no período de 7 dias após o momento da emissão do contrato.

Por conta da assincronia da assinatura, quando o contrato é assinado pelo tomador, um evento é disparado via webhook ao originador.

## Fluxo 2
Após solicitar a configuração de fluxo 2 de assinatura para o time de suporte QI Tech, existe um fluxo de chamadas que deve ser realizado.

A primeira chamada será obrigatoriamente do conjunto de APIs 3 (de acordo com o tomador de crédito da operação) para realizar a emissão do PDF do contrato e a ultima chamada será a API 4.1 para realizar o envio do contrato já assinado;

No caso da assinatura do documento ser via certificadora, é necessário realizar o envio da url com o PDF assinado na API 4.1;

No caso de assinatura via optin no front, as informações que serão enviadas na API 4.1 serão as evidencias de aceite do cliente.

A QI tech por sua vez seguira o fluxo para o desembolso - o acompanhamento da operação poderá ser realizado através da API 5.1 ou através dos webhooks enviados.

## Tipos de assinatura aceitos

### **pdf-signature**
Esse tipo indica que o PDF emitido através da "/debt" será assinado e link com o PDF assinado será enviado através da API 4.1 como forma de autenticação.

### **data-signature**
Esse tipo indica que o PDF emitido através da "/debt" será assinado através de um hash anexado em sua ultima pagina.

A autenticação através de dados pode ter 3 tipos:

#### **Opt-in**
A assinatura através de opt-in significa que o cliente vai dar o aceite do contrato através do front.

Para que essa assinatura seja valida, alguns dados devem ser enviados obrigatoriamente.

#### **Zip**
A assinatura através de zip contempla o envio de um arquivo de comprovação, como uma ligação gravada.

#### **Selfie**
A autenticação através de selfie é disponibilizada para os parceiros que utilizam os serviços de CaaS QI Tech, onde a autenticação através de selfie é validada e um id de comprovação é gerado.

---

# Gerar Boleto ou PIX para uma Parcela

URL: /documentation/emissao_de_divida/gerar_boleto_ou_pix_para_uma_parcela

Permite gerar um boleto bancário ou código PIX para o pagamento de uma parcela específica de uma operação de crédito.

:::caution Substituição de meio de pagamento 
Caso a parcela ja possua um boleto/pix ativo para pagamento o mesmo será desativado e substituido pelo novo método de pagamento.
:::

## Endpoint

### Request

ENDPOINT /debt/ DEBT-KEY /installment/ INSTALLMENT-KEY / PAYMENT-TYPE
MÉTODO POST
Parâmetros de Caminho
| Parâmetro | Tipo | Descrição |
|-----------|------|-----------|
| DEBT-KEY | string | Chave identificadora da dívida |
| INSTALLMENT-KEY | string | Chave identificadora da parcela |
| PAYMENT-TYPE | string | Tipo de pagamento desejado bankslip (boleto) ou pix (qrcode pix) |
Request Body
```json
{}
```
Response
Response Body
```json
{
  "installment_key": "installment_key",
  "due_date": "2022-09-08",
  "business_due_date": "2022-09-09",
  "pre_fixed_amount": 70.0,
  "principal_amortization_amount": 1000.0,
  "total_amount": 1070.0,
  "bank_slip_key": "bank_slip_key",
  "qr_code_key": "qr_code_key",
  "qr_code_url": "qr_code_url",
  "digitable_line": "digitable_line"
}
```
Objeto Response Body
| Campo | Tipo | Descrição |
|-------|------|-----------|
| installment_key | string | Identificador único da parcela no formato UUID |
| due_date | string | Data de vencimento da parcela no formato YYYY-MM-DD |
| business_due_date | string | Data de vencimento da parcela em dia útil no formato YYYY-MM-DD |
| pre_fixed_amount | number | Valor dos juros |
| principal_amortization_amount | number | Valor do principal a ser amortizado |
| total_amount | number | Valor total da parcela (juros + principal) |
| bank_slip_key | string | Chave identificadora do boleto bancário |
| qr_code_key | string | Chave identificadora do QR code PIX |
| qr_code_url | string | URL para pagamento do QR code PIX |
| digitable_line | string | Linha digitável do boleto bancário |

---

# Introdução

URL: /documentation/emissao_de_divida/introducao

Nesta seção você aprenderá quais os passos necessários para emissão, formalização, desembolso e cancelamento de um contrato de crédito.

## 1. Envio dos documentos necessários para a emissão da dívida

Para realizar a emissão de uma dívida, existem certos critérios regulatórios que devem ser atendidos. Dentre estes critérios, está a identificação do devedor por parte da instituição financeira emissora do crédito. Para cumprimento deste critério, se faz necessário, no mínimo, o envio dos seguintes documentos:

- **Devedor Pessoa Física**: Documento oficial com foto (RG ou CNH);
- **Devedor Pessoa Jurídica**: Contrato/Estatuto Social, Ata de Eleição (no caso de S.A.'s), Documento oficial com foto dos representantes e Procuração (caso existam procuradores);

Para realizar o envio desta documentação vocês devem utilizar nosso [endpoint de upload de documentos](../upload_de_documentos).

:::danger Atenção!

A QI Tech oferece uma solução de Onboarding, OCR para validação de documentos e Anti-fraude.

[Confira aqui a documentação das APIs deste serviço.](/documentation/caas/onboarding/natural_person)

Para receber uma cotação consulte nosso time comercial:

comercial@qitech.com.br ou (11) 2339-4763
:::

## 2. Simulação da dívida

Na QI Tech disponibilizamos aos nossos clientes a possibilidade de [simular os valores uma operação de crédito](simulacao_de_divida_novo) antes da sua emissão de fato. A simulação segue o mesmo padrão da solicitação de emissão de dívida, porém não é necessário informar os dados cadastrais e de conta de desembolso do devedor. Além disso, oferecemos a possibilidade de efetuar diversas simulações com uma única request.

## 3. Emissão da dívida
Com a minuta da operação de crédito definida, o time de suporte QI Tech realizará a parametrização do contrato na plataforma e seu PDF poderá ser emitido através do endpoint de emissão de dívida, conforme os casos abaixo:
- [Para emissão de uma dívida para uma pessoa física.](emissao/emissao_de_divida_pf)
- [Para emissão de uma dívida para uma pessoa jurídica.](emissao/emissao_de_divida_pj)

## 4. Realização da assinatura do contrato de crédito
O Processo de assinatura pode variar de acordo com o produto que será disponibilizado.
Para entender as configurações de assinatura [clique aqui](formalizacao/introducao_formalizacao).

## 5. Desembolso do crédito ao devedor
O desembolso é automático e pode ser configurado de duas formas.
Para entender as configurações de desembolso [clique aqui](emissao/exemplo_payloads_desembolso).

---
## Processo de cessão
Após realizados todos estes passos, passamos para o processo de cessão da dívida que é 100% pilotado pela QI Tech.

Para mais detalhes sobre o desembolso, [clique aqui](desembolso_da_operacao).

---

# Monitoramento do correspondente bancário

URL: /documentation/emissao_de_divida/mcb

## 1. Consultar Agente de crédito: 

### Request

ENDPOINT /mcb/credit_agent/[CPF-DO-AGENTE]
MÉTODO GET

#### QUERY PARAMETERS

| Enumerador                   | Descrição                                                        |
|------------------------------|------------------------------------------------------------------|
| **include_history**          |  Parâmetro necessário para retornar o histórico de pontuação do agente na consulta  |

### Response

ENDPOINT /mcb/credit_agent/[CPF-DO-AGENTE]
MÉTODO GET
HTTP STATUS 200

Response Body

```json
{
    "document_number": "02353050069",
    "credit_agent_status": "blocked",
    "block_reason": "limit_score_reached",
    "credit_agent_history": [
        {
            "credit_agent_status": "active",
            "block_reason": null,
            "current_score": 0,
            "total_score": 0,
            "score_expiration_date": null,
            "suspension_start_date": null,
            "suspension_end_date": null,
            "reference_date": "2025-06-26"
        },
        {
            "credit_agent_status": "blocked",
            "block_reason": "limit_score_reached",
            "current_score": 22,
            "total_score": 22,
            "score_expiration_date": null,
            "suspension_start_date": "2025-08-26",
            "suspension_end_date": null,
            "reference_date": "2025-08-26"
        }
    ]
}
```

### Response body details

| Campo | Tipo | Descrição |
|---| ---| ---|
| `document_number` | string | CPF do agente de crédito.|
| `credit_agent_status` | string | Status do agente de crédito.|
| `block_reason` | string | Motivo de bloqueio do agente de crédito.|
| `current_score` | number | Pontuação atual do agente.|
| `total_score` | number | Pontuação acumulada do agente.|
| `score_expiration_date` | string | Data de expiração da pontuação do agente.|
| `suspension_start_date` | string | Data de início da suspensão do agente.|
| `suspension_end_date` | string | Data de fim da suspensão do agente.|
| `credit_agent_history` | list | Histórico de atualizações do agente.|
| `reference_date` | string | Data de referencia da atualização.|

#### Enumeradores credit_agent_status

| Enumerador                   | Descrição                                            |
|------------------------------|------------------------------------------------------|
| **active**                   | Agente está ativo                                    |
| **blocked**                  | Agente está bloqueado para originar operação         |

#### Enumeradores block_reason

| Enumerador                   | Descrição                                            |
|------------------------------|------------------------------------------------------|
| **limit_score_reached**          | Limite de pontuação atingido informado pela núclea. |
| **expired_certificate**      | Bloqueio devido a certificação expirada.              |
| **rdr_identity_fraud**       | Bloqueio devido a fraude de identidade identificada no sistema de reclamações RDR.          |
| **fraud_report**             | Bloqueio por receber denúncia de fraude por mais de 2 instituições financeiras no MCB.          |
| **operation_irregularity**   | Bloqueio devido a irregularidade de operação         |
| **other**                    | Outros motivos de bloqueio                           |

## 2. Consultar certificação do agente de crédito no CRCP: 

### Request

ENDPOINT /mcb/credit_agent/[CPF-DO-AGENTE]/certificate
MÉTODO GET

STATUS 200

Response Body

```json
{
    "document_number": "12345678911",
    "name": "NOME DO AGENTE DE CREDITO",
    "certificate_list": [
        {
            "certifier_name": "FEBRABAN",
            "certifier_code": "6345",
            "title": "LGPD para Correspondentes no Pais Res 4 935",
            "certificate_number": "1234567891234567",
            "exam_date": "11/01/2022",
            "expiration_date": "11/01/2024",
            "certificate_status": "excluded"
        },
        {
            "certifier_name": "FEBRABAN",
            "certifier_code": "6339",
            "title": "PLDFT em Conta Corrente Poupanca para Correspondente",
            "certificate_number": "1234567891234567",
            "exam_date": "28/12/2023",
            "expiration_date": "28/12/2025",
            "certificate_status": "active"
        },
    ]
}
```

STATUS 404

Response Body

```json
{
	"title": "Not Found",
	"description": "Credit agent not found.",
	"translation": "Agente de crédito não encontrado.",
	"code": "MCB000004"
}
```

### Response body details

| Campo | Tipo | Descrição |
|---| ---| ---|
| `document_number` | string | CPF do agente de crédito.|
| `name` | string | Nome do agente certificado.|
| `certificate_list` | list | Lista de certificados vinculados ao agente de credito.|
| `certifier_name` | string | Nome da empresa certificadora.|
| `certifier_code` | string | Código do tipo do certificado .|
| `title` | string | Titulo do certificado.|
| `certificate_number` | string | Número do certificado.|
| `exam_date` | string | Data do exame da certificação.|
| `expiration_date` | string | Data de expiração do certificado.|
| `certificate_status` | string | Status do certificado na data da consulta.|

#### Enumeradores certificate_status

| Enumerador                   | Descrição                                            |
|------------------------------|------------------------------------------------------|
| **active**                   | Certificado está ativo                               |
| **excluded**                 | Certificado foi excluido pela certificadora          |

---

# Metadata

URL: /documentation/emissao_de_divida/metadata

Objeto que permite a consulta de operações de crédito através de chaves e valores personalizados.

## 1. Criar Metadata

### Objeto Request Body
| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **metadata_key** * | string | Chave metadata                                                                                                                                                          | 100            |
| **metadata_value** * | string | Valor metadata    | 100            |

### Request

ENDPOINT /credit_operation/[CREDIT-OPERATION-KEY]/metadata
MÉTODO POST

Request Body

```json
{
    "metadata_key": "key",
    "metadata_value": "value"
}
```

## 2. Remover Metadata

### Request

ENDPOINT /credit_operation/[CREDIT-OPERATION-KEY]/metadata
MÉTODO DELETE

Request Body

```json
{
    "metadata_key": "key",
    "metadata_value": "value"
  }
```

## 3. Consulta de operação de crédito utilizando Metadata

:::caution 
Na consulta por metadata, os dois campos 'metadata_key' e 'metadata_value' devem ser informados.
:::

### Request

ENDPOINT /credit_operations
MÉTODO GET
<div className='badge
badge--primary'>PARAMETERS page, page_size, metadata_key, metadata_value, credit_operation_status

### Response

Response Body
```json
{
    "data": [
        {
            "credit_operation_key": "cc217253-e89f-4d14-bf89-fb29afaa2895",
            "contract_number": "0000000007/WO",
            "credit_operation_status": "waiting_signature",
            "additional_iof": 3.817322,
            "total_iof": 7.19,
            "original_total_iof": 7.2,
            "attached_documents": [
                {
                    "document_key": "2f7bfc50-d7c0-4d4e-a5ce-d8bba2aeb348",
                    "document_url": "https://storage.googleapis.com/dev-doc-api/documents/2f7bfc50-d7c0-4d4e-a5ce-d8bba2aeb348/sample.pdf",
                    "signature_url": null,
                    "document_type": "document_identification",
                    "signature_required": false,
                    "signed": false
                },
                {
                    "document_key": "568ca6b7-45a8-42e5-a383-e93641625040",
                    "document_url": "b",
                    "signature_url": null,
                    "document_type": "ccb_pre_price",
                    "signature_required": true,
                    "signed": false
                }
            ],
            "annual_cet": 316.4973,
            "assigned": false,
            "assigned_at": null,
            "assignment_amount": 1007.19,
            "issue_amount": 1007.19,
            "disbursed_issue_amount": 1000,
            "final_disbursement_amount": 1000,
            "base_iof": 3.37226774,
            "calculus_correction": null,
            "central_depository": null,
            "cet": 12.62,
            "collateral_constituted": true,
            "collateral_type": null,
            "contract_fee_amount": 0,
            "external_contract_fee_amount": 0,
            "credit_operation_type": "ccb",
            "operation_type": "structured_operation",
            "creditor_bank_account_key": null,
            "custodian": "qi_scd",
            "disbursement_date": "2022-08-08",
            "disbursement_start_date": "2022-08-08",
            "disbursement_end_date": "2022-08-08",
            "first_due_date": "2022-08-18",
            "disbursement_accounts": [
                {
                    "account_branch": "0001",
                    "account_digit": "3",
                    "account_number": "94134",
                    "account_type": null,
                    "disbursement_type": "pix",
                    "amount_receivable": null,
                    "digitable_line": null,
                    "financial_institutions_code_number": 329,
                    "ispb": "32402502",
                    "name": "Teste",
                    "percentage_receivable": 100,
                    "pix_key": "qitech@qitech.com.br",
                    "pix_transfer_key": "0956cf37-5ef6-4a63-9c01-f29b259e1993",
                    "pix_type": "key",
                    "qr_code_key": null
                }
            ],
            "document_certifier": "clicksign",
            "number_of_installments": 3,
            "installments": [
                {
                    "accrual_reference_date": null,
                    "advanced_paid_amount": 0,
                    "bank_slip_key": null,
                    "business_due_date": "2022-08-19",
                    "due_date": "2022-08-18",
                    "calendar_days": 10,
                    "digitable_line": null,
                    "due_interest": 0,
                    "due_principal": 1007.19,
                    "fine_amount": null,
                    "has_interest": true,
                    "installment_key": "5f45b7b4-f7f0-464b-94a7-cdea47f3811b",
                    "installment_status": "created",
                    "installment_type": "principal",
                    "original_due_principal": 1007.19,
                    "original_pre_fixed_amount": 38.24205854,
                    "original_principal_amortization_amount": 351.17794146,
                    "paid_amount": 0,
                    "post_fixed_amount": 0,
                    "original_total_amount": 389.42,
                    "pre_fixed_amount": 38.24205854,
                    "principal_amortization_amount": 351.17794146,
                    "qr_code_key": null,
                    "qr_code_url": null,
                    "renegotiation_proposal_key": null,
                    "tax_amount": 0.28796591,
                    "total_accrual_amount": null,
                    "total_amount": 389.42,
                    "total_paid_amount": 0,
                    "workdays": 8
                },
                {
                    "accrual_reference_date": null,
                    "advanced_paid_amount": 0,
                    "bank_slip_key": null,
                    "business_due_date": "2022-09-20",
                    "due_date": "2022-09-19",
                    "calendar_days": 32,
                    "digitable_line": null,
                    "due_interest": 0,
                    "due_principal": 656.01205854,
                    "fine_amount": null,
                    "has_interest": true,
                    "installment_key": "f844a3ea-bde3-4f94-ada1-607e799b9095",
                    "installment_status": "created",
                    "installment_type": "principal",
                    "original_due_principal": 656.01205854,
                    "original_pre_fixed_amount": 80.33658151,
                    "original_principal_amortization_amount": 309.08341849,
                    "paid_amount": 0,
                    "post_fixed_amount": 0,
                    "original_total_amount": 389.42,
                    "pre_fixed_amount": 80.33658151,
                    "principal_amortization_amount": 309.08341849,
                    "qr_code_key": null,
                    "qr_code_url": null,
                    "renegotiation_proposal_key": null,
                    "tax_amount": 1.06448329,
                    "total_accrual_amount": null,
                    "total_amount": 389.42,
                    "total_paid_amount": 0,
                    "workdays": 21
                },
                {
                    "accrual_reference_date": null,
                    "advanced_paid_amount": 0,
                    "bank_slip_key": null,
                    "business_due_date": "2022-10-19",
                    "due_date": "2022-10-18",
                    "calendar_days": 29,
                    "digitable_line": null,
                    "due_interest": 0,
                    "due_principal": 346.92864005,
                    "fine_amount": null,
                    "has_interest": true,
                    "installment_key": "e6d67f54-8827-40c4-ade0-1b9b8fd03689",
                    "installment_status": "created",
                    "installment_type": "principal",
                    "original_due_principal": 346.92864005,
                    "original_pre_fixed_amount": 42.49135995,
                    "original_principal_amortization_amount": 346.92864005,
                    "paid_amount": 0,
                    "post_fixed_amount": 0,
                    "original_total_amount": 389.42,
                    "pre_fixed_amount": 42.49135995,
                    "principal_amortization_amount": 346.92864005,
                    "qr_code_key": null,
                    "qr_code_url": null,
                    "renegotiation_proposal_key": null,
                    "tax_amount": 2.01981854,
                    "total_accrual_amount": null,
                    "total_amount": 389.42,
                    "total_paid_amount": 0,
                    "workdays": 20
                }
            ],
            "interest_grace_period": 0,
            "interest_payment_month_period": 1,
            "interest_subsidy_amount": 0,
            "interest_subsidy_percentage": 0,
            "interest_type": "pre_price",
            "iof_charge_method": "financed",
            "ipoc_code": "3240250202021371976458320000000007/WO",
            "issue_date": "2022-08-08",
            "issuer_document_number": "37197645832",
            "issuer_name": "Wilker Oliveira\u00e7o",
            "modality": "0202",
            "origin_key": "52539e23-5c01-4b9c-8a68-6ed750ec7bc5",
            "payment_and_settlement_agent": "qi_scd",
            "post_fixed_interest_rate": null,
            "prefixed_interest_rate": {
                "annual_rate": 3,
                "daily_rate": 0.00385824,
                "monthly_rate": 0.12246205,
                "interest_base": "calendar_days"
            },
            "fine_configuration": {
                "contract_fine_rate": 0.02,
                "fine_delay_rate": {
                    "annual_rate": 0.12682503,
                    "daily_rate": 0.00033173,
                    "interest_base": "calendar_days",
                    "monthly_rate": 0.01
                }
            },
            "principal_amortization_month_period": 1,
            "principal_grace_period": 0,
            "purchaser_document_number": "04113929151550",
            "requester_key": "52f36417-368e-4f5b-8841-71e3b9caa72f",
            "requester_identifier_key": null,
            "settlement_bank_account_key": "e7e60779-6605-4af5-bd00-1f465f2c5da5",
            "share_quantity": 2,
            "tax_configuration": {
                "iof_additional_rate": 0.000082,
                "iof_rate": 0.0038
            },
            "third_party_account_key": "96015228-4905-42fc-bda6-e70e0e552b6b",
            "disbursement_options": [
                {
                    "additional_iof": 3.817322,
                    "annual_cet": 316.4973,
                    "assignment_amount": 1007.19,
                    "base_iof": 3.37226774,
                    "calculus_correction": null,
                    "cet": 12.62,
                    "contract_fee_amount": 0,
                    "disbursed_issue_amount": 1000,
                    "disbursement_date": "2022-08-08",
                    "external_contract_fee_amount": 0,
                    "first_due_date": "2022-08-18",
                    "installments": [
                        {
                            "business_due_date": "2022-08-19",
                            "due_date": "2022-08-18",
                            "calendar_days": 10,
                            "due_interest": 0,
                            "due_principal": 1007.19,
                            "fine_amount": null,
                            "has_interest": true,
                            "post_fixed_amount": 0,
                            "pre_fixed_amount": 38.24205854,
                            "principal_amortization_amount": 351.17794146,
                            "tax_amount": 0.28796591,
                            "total_amount": 389.42,
                            "workdays": 8
                        },
                        {
                            "business_due_date": "2022-09-20",
                            "due_date": "2022-09-19",
                            "calendar_days": 32,
                            "due_interest": 0,
                            "due_principal": 656.01205854,
                            "fine_amount": null,
                            "has_interest": true,
                            "post_fixed_amount": 0,
                            "pre_fixed_amount": 80.33658151,
                            "principal_amortization_amount": 309.08341849,
                            "tax_amount": 1.06448329,
                            "total_amount": 389.42,
                            "workdays": 21
                        },
                        {
                            "business_due_date": "2022-10-19",
                            "due_date": "2022-10-18",
                            "calendar_days": 29,
                            "due_interest": 0,
                            "due_principal": 346.92864005,
                            "fine_amount": null,
                            "has_interest": true,
                            "post_fixed_amount": 0,
                            "pre_fixed_amount": 42.49135995,
                            "principal_amortization_amount": 346.92864005,
                            "tax_amount": 2.01981854,
                            "total_amount": 389.42,
                            "workdays": 20
                        }
                    ],
                    "interest_subsidy_amount": 0,
                    "issue_amount": 1007.19,
                    "net_external_contract_fee_amount": 0,
                    "share_quantity": 2,
                    "total_iof": 2,
                    "prefixed_interest_rate": {
                        "annual_rate": 3,
                        "daily_rate": 0.00385824,
                        "monthly_rate": 0.12246205,
                        "interest_base": "calendar_days"
                    }
                }
            ],
            "related_parties": [
                {
                    "company_document_number": null,
                    "email": "teste.teste@yopmail.com",
                    "foundation_date": null,
                    "gender": "male",
                    "individual_document_number": "61592798071",
                    "is_pep": null,
                    "marital_status": null,
                    "mother_name": null,
                    "nationality": null,
                    "person_type": "natural",
                    "related_party_key": "16e3b6a8-bec0-4bd2-8b23-caaad54afd8c",
                    "role_type": "issuer",
                    "trading_name": null,
                    "simples_nacional_participant": null,
                    "spouse_document_number": null,
                    "profession": null,
                    "address": {
                        "city": "Bauru",
                        "complement": null,
                        "neighborhood": "Centro",
                        "number": "343",
                        "postal_code": "17057770",
                        "state": "SP",
                        "street": "Av Um"
                    },
                    "phone": {
                        "area_code": "14",
                        "country_code": "055",
                        "number": "936180266"
                    },
                    "attached_documents": [
                        {
                            "document_key": "2f7bfc50-d7c0-4d4e-a5ce-d8bba2aeb348",
                            "document_url": "https://storage.googleapis.com/dev-doc-api/documents/2f7bfc50-d7c0-4d4e-a5ce-d8bba2aeb348/sample.pdf",
                            "signature_url": null,
                            "document_type": "document_identification",
                            "signature_required": false,
                            "signed": false
                        }
                    ]
                }
            ]
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": 2,
        "rows_per_page": 10,
        "total_pages": 1,
        "total_rows": 1,
        "contain_last_page": true
    }
}

```

---

# Não me perturbe

URL: /documentation/emissao_de_divida/nao_me_perturbe

O "Não Me Perturbe" é uma plataforma criada pelas operadoras de telecomunicações que permite aos consumidores registrarem seus números de telefone para não receberem chamadas de telemarketing. No contexto do crédito consignado, sua utilização foi incorporada como uma das diretrizes da Autoregulação do Crédito Consignado, promovida por entidades como a Febraban, ABBC e CNF, com o objetivo de aumentar a proteção do consumidor e coibir práticas abusivas na oferta de crédito.

Como instituição financeira aderente ao "Não Me Perturbe", implementamos um mecanismo de verificação prévia para garantir que não sejam realizadas ligações ativas para números de telefone cadastrados na lista de bloqueio. Por meio desta API, é possível consultar se um número específico está inscrito na base do "Não Me Perturbe" antes de iniciar qualquer tentativa de contato com o tomador de crédito.

Essa checagem é essencial para assegurar o cumprimento das boas práticas de conduta comercial e o respeito à privacidade dos consumidores.

:::caution Atenção
É necessário realizar a consulta antes de realizar a ligação com o tomador.
:::

## Como usar

Para realizar a consulta, é necessário enviar o número de telefone do tomador para o endpoint abaixo.

ENDPOINT /do_not_disturb?phone_number=11999999999
MÉTODO GET

:::caution Atenção
O número de telefone deve ser enviado no formato DDD + Número, por exemplo: 11999999999.
:::

### Response

STATUS 200 - Número encontrado na lista do "Não me perturbe"
STATUS 404 - Número não encontrado na lista do "Não me perturbe"

:::caution Atenção
Caso o número seja encontrado na lista do "Não me perturbe", a ligação não deverá ser realizada.
:::

---

# Introdução

URL: /documentation/emissao_de_divida/reapresentacao_de_conta_bancaria

Esta página vai auxiliar a reapresentar dados bancários após um erro no desembolso

### 1 - Atualização de conta bancária

Primeiro você deve atualizar os dados da conta bancária do tomador

#### Request

ENDPOINT /debt/DEBT/disbursement_bank_accounts
MÉTODO PUT

Request Body

**Usando dados bancários**

```json
{
	"disbursement_bank_accounts": [{
			"document_number": "31233261000185",
			"name": "Jorge Augusto Salgado Salhani",
			"pix_transfer_type": "manual",
			"bank_code": "329",
			"branch_number": "0001",
			"account_number": "62400",
			"account_digit": "6",
			"percentage_receivable": 100
		}]
}
```

**Usando chave pix**

```json
{
	"disbursement_bank_accounts": [{
			"document_number": "31233261000185",
			"name": "Jorge Augusto Salgado Salhani",
			"pix_key": "2f205c99-3161-4120-badd-854039d12de6",
			"pix_transfer_type": "key"
		}]
}
```

### 2 - Atualização da data de desembolso

Após, você deve atualizar as datas de desembolso

#### Request

ENDPOINT /debt/DEBT/disbursement_option
MÉTODO PATCH

Request Body

**Atualização de data de desembolso**

```json
{
    "disbursement_date": "2025-11-28",
    "status": "active"
}
```

---

# Reenviar documentos das partes relacionadas ao contrato de crédito

URL: /documentation/emissao_de_divida/reenviar_documentos_das_partes_relacionadas

## Request

ENDPOINT /debt/ DEBT-KEY /related_party/ RELATED-PARTY-KEY /attached_document
MÉTODO POST

**Request Body**

```json
{
    "document_identification": "2893fc74-88fd-4cc9-a5c6-8a63d9d00f41",
    "document_identification_back": "e881ddf4-bc9a-48e0-9555-cac979f65431",
    "wedding_certificate": "955a0e36-1abd-4efd-868a-f0b3d53bc585",
    "proof_of_residence": "ea5f7b08-77fd-4adb-8bf5-f86379c28ee3",
    "company_statute": "150292ad-be66-4ba0-a306-0ceda20616f0",
    "directors_election_minute": "ca37979e-6f11-4465-bf3b-69cd8307549c",
    "insurance_agreement":"4be38197-e8a9-4c96-882d-99e38a7199a7",
    "loan_agreement_evidence": "494598fd-c226-4332-a500-591ae3684673"
}

```

### Path Params

| Campo | Tipo | Descrição |
|---|---|---|
| `debt_key` * | string | debt_key da operação. |
| `related_party_key` * | string |  key da parte relacionada que os documentos serão enviados. |

### Body Params

| Campo | Tipo | Descrição | Caracteres | 
|---|---| ---| ---|
| `document_identification` | string | Frente do RG ou CNH para person_type "natural". | chave uuid | 
| `document_identification_back` | string | Verso do RG ou CNH para person_type "natural". | chave uuid | 
| `wedding_certificate` | string |Certidão de casamento para person_type "natural". | chave uuid | 
| `proof_of_residence` | string | Comprovante de residência para person_type "natural". | chave uuid | 
| `company_statute` | string | Estatuto social para person_type "legal". | chave uuid | 
| `insurance_agreement` | string | Evidência da contratação de seguro para a operação de crédito | chave uuid | 
| `loan_agreement_evidence` | string | Evidência do contrato de empréstimo. | chave uui

## Response

STATUS 201

**Response Body**

```json
"
{}
"
```

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Ações pós-desembolso

URL: /documentation/emissao_de_divida/reprocessar_acao_pos_desembolso

## 1. Webhooks de sucesso ou falha na execução de uma ação pós desembolso

:::info Aviso
A *action_key* é a chave identificadora de uma ação pós desembolso.

:::

### Sucesso

WEBHOOK_TYPE debt_actions
STATUS success

**Boleto**

```json title='Webhook Body'
{
    "key": "19dee101-a781-4308-b7d1-f4426c2df111",
    "data": [
        {
            "status": "done",
            "action_key": "02f6392b-65d3-4f3e-ae91-cd5b371c7111",
            "action_data": {
                "digitable_line": "11193708089000014656468000284304297860007686111"
            },
            "action_type": "bankslip_payment",
            "action_error": null,
            "execution_data": {
                "bank_slip": {
                    "payer": {
                        "name": "PAGADOR",
                        "document_number": "33128940002",
                        "document_number_formatted": "331.289.400-02"
                    },
                    "beneficiary": {
                        "name": "TESTES FINANCIAMENTO",
                        "document_number": "16832953000156",
                        "document_number_formatted": "16.832.953/0001-56"
                    },
                    "payment_key": "318aa3a0-01ca-41ac-9e0f-23c24bc67fc9",
                    "payment_date": "2024-07-23",
                    "digitable_line": "11193708089000014656468000284304297860007686111",
                    "expiration_date": "2024-07-23",
                    "tax_collection_info": {},
                    "payment_date_formatted": "23/07/2024",
                    "expiration_date_formatted": "23/07/2024",
                    "financial_institution_name": "BCO BRADESCO S.A.",
                    "financial_institution_compe_number": "237"
                },
                "origin_key": "318aa3a0-01ca-41ac-9e0f-23c24bc67111",
                "transacted_at": "2024-07-23 21:31:09",
                "source_account": {
                    "owner_name": "PAGADOR",
                    "account_digit": "5",
                    "account_branch": "0001",
                    "account_number": "4588111",
                    "owner_document_number": "33128940002",
                    "financial_institution_name": "QI SCD S.A.",
                    "owner_document_number_formatted": "331.289.400-02",
                    "financial_institution_compe_number": 329
                },
                "source_subtype": "bank_slip_payment",
                "transaction_key": "a7af6954-3bc5-4f7e-a872-b4e47800d111",
                "transacted_at_br": "2024-07-23 18:31:09",
                "pdf_encoded_string": "BASE 64 DO PDF DO COMPROVANTE",
                "transaction_amount": 76862.27,
                "transacted_at_formatted": "23/07/2024, 21:31:09",
                "transacted_at_br_formatted": "23/07/2024, 18:31:09",
                "transaction_amount_formatted": "R$ 76.862,27",
                "source_subtype_translation_ptbr": "Pagamento de Boleto"
            }
        }
    ],
    "webhook_type": "debt_actions",
    "event_datetime": "2024-07-23 21:31:18"
}
```

**TED**

```json title='Webhook Body'
{
    "key": "25f14329-3734-40d8-bc5a-c5349b3cd111",
    "data": [
        {
            "status": "done",
            "action_key": "650e9041-65ec-4fd8-9b11-01e37316cf94",
            "action_data": {
                "qr_code": null,
                "destination": {
                    "name": "TOMAR DIVIDA",
                    "account_digit": "1",
                    "account_branch": "0001",
                    "account_number": "12214111",
                    "document_number": "61359908021",
                    "financial_institution_code_number": "380"
                },
                "digitable_line": null,
                "pix_transfer_type": null,
                "transaction_amount": 500
            },
            "action_type": "funds_transfer",
            "action_error": null,
            "execution_data": {
                "origin_key": "ec2112a3-9b75-4cf3-b18e-7af06857fdc5",
                "transacted_at": "2024-07-04 10:03:25",
                "source_account": {
                    "owner_name": "Conta de Origem",
                    "account_digit": "9",
                    "account_branch": "0001",
                    "account_number": "2845000",
                    "owner_document_number": "49783394487",
                    "financial_institution_name": "QI SCD S.A.",
                    "owner_document_number_formatted": "494.924.100-10",
                    "financial_institution_compe_number": 329
                },
                "source_subtype": "withdrawal",
                "target_account": {
                    "owner_name": "CONTA DESTINO",
                    "account_type": "checking_account",
                    "account_digit": "1",
                    "account_branch": "0001",
                    "account_number": "12214111",
                    "account_type_str": "Conta Corrente",
                    "owner_document_number": "61359908021",
                    "financial_institution_name": "PICPAY",
                    "owner_document_number_formatted": "613.599.080-21",
                    "financial_institution_compe_number": "380"
                },
                "transaction_key": "eeb35946-099f-4d40-8930-881aa3730d55",
                "transacted_at_br": "2024-07-04 07:03:25",
                "pdf_encoded_string": "BASE 64 DO PDF DO COMPROVANTE",
                "transaction_amount": 500,
                "transacted_at_formatted": "04/07/2024, 10:03:25",
                "transacted_at_br_formatted": "04/07/2024, 07:03:25",
                "transaction_amount_formatted": "R$ 500,00",
                "source_subtype_translation_ptbr": "Transferência"
            }
        }
    ],
    "webhook_type": "debt_actions",
    "event_datetime": "2024-07-04 10:03:33"
}
```

  

### Erro na ação pós-desembolso

Em caso de erro no pagamento da ação pós-desembolso, o parceiro será notificado através do seguinte webhook:

WEBHOOK_TYPE after_disbursement_action_update
STATUS error

**Boleto**

```json title='Webhook Body'
{
	"key": "e358e7e3-17b8-4aab-9da1-92f6b78dea00",
	"data": {
		"status": "error",
		"action_key": "e2495e5a-df32-4826-b6f0-419014d3c35a",
		"error_data": {
			"error_code": "QIT000007",
			"description": "Account blocked balance cannot be negative."
		},
		"action_data": {
            "digitable_line": "10495419967200010004900031456924592920008049295"
		},
		"action_type": "bankslip_payment",
		"execution_data": null
	},
	"webhook_type": "after_disbursement_action_update",
	"event_datetime": "2023-03-22 12:06:38"
}
```

**TED**

```json title='Webhook Body'
{
	"key": "e358e7e3-17b8-4aab-9da1-92f6b78dea00",
	"data": {
		"status": "error",
		"action_key": "e2495e5a-df32-4826-b6f0-419014d3c35a",
		"error_data": {
			"error_code": "QIT000007",
			"description": "Account blocked balance cannot be negative."
		},
		"action_data": {
			"destination": {
			    "name": "Nome Credor Original",
				"account_digit": "0",
				"account_branch": "0897",
				"account_number": "20001",
				"document_number": "87163234000138",
				"financial_institution_code_number": "341"
			},
			"transaction_amount": 1000
		},
		"action_type": "funds_transfer",
		"execution_data": null
	},
	"webhook_type": "after_disbursement_action_update",
	"event_datetime": "2023-03-22 12:06:38"
}
```

### Estorno da TED da ação pós-desembolso

Caso a TED realizada na ação pós-desembolso seja devolvida pela instituição financeira destinatária, o parceiro será notificado através do seguinte webhook:

WEBHOOK_TYPE after_disbursement_action_update
STATUS refused

```json title='Webhook Body'
{
	"key": "f4b5c36a-2aa1-4865-9678-e5a6fa585845",
	"data": {
		"status": "refused",
		"action_key": "cf3b8809-36dc-4574-8763-3600e413cf5c",
		"error_data": {
			"code": "agencia_conta_invalida",
			"description": "Agência ou Conta Destinatária do Crédito Inválida"
		},
		"action_data": {
			"destination": {
				"name": "SILVANA RAMOS DOS SANTOS",
				"account_digit": "1",
				"account_branch": "0150",
				"account_number": "301771620",
				"document_number": "30874011884",
				"financial_institution_code_number": "237"
			},
			"transaction_amount": 3200
		},
		"action_type": "funds_transfer",
		"action_amount": 3200.0
	},
	"webhook_type": "after_disbursement_action_update",
	"event_datetime": "2023-03-23 14:46:39"
}
```

## 2. Reprocessar ação pós desembolso alterando dados da ação

Caso ocorra um erro/estorno no pagamento da ação pós-desembolso, ela pode ser retentada através do seguinte endpoint

### Path Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `action_key` * | string | Chave da ação devolvida no momento da criação da operação de crédito. | 

### Request

ENDPOINT /baas/action/ ACTION-KEY
MÉTODO PATCH

Request Body

**TED**

```json
{
    "destination": {
        "name": "Nome Credor Original",
        "account_digit": "0",
        "account_branch": "0897",
        "account_number": "20001",
        "document_number": "87163234000138",
        "financial_institution_code_number": "341"
    },
    "transaction_amount": 4736.07
}
```
  
  
**Linha digitável Boleto**

```json
{
    "digitable_line": "10495419967200010004900031456924592920008041111"
}
```

**Pix Copia e Cola**

```json
{
    "qr_code": "00020126930014br.gov.bcb.pix2571qrcode-h.sandbox.qitech.app/bacen/cobv/66e9a02c1c304b1eacf7ba984eea19ce5204000053039865802BR5925BANKSOFTTECNOLOGIALTDA(EB6008SaoPaulo61080145200062070503***6304E27B",
    "pix_transfer_type": "qr_code",
    "transaction_amount": "299.00"
}
```

## 3. Reprocessar ação pós desembolso sem alteração de dados

### Request

ENDPOINT /baas/action/action_retry/ ACTION-KEY
MÉTODO PATCH

:::info Informação
As respostas dos dois endpoints são as mesmas
:::

### Response

STATUS 200

Response Body

```json
{
	"action_data": {
		"origin_key": "8b8742f0-0b7c-4939-bfcf-9bae8c60c088",
		"pdf_encoded_string": "\<BASE 64 DO PDF DO COMPROVANTE\>",
		"source_account": {
			"account_branch": "0001",
			"account_digit": "1",
			"account_number": "2788652",
			"financial_institution_compe_number": 329,
			"financial_institution_name": "QI SCD S.A.",
			"owner_document_number": "12345678911",
			"owner_document_number_formatted": "123.456.789-11",
			"owner_name": "Nome do titular da conta"
		},
		"source_subtype": "withdrawal",
		"source_subtype_translation_ptbr": "Transferência",
		"target_account": {
			"account_branch": "1012",
			"account_digit": "1",
			"account_number": "12345",
			"account_type": "checking_account",
			"account_type_str": "Conta Corrente",
			"financial_institution_compe_number": "341",
			"financial_institution_name": "ITAÚ UNIBANCO S.A.",
			"owner_document_number": "12345678911",
			"owner_document_number_formatted": "125.220.107-94",
			"owner_name": "Nome do titular da conta destino"
		},
		"transacted_at": "2023-03-14 17:57:20",
		"transacted_at_br": "2023-03-14 14:57:20",
		"transacted_at_br_formatted": "14/03/2023, 14:57:20",
		"transacted_at_formatted": "14/03/2023, 17:57:20",
		"transaction_amount": 2000,
		"transaction_amount_formatted": "R$ 2.000,00",
		"transaction_key": "ae139d20-396e-4c7e-a675-a8cb01160f5d"
	},
	"action_key": "fe3f251d-6b85-4d35-96dd-08fc37d09a82"
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

STATUS 402

Response Body

```json
{
  "data": "{\"title\": \"Block Balance Error\", \"description\": \"Impossible to block an amount greater than account balance\", \"translation\": \"Não é possível blockear uma quantidade maior do que o saldo na conta\", \"extra_fields\": {}, \"code\": \"ACC000018\"}"
}

```

---

# Alterar Dados de Desembolso

URL: /documentation/emissao_de_divida/reprocessar_multiplas_datas/trocar_conta

## Request

ENDPOINT /debt/ DEBT-KEY /disbursement_bank_accounts
MÉTODO PUT

### Path Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `debt_key` *(obrigatório)* | string | ID da divida emitida. |

**Request Body**

```json
{
	"disbursement_bank_accounts": [{
		"bank_code": "329",
		"branch_number": "001",
		"account_number": "6947216",
		"account_digit": "4",
		"account_type": "checking_account",
		"document_number": "946321801",
		"name": "Pedro Felipe Henrique Alves",
		"percentage_receivable": 100
	}]
}
```

### Body Params

Uma emissão de dívida deve conter as informações bancárias para desembolso, por padrão, uma conta de titularidade do devedor.

| Campo                 | Tipo   | Descrição                                                                                          | Máx. Caract. | 
|-----------------------|--------|----------------------------------------------------------------------------------------------------|--------------|
| name *                  | string | Nome do titular da conta                                                                           | 50           |
| document_number *      | string | CPF do titular da conta                                                                            | 11           |
| bank_code *           | string | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3            |
| branch_number *       | string | Número da agência (não informar o dígito verificador da agência!)                                  | 4            |
| account_number *      | string | Número da conta (sem o dígito verificador da conta!)                                               | 10           |
| account_digit *       | string | Dígito verificador da conta (informar zero no lugar de letras)                                     | 1            |
| account_type          | enum   | [Enumerador Account Type](#enumerador-account-type) Tipo da conta                                  | 1            |

## Response

STATUS 200

**Request Body**

```json
{}
```

STATUS 400

**Request Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Alterar Data de Desembolso

URL: /documentation/emissao_de_divida/reprocessar_multiplas_datas/trocar_data

## Request

ENDPOINT /debt/ DEBT-KEY /disbursement_option
MÉTODO PATCH

### Path Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `debt_key` *(obrigatório)* | string | ID da divida emitida. |

**Request Body**

```json
{
    "disbursement_date": "2023-06-30",
    "status": "active"
}
```

### Body Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `disbursement_date` | string | Data de desembolso da operação. |
| `status` | string | Indica se a data deve ser configurada ou removida. |

## Response

STATUS 200

**Request Body**

```json
{
	"data": {
		"additional_iof": 17.770586,
		"annual_cet": 31.682,
		"assignment_amount": 4676.97,
		"base_iof": 127.71954759,
		"borrower": {
			"document_number": "88229032939",
			"name": "Teste",
			"related_party_key": "13d210c8-d39a-40f9-bd16-b6ab81d35fa8"
		},
		"cet": 2.32,
		"collaterals": [],
		"contract": {
			"number": "0000051370/TG",
			"urls": [
				"https://storage.googleapis.com/dev-doc-api/documents/a715175f-8d29-4929-9576-4b692d1e9610/BEATRIZCOUTODECARVALHO-TESTE-CCB-0000051370-20230707151409.pdf"
			]
		},
		"contract_fee_amount": 0.5,
		"contract_fees": [{
			"fee_amount": 0.5,
			"fee_type": "spread"
		}],
		"disbursed_issue_amount": 4530.98,
		"entry": null,
		"external_contract_fee_amount": 0.0,
		"external_contract_fees": [{
			"description": null,
			"fee_amount": 0.0,
			"fee_type": "spread",
			"net_fee_amount": 0.0,
			"rebate_bank_account": null,
			"tax_amount": 0.0
		}],
		"installments": [{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2023-08-29",
				"calendar_days": 50,
				"digitable_line": null,
				"due_date": "2023-08-28",
				"due_interest": 0.0,
				"due_principal": 4676.47,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "29c6e226-b710-4e3b-a5d6-62119b9d9547",
				"installment_number": 1,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 4676.47,
				"original_pre_fixed_amount": 164.86042852,
				"original_principal_amortization_amount": 25.13957148,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 164.86042852,
				"principal_amortization_amount": 25.13957148,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 0.10307224,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 36
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2023-09-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2023-09-28",
				"due_interest": 0.0,
				"due_principal": 4651.33042852,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "322d7973-4d2a-41a6-ad1b-2fef59c551b7",
				"installment_number": 2,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 4651.33042852,
				"original_pre_fixed_amount": 100.99385125,
				"original_principal_amortization_amount": 89.00614875,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 100.99385125,
				"principal_amortization_amount": 89.00614875,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 0.59117884,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 22
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2023-10-31",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2023-10-28",
				"due_interest": 0.0,
				"due_principal": 4562.32427977,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "a2d43778-0342-48f7-a0d2-c385773fa545",
				"installment_number": 3,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 4562.32427977,
				"original_pre_fixed_amount": 95.83242026,
				"original_principal_amortization_amount": 94.16757974,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 95.83242026,
				"principal_amortization_amount": 94.16757974,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 0.85711331,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2023-11-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2023-11-28",
				"due_interest": 0.0,
				"due_principal": 4468.15670003,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "9126aa9a-6bb0-44c6-8ea4-61fd68fcd936",
				"installment_number": 4,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 4468.15670003,
				"original_pre_fixed_amount": 97.01661904,
				"original_principal_amortization_amount": 92.98338096,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 97.01661904,
				"principal_amortization_amount": 92.98338096,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 1.08269849,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2023-12-29",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2023-12-28",
				"due_interest": 0.0,
				"due_principal": 4375.17331907,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "f0b363f9-0aca-4154-b14a-2c7933374abc",
				"installment_number": 5,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 4375.17331907,
				"original_pre_fixed_amount": 91.90128137,
				"original_principal_amortization_amount": 98.09871863,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 91.90128137,
				"principal_amortization_amount": 98.09871863,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 1.38358433,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-01-30",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2024-01-28",
				"due_interest": 0.0,
				"due_principal": 4277.07460043,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "c7c41dee-28a3-4b37-b2de-256fa0c9a0a9",
				"installment_number": 6,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 4277.07460043,
				"original_pre_fixed_amount": 92.86767319,
				"original_principal_amortization_amount": 97.13232681,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 92.86767319,
				"principal_amortization_amount": 97.13232681,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 1.61686471,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-02-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2024-02-28",
				"due_interest": 0.0,
				"due_principal": 4179.94227362,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "ee5d7b27-5160-49d3-9eb0-ec5a2f20e50d",
				"installment_number": 7,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 4179.94227362,
				"original_pre_fixed_amount": 90.75864903,
				"original_principal_amortization_amount": 99.24135097,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 90.75864903,
				"principal_amortization_amount": 99.24135097,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 1.90424304,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-04-01",
				"calendar_days": 29,
				"digitable_line": null,
				"due_date": "2024-03-28",
				"due_interest": 0.0,
				"due_principal": 4080.70092265,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "a9ec8c98-0061-4956-8af8-93d5742f6c1f",
				"installment_number": 8,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 4080.70092265,
				"original_pre_fixed_amount": 82.82984224,
				"original_principal_amortization_amount": 107.17015776,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 82.82984224,
				"principal_amortization_amount": 107.17015776,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 2.31123162,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-04-30",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2024-04-28",
				"due_interest": 0.0,
				"due_principal": 3973.53076489,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "bfd2ceab-74d4-4ff4-b099-c6ab986b7acb",
				"installment_number": 9,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 3973.53076489,
				"original_pre_fixed_amount": 86.2768573,
				"original_principal_amortization_amount": 103.7231427,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 86.2768573,
				"principal_amortization_amount": 103.7231427,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 2.50055752,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-05-29",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2024-05-28",
				"due_interest": 0.0,
				"due_principal": 3869.80762219,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "eb41f47f-ffcd-4d4d-8834-600cfe95b2a4",
				"installment_number": 10,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 3869.80762219,
				"original_pre_fixed_amount": 81.2859859,
				"original_principal_amortization_amount": 108.7140141,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 81.2859859,
				"principal_amortization_amount": 108.7140141,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 2.88831393,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-07-01",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2024-06-28",
				"due_interest": 0.0,
				"due_principal": 3761.09360809,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "13183e83-70cf-4990-a3cc-c979e43015b9",
				"installment_number": 11,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 3761.09360809,
				"original_pre_fixed_amount": 81.6642313,
				"original_principal_amortization_amount": 108.3357687,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 81.6642313,
				"principal_amortization_amount": 108.3357687,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 3.15365423,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 22
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-07-30",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2024-07-28",
				"due_interest": 0.0,
				"due_principal": 3652.75783939,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "a2ed3748-8567-4cab-a1ff-0cf6b2698d15",
				"installment_number": 12,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 3652.75783939,
				"original_pre_fixed_amount": 76.72681698,
				"original_principal_amortization_amount": 113.27318302,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 76.72681698,
				"principal_amortization_amount": 113.27318302,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 3.39026637,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-08-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2024-08-28",
				"due_interest": 0.0,
				"due_principal": 3539.48465638,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "1e009f23-2044-40ba-8249-a9077a2391b9",
				"installment_number": 13,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 3539.48465638,
				"original_pre_fixed_amount": 76.85245907,
				"original_principal_amortization_amount": 113.14754093,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 76.85245907,
				"principal_amortization_amount": 113.14754093,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 3.3865059,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 23
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-10-01",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2024-09-28",
				"due_interest": 0.0,
				"due_principal": 3426.33711545,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "e475d886-a596-4541-bcae-4986bf7c3609",
				"installment_number": 14,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 3426.33711545,
				"original_pre_fixed_amount": 74.39569823,
				"original_principal_amortization_amount": 115.60430177,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 74.39569823,
				"principal_amortization_amount": 115.60430177,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 3.46003675,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 22
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-10-29",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2024-10-28",
				"due_interest": 0.0,
				"due_principal": 3310.73281367,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "5584643d-4e65-4e99-9483-b3c1b051fd63",
				"installment_number": 15,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 3310.73281367,
				"original_pre_fixed_amount": 69.54252108,
				"original_principal_amortization_amount": 120.45747892,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 69.54252108,
				"principal_amortization_amount": 120.45747892,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 3.60529234,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-11-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2024-11-28",
				"due_interest": 0.0,
				"due_principal": 3190.27533475,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "23a0002c-49bf-4c22-a506-d89ae4372249",
				"installment_number": 16,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 3190.27533475,
				"original_pre_fixed_amount": 69.27011321,
				"original_principal_amortization_amount": 120.72988679,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 69.27011321,
				"principal_amortization_amount": 120.72988679,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 3.61344551,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 22
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2024-12-31",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2024-12-28",
				"due_interest": 0.0,
				"due_principal": 3069.54544796,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "5efbf6d0-84bc-4041-8a33-e9ab1bf82969",
				"installment_number": 17,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 3069.54544796,
				"original_pre_fixed_amount": 64.47633798,
				"original_principal_amortization_amount": 125.52366202,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 64.47633798,
				"principal_amortization_amount": 125.52366202,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 3.7569232,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-01-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2025-01-28",
				"due_interest": 0.0,
				"due_principal": 2944.02178595,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "e9bb5d68-8c93-43a4-b240-d68b0d1d6d08",
				"installment_number": 18,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 2944.02178595,
				"original_pre_fixed_amount": 63.9232354,
				"original_principal_amortization_amount": 126.0767646,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 63.9232354,
				"principal_amortization_amount": 126.0767646,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 3.77347756,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-03-05",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2025-02-28",
				"due_interest": 0.0,
				"due_principal": 2817.94502134,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "d6c34059-ba9b-4345-b937-35293f34a3dd",
				"installment_number": 19,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 2817.94502134,
				"original_pre_fixed_amount": 61.18574366,
				"original_principal_amortization_amount": 128.81425634,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 61.18574366,
				"principal_amortization_amount": 128.81425634,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 3.85541069,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 23
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-03-31",
				"calendar_days": 28,
				"digitable_line": null,
				"due_date": "2025-03-28",
				"due_interest": 0.0,
				"due_principal": 2689.130765,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "63fa4169-f1a9-43f0-a059-70e2df35ac7e",
				"installment_number": 20,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 2689.130765,
				"original_pre_fixed_amount": 52.68330953,
				"original_principal_amortization_amount": 137.31669047,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 52.68330953,
				"principal_amortization_amount": 137.31669047,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.10988855,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 18
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-04-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2025-04-28",
				"due_interest": 0.0,
				"due_principal": 2551.81407453,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "859ee4fa-f781-419b-8888-731b0f8fc01b",
				"installment_number": 21,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 2551.81407453,
				"original_pre_fixed_amount": 55.40726995,
				"original_principal_amortization_amount": 134.59273005,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 55.40726995,
				"principal_amortization_amount": 134.59273005,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.02836041,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 19
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-05-29",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2025-05-28",
				"due_interest": 0.0,
				"due_principal": 2417.22134448,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "d6e25388-d54d-42ca-8b46-ac70fa7aeb23",
				"installment_number": 22,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 2417.22134448,
				"original_pre_fixed_amount": 50.7741553,
				"original_principal_amortization_amount": 139.2258447,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 50.7741553,
				"principal_amortization_amount": 139.2258447,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.16702953,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-07-01",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2025-06-28",
				"due_interest": 0.0,
				"due_principal": 2277.99549978,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "d92f0e38-fa48-48c2-a79e-e8316fe5c870",
				"installment_number": 23,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 2277.99549978,
				"original_pre_fixed_amount": 49.46187558,
				"original_principal_amortization_amount": 140.53812442,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 49.46187558,
				"principal_amortization_amount": 140.53812442,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.20630606,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-07-29",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2025-07-28",
				"due_interest": 0.0,
				"due_principal": 2137.45737535,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "04aa2658-8fbe-4147-8a14-03c7bba13577",
				"installment_number": 24,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 2137.45737535,
				"original_pre_fixed_amount": 44.89766385,
				"original_principal_amortization_amount": 145.10233615,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 44.89766385,
				"principal_amortization_amount": 145.10233615,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.34291292,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-08-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2025-08-28",
				"due_interest": 0.0,
				"due_principal": 1992.35503921,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "af5b3343-7d91-46cf-a908-bf24e4e79907",
				"installment_number": 25,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 1992.35503921,
				"original_pre_fixed_amount": 43.25979382,
				"original_principal_amortization_amount": 146.74020618,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 43.25979382,
				"principal_amortization_amount": 146.74020618,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.39193437,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 23
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-09-30",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2025-09-28",
				"due_interest": 0.0,
				"due_principal": 1845.61483303,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "1e7981d6-4274-49f1-ab6e-a98d97485e78",
				"installment_number": 26,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 1845.61483303,
				"original_pre_fixed_amount": 40.07363891,
				"original_principal_amortization_amount": 149.92636109,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 40.07363891,
				"principal_amortization_amount": 149.92636109,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.48729599,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-10-29",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2025-10-28",
				"due_interest": 0.0,
				"due_principal": 1695.68847194,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "a07e171b-e2a6-49b4-9d6d-8124fff9d736",
				"installment_number": 27,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 1695.68847194,
				"original_pre_fixed_amount": 35.61823023,
				"original_principal_amortization_amount": 154.38176977,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 35.61823023,
				"principal_amortization_amount": 154.38176977,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.62064637,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 22
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-12-01",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2025-11-28",
				"due_interest": 0.0,
				"due_principal": 1541.30670217,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "0cd84cc5-0dd0-4318-99f9-178843d3d5b5",
				"installment_number": 28,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 1541.30670217,
				"original_pre_fixed_amount": 33.46622796,
				"original_principal_amortization_amount": 156.53377204,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 33.46622796,
				"principal_amortization_amount": 156.53377204,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.6850558,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 23
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2025-12-30",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2025-12-28",
				"due_interest": 0.0,
				"due_principal": 1384.77293013,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "24dc3c8b-ac3a-496e-8646-a1e66051090b",
				"installment_number": 29,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 1384.77293013,
				"original_pre_fixed_amount": 29.08739451,
				"original_principal_amortization_amount": 160.91260549,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 29.08739451,
				"principal_amortization_amount": 160.91260549,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.81611428,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 19
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2026-01-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2026-01-28",
				"due_interest": 0.0,
				"due_principal": 1223.86032464,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "bba128ee-b195-4a65-9caf-3ebe452d9d10",
				"installment_number": 30,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 1223.86032464,
				"original_pre_fixed_amount": 26.57354762,
				"original_principal_amortization_amount": 163.42645238,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 26.57354762,
				"principal_amortization_amount": 163.42645238,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.89135372,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 22
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2026-03-03",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2026-02-28",
				"due_interest": 0.0,
				"due_principal": 1060.43387227,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "35a03898-607a-4194-804c-bfd375c3ea45",
				"installment_number": 31,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 1060.43387227,
				"original_pre_fixed_amount": 23.02508598,
				"original_principal_amortization_amount": 166.97491402,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 23.02508598,
				"principal_amortization_amount": 166.97491402,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 4.99755918,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2026-03-31",
				"calendar_days": 28,
				"digitable_line": null,
				"due_date": "2026-03-28",
				"due_interest": 0.0,
				"due_principal": 893.45895824,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "0a8a83db-835d-46bc-8e24-c542c44d6e68",
				"installment_number": 32,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 893.45895824,
				"original_pre_fixed_amount": 17.50393379,
				"original_principal_amortization_amount": 172.49606621,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 17.50393379,
				"principal_amortization_amount": 172.49606621,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 5.16280726,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2026-04-29",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2026-04-28",
				"due_interest": 0.0,
				"due_principal": 720.96289203,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "07e3155c-30b5-4d13-8a31-0af4c7d5c9c5",
				"installment_number": 33,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 720.96289203,
				"original_pre_fixed_amount": 15.65418772,
				"original_principal_amortization_amount": 174.34581228,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 15.65418772,
				"principal_amortization_amount": 174.34581228,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 5.21817016,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2026-05-29",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2026-05-28",
				"due_interest": 0.0,
				"due_principal": 546.61707975,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "d1badc80-d7a2-4428-abf6-4877ac9f4497",
				"installment_number": 34,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 546.61707975,
				"original_pre_fixed_amount": 11.48178326,
				"original_principal_amortization_amount": 178.51821674,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 11.48178326,
				"principal_amortization_amount": 178.51821674,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 5.34305023,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 21
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2026-06-30",
				"calendar_days": 31,
				"digitable_line": null,
				"due_date": "2026-06-28",
				"due_interest": 0.0,
				"due_principal": 368.098863,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "4b466830-c432-4478-a1b9-bff6562834ee",
				"installment_number": 35,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 368.098863,
				"original_pre_fixed_amount": 7.99248758,
				"original_principal_amortization_amount": 182.00751242,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 7.99248758,
				"principal_amortization_amount": 182.00751242,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 5.44748485,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 20
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0.0,
				"bank_slip_key": null,
				"business_due_date": "2026-07-29",
				"calendar_days": 30,
				"digitable_line": null,
				"due_date": "2026-07-28",
				"due_interest": 0.0,
				"due_principal": 186.09135058,
				"fine_amount": null,
				"has_interest": true,
				"installment_history": [],
				"installment_key": "0e8843ff-1339-40ab-a0b5-c450eca68e44",
				"installment_number": 36,
				"installment_payment": [],
				"installment_status": "created",
				"installment_type": "principal",
				"original_due_principal": 186.09135058,
				"original_pre_fixed_amount": 3.90887682,
				"original_principal_amortization_amount": 186.09112318,
				"original_total_amount": 190.0,
				"paid_amount": 0.0,
				"paid_at": null,
				"post_fixed_amount": null,
				"pre_fixed_amount": 3.90887682,
				"principal_amortization_amount": 186.09112318,
				"qr_code_key": null,
				"qr_code_url": null,
				"renegotiation_proposal_key": null,
				"tax_amount": 5.56970732,
				"total_accrual_amount": null,
				"total_amount": 190.0,
				"total_paid_amount": 0.0,
				"workdays": 22
			}
		],
		"iof_charge_method": "financed",
		"issue_amount": 4676.47,
		"net_external_contract_fee_amount": 0.0,
		"number_of_installments": 36,
		"prefixed_interest_rate": {
			"annual_rate": 0.28777498,
			"created_at": "2023-07-07T18:13:42",
			"daily_rate": 0.00069316,
			"interest_base": "calendar_days_365",
			"monthly_rate": 0.0213
		},
		"requester_identifier_key": "7d174b91-e411-4375-b788-9ced9b941cd0",
		"total_iof": 145.49,
		"total_pre_fixed_amount": 2163.53022742
	},
	"event_datetime": "2023-07-07 19:04:20",
	"key": "7d174b91-e411-4375-b788-9ced9b941cd0",
	"status": "waiting_signature",
	"webhook_type": "debt"
}
```

STATUS 400

**Request Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Seguro

URL: /documentation/emissao_de_divida/seguro

Na QI Tech disponibilizamos aos nossos clientes a possibilidade de oferecer seguro junto com a operação de crédito,
aqui você entenderá como usá-lo em nossas API's e entender melhor sobre esse novo produto.

:::caution Atenção
Esse produto está disponível apenas para parceiros cadastrados, por favor consulte um de nossos comerciais para mais detalhes.
:::

## Como usar

Para contratar ou simular uma dívida com a contratação de seguro, deverá ser adicionado a lista de rebates um rebate do tipo
"insurance_premium_qi", sem nenhum valor declarado, pois ele será calculado de acordo com o valor de emissão da proposta e
com o produto de seguro a ser contratado.

:::caution Atenção
Não é possível usar rebates do tipo tac ou **insurance_premium** junto com o **insurance_premium_qi**.
:::

Objeto Rebate

```json
{
  "rebates": [
    {
      "fee_type": "insurance_premium_qi",
      "description": "insurance_premium_plus"
    }
  ]
}
```

## Simulação de dívida

### Request

No exemplo abaixo, está descrita uma simulação de dívida, onde é pedido uma cotação de seguro.

ENDPOINT /fgts_simulation
MÉTODO POST

Request Body

```json
{
  "borrower": {
    "person_type": "natural",
    "individual_document_number": "46338864879",
    "birth_date": "1996-03-20"
  },
  "financial": {
    "desired_installments": [
      {
        "total_amount": 200,
        "due_date": "2023-10-01"
      }
    ],
    "interest_type": "pre_price_days",
    "disbursement_date": "2023-03-03",
    "fine_configuration": {
      "monthly_rate": 0,
      "interest_base": "calendar_days",
      "contract_fine_rate": 0
    },
    "monthly_interest_rate": 0.018,
    "credit_operation_type": "ccb",
    "interest_grace_period": 0,
    "number_of_installments": 1,
    "principal_grace_period": 0,
    "rebates": [
      {
        "fee_type": "insurance_premium_qi",
        "description": "insurance_premium_plus"
      }
    ]
  }
}
```

### Response

STATUS 200

Response Body

```json
{
    "type": "debt",
    "key": "a445c71c-d752-4159-82bf-097d8125b66c",
    "status": "finished",
    "event_datetime": "2024-10-03 00:26:26",
    "data": {
        "interest_type": "pre_price_days",
        "credit_operation_type": "ccb",
        "interest_grace_period": 0,
        "interest_payment_month_period": 1,
        "principal_grace_period": 0,
        "principal_amortization_month_period": 1,
        "operation_type": "structured_operation",
        "post_fixed_interest_base": "workdays",
        "post_fixed_interest_rate": null,
        "prefixed_interest_rate": {
            "interest_base": "calendar_days_365",
            "annual_rate": 0.23872053,
            "monthly_rate": 0.018,
            "daily_rate": 0.00058669
        },
        "issue_date": "2023-03-03",
        "number_of_installments": 1,
        "requester_key": "9cdbe6f9-0e94-45a7-af5f-2cec36356493",
        "final_disbursement_amount": 119.01,
        "total_pre_fixed_amount": 23.3844066642,
        "iof_amount": 3.74,
        "cet": 0.0773,
        "annual_cet": 1.44428,
        "disbursement_date": "2023-03-03",
        "installments": [
            {
                "calendar_days": 212,
                "workdays": 145.0,
                "business_due_date": "2023-10-02",
                "due_date": "2023-10-01",
                "due_principal": 176.62,
                "has_interest": true,
                "post_fixed_amount": null,
                "pre_fixed_amount": 23.3844066642,
                "tax_amount": 3.0702854745495474,
                "total_amount": 200,
                "principal_amortization_amount": 176.6155933358,
                "installment_number": 1
            }
        ],
        "external_contract_fees": [
            {
                "fee_type": "spread",
                "amount_type": "absolute",
                "amount": 0.0,
                "fee_amount": 0.0,
                "tax_amount": 0.0,
                "net_fee_amount": 0.0,
                "csll_amount": 0,
                "irrf_amount": 0,
                "pis_amount": 0,
                "cofins_amount": 0,
                "amount_released": 0,
                "description": null
            },
            {
                "fee_type": "tac",
                "amount_type": "absolute",
                "amount": 0.0,
                "fee_amount": 0.0,
                "tax_amount": 0.0,
                "net_fee_amount": 0.0,
                "csll_amount": 0,
                "irrf_amount": 0,
                "pis_amount": 0,
                "cofins_amount": 0,
                "amount_released": 0,
                "description": null
            },
            {
                "fee_type": "insurance_premium_qi",
                "description": "insurance_premium_plus",
                "amount_type": "percentage",
                "amount": 30.0,
                "fee_amount": 52.99,
                "tax_amount": 0.0,
                "net_fee_amount": 52.99,
                "csll_amount": 0,
                "irrf_amount": 0,
                "pis_amount": 0,
                "cofins_amount": 0,
                "amount_released": 52.99,
                "description": null
            }
        ],
        "contract_fee_amount": 0.88,
        "external_contract_fee_amount": 52.99,
        "net_external_contract_fee_amount": 52.99,
        "contract_fees": [
            {
                "fee_type": "tac",
                "amount_type": "percentage",
                "amount": 0.5,
                "fee_amount": 0.88
            }
        ],
        "issue_amount": 176.62,
        "disbursed_issue_amount": 119.01,
        "assignment_amount": 176.62,
        "disbursement_options": [
            {
                "iof_amount": 3.74,
                "total_pre_fixed_amount": 23.3844066642,
                "cet": 0.0773,
                "annual_cet": 1.44428,
                "contract_fees": [
                    {
                        "fee_type": "tac",
                        "amount_type": "percentage",
                        "amount": 0.5,
                        "fee_amount": 0.88
                    }
                ],
                "external_contract_fees": [
                    {
                        "fee_type": "spread",
                        "amount_type": "absolute",
                        "amount": 0.0,
                        "fee_amount": 0.0,
                        "tax_amount": 0.0,
                        "net_fee_amount": 0.0,
                        "csll_amount": 0,
                        "irrf_amount": 0,
                        "pis_amount": 0,
                        "cofins_amount": 0,
                        "amount_released": 0,
                        "description": null
                    },
                    {
                        "fee_type": "tac",
                        "amount_type": "absolute",
                        "amount": 0.0,
                        "fee_amount": 0.0,
                        "tax_amount": 0.0,
                        "net_fee_amount": 0.0,
                        "csll_amount": 0,
                        "irrf_amount": 0,
                        "pis_amount": 0,
                        "cofins_amount": 0,
                        "amount_released": 0,
                        "description": null
                    },
                    {
                        "fee_type": "insurance_premium_qi",
                        "description": "insurance_premium_plus",
                        "amount_type": "percentage",
                        "amount": 30.0,
                        "fee_amount": 52.99,
                        "tax_amount": 0.0,
                        "net_fee_amount": 52.99,
                        "csll_amount": 0,
                        "irrf_amount": 0,
                        "pis_amount": 0,
                        "cofins_amount": 0,
                        "amount_released": 52.99,
                        "description": null
                    }
                ],
                "contract_fee_amount": 0.88,
                "external_contract_fee_amount": 52.99,
                "net_external_contract_fee_amount": 52.99,
                "disbursement_date": "2023-03-03",
                "first_due_date": "2023-10-01",
                "installments": [
                    {
                        "calendar_days": 212,
                        "workdays": 145.0,
                        "business_due_date": "2023-10-02",
                        "due_date": "2023-10-01",
                        "due_principal": 176.62,
                        "has_interest": true,
                        "post_fixed_amount": null,
                        "pre_fixed_amount": 23.3844066642,
                        "tax_amount": 3.0702854745495474,
                        "total_amount": 200,
                        "principal_amortization_amount": 176.6155933358,
                        "installment_number": 1
                    }
                ],
                "issue_amount": 176.62,
                "disbursed_issue_amount": 119.01,
                "assignment_amount": 176.62,
                "final_disbursement_amount": 119.01,
                "prefixed_interest_rate": {
                    "interest_base": "calendar_days_365",
                    "annual_rate": 0.23872053,
                    "monthly_rate": 0.018,
                    "daily_rate": 0.00058669
                }
            }
        ]
    }
}
```

:::danger AVISO
É possível validar a elegibilidade da cobrança de seguro, já na simulação.\
Para isso, é obrigatório o envio da data de nascimento (**birth_date**), CPF do devedor (**document_number**) e o rebate "**insurance_premium_qi**".\
Se o CPF for elegível, teremos um retorno de sucesso, se não for elegível, a requisição de simulação retornará um erro.
:::

:::danger AVISO
O envio da data de nascimento (**birth_date**) **não é obrigatório na simulação com seguro**. Porém, na emissão de dívida temos a obrigatoriedade do envio desse campo, caso haja a contração do produto.
:::

## Consulta de elegibilidade de CPF para o seguro

Em posse dos dados de **CPF**, é possível a consulta da elegibilidade do CPF.

### Request

ENDPOINT /debts/borrower/[document_number]/insurance_premium_eligibility?birth_date=1994-06-11&issue_amount=150
METHOD GET

### Params

| Campo             | Descrição                               |
|-------------------|-----------------------------------------|
| `document_number` | Número de CPF do devedor                |
| `birth_date`      | Data de nascimento                      |
| `issue_amount`    | Valor de emissão da operação de crédito |

### Response

STATUS 200

Response Body

```json
{
    "eligible": true
}
```

### Descrição
| Campo                        | Tipo   |
|------------------------------|--------|
| `elegible`            | boleean |

:::caution Atenção
Para um CPF com o retorno **"elegible": false**, tanto a simulação, quanto a emissão da dívida não serão possíveis com o envio de insurance_premium_qi na lista **rebates**.
:::

## Criação de dívida

Para criação de dívida com seguro é necessário alguns dados obrigatórios do tomador do crédito, como **endereço, telefone, email e
data de nascimento**. Se alguns desses dados for omtido a dívida não será emitida.

### Request

ENDPOINT /debt
MÉTODO POST

Request Body

```json
{
  "borrower": {
    "person_type": "natural",
    "individual_document_number": "46338864879",
    "name": "PATRICIA APARECIDA DO NASCIMENTO PEREIRA DA SILVA",
    "is_pep": false,
    "mother_name": "HELENA DO NASCIMENTO PEREIRA DA SILVA",
    "email": "email@email.com",
    "birth_date": "1994-06-11",
    "phone": {
      "number": "900000000",
      "area_code": "11",
      "country_code": "055"
    },
    "address": {
      "city": "São Paulo",
      "state": "SP",
      "number": "215",
      "street": "Gilberto Sabino",
      "complement": "s/c",
      "postal_code": "12345012",
      "neighborhood": "Pinheiros"
    }
  },
  "financial": {
    "desired_installments": [
      {
        "total_amount": 200,
        "due_date": "2023-10-01"
      }
    ],
    "interest_type": "pre_price_days",
    "disbursement_date": "2023-03-03",
    "fine_configuration": {
      "monthly_rate": 0,
      "interest_base": "calendar_days",
      "contract_fine_rate": 0
    },
    "monthly_interest_rate": 0.018,
    "credit_operation_type": "ccb",
    "interest_grace_period": 0,
    "number_of_installments": 1,
    "principal_grace_period": 0,
    "rebates": [
      {
        "fee_type": "insurance_premium_qi",
        "description": "insurance_premium_plus"
      }
    ]
  },
  "disbursement_bank_account": {
    "ispb_number": "18236120",
    "branch_number": "1",
    "account_number": "87823171",
    "account_digit": "0",
    "document_number": "46338864879",
    "name": "PATRICIA APARECIDA DO NASCIMENTO PEREIRA DA SILVA",
    "percentage_receivable": 1
  },
  "purchaser_document_number": "32402502000135"
}
```

### Response

STATUS 201

Response Body

```json
{
  "webhook_type": "debt",
  "key": "7a9bb512-7b38-4dbc-a109-1bc122b67a4a",
  "status": "waiting_signature",
  "event_datetime": "2023-03-03 18:06:18",
  "data": {
    "borrower": {
      "name": "PATRICIA APARECIDA DO NASCIMENTO PEREIRA DA SILVA",
      "document_number": "46338864879",
      "related_party_key": "1b98cff5-b1eb-4f3d-b337-716d76137770"
    },
    "contract": {
      "number": "0000062201/PAD",
      "urls": [
        "https://storage.googleapis.com/live-doc-api/documents/45e5b9c0-0f56-40a8-aace-d206f72c164d/QISCD-NOME_DO_DEVEDOR-CCB-0000000002-20230317183044.pdf"
      ],
      "external_contract_key": "35b882b1-9937-41d3-bf43-e0d30062dc1b",
      "signature_information": [
        {
          "signer_name": "PATRICIA APARECIDA DO NASCIMENTO PEREIRA DA SILVA",
          "signer_document_number": "46338864879",
          "signer_role": "issuer",
          "signer_email": "email@email.com",
          "signer_external_key": "3a50f3cd-8178-49c8-9fc2-984b4caa4a5b",
          "signature_url": "https://sandbox.sign.qitech.com.br/s/ml9Myfp"
        }
      ]
    },
    "requester_identifier_key": "7a9bb512-7b38-4dbc-a109-1bc122b67a4a",
    "iof_charge_method": "financed",
    "collaterals": [],
    "contract_fees": [],
    "external_contract_fees": [
      {
        "fee_type": "insurance_premium_qi",
        "description": "insurance_premium_plus",
        "fee_amount": 52.99,
        "tax_amount": 0,
        "net_fee_amount": 52.99
      }
    ],
    "external_contract_fee_amount": 52.99,
    "net_external_contract_fee_amount": 52.99,
    "contract_fee_amount": 0,
    "issue_amount": 176.62,
    "assignment_amount": 176.62,
    "cet": "7,6200%",
    "annual_cet": "141,3472%",
    "number_of_installments": 1,
    "base_iof": 3.0702854745495474,
    "additional_iof": 0.671156,
    "total_iof": 3.74,
    "prefixed_interest_rate": {
      "annual_rate": 0.23872053,
      "created_at": "2024-09-11T18:06:07",
      "daily_rate": 0.00058669,
      "interest_base": "calendar_days_365",
      "monthly_rate": 0.018
    },
    "installments": [
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2023-10-02",
        "calendar_days": 212,
        "digitable_line": null,
        "due_date": "2023-10-01",
        "due_interest": 0,
        "due_principal": 176.62,
        "fine_amount": null,
        "has_interest": true,
        "installment_history": [],
        "installment_key": "6087c6c1-d665-4ba8-bfb2-b447cd57d3e3",
        "installment_number": 1,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 176.62,
        "original_pre_fixed_amount": 23.3844066642,
        "original_principal_amortization_amount": 176.6155933358,
        "original_total_amount": 200,
        "paid_amount": 0,
        "paid_at": null,
        "post_fixed_amount": null,
        "pre_fixed_amount": 23.3844066642,
        "principal_amortization_amount": 176.6155933358,
        "qr_code_key": null,
        "qr_code_url": null,
        "renegotiation_proposal_key": null,
        "tax_amount": 3.0702854745495474,
        "total_accrual_amount": null,
        "total_amount": 200,
        "total_paid_amount": 0,
        "workdays": 145
      }
    ],
    "total_pre_fixed_amount": 23.3844066642
  }
}
```

## Webhooks

### Seguro emitido

 A emissão do seguro será feito após o desembolso da operação, o seguinte webhook será enviado quando o
 seguro terminar de ser emitido com os dados do seguro.

:::caution Atenção
Ao receber o webhook de bilhete emitido é obrigatório a transmissão do documento do bilhete gerado para o tomador de crédito.
:::

Webhook Body

```json
{
  "data": {
    "credit_operation_key": "5ae2c008-44c1-4435-bbfa-094a4b11d962",
    "insurance_policy_document_key": "9990ce22-aeac-4728-82da-d1f22c33873f",
    "insurance_date": "2024-09-11",
    "term_start_date": "2024-09-11",
    "term_end_date": "2025-09-11",
    "insurance_amount": 1600,
    "operation_amount": 6400,
    "covers": [
      {
        "cover_amount": 200,
        "cover_type": "permanent_disability",
        "cover_prize_amount": 572.82
      },
      {
        "cover_amount": 100,
        "cover_type": "accidental_death",
        "cover_prize_amount": 572.82
      },
      {
        "capitalcover_amount_segurado": 300,
        "cover_type": "unemployment",
        "cover_prize_amount": 572.82
      }
    ],
    "policy_number": "1098200000008",
    "prize_number": "3907",
    "insurance_premium_net_amount": 1145.63,
    "iof_amount": 4.37
  },
  "event_datetime": "2023-03-03 22:39:39",
  "key": "dc575950-dcce-48e1-99a6-5fb0ada63d86",
  "status": "active",
  "webhook_type": "insurance_premium.status_change"
}
```

### Seguro cancelado

O seguro pode ser cancelado quando o tomador do crédito queira desistir de operação de créditoe a operação for revertida, se algum limite de cobertura for ultrapassado (tornando inelegível a contratação do seguro)
ou quando tomador acaba desistindo somente do seguro.

:::caution Atenção
O bilhete de seguro só pode ser cancelado totalmente dentro de 7 dias corridos do desembolso da operação de crédito,
caso queira cancelar após isso o valor devolvido vai ser proporcional a duração do seguro.
:::

Webhook Body

```json
{
    "key": "dc575950-dcce-48e1-99a6-5fb0ada63d86",
    "data": {
        "cancel_reason": "reversed_operation",
        "credit_operation_key": "2fbd6613-3228-5gdg-9377-93db394bf2d4"
    },
    "status": "canceled",
    "webhook_type": "insurance_premium.status_change",
    "event_datetime": "2023-03-03 22:39:39"
}
```

### Motivos de cancelamento

| cancel_reason                 | Descrição                              |
|-------------------------------|----------------------------------------|
| `reversed_operation`          | Operação revertida e seguro cancelados |
| `cover_limit_amount_exceeded` | Somente o seguro foi cancelado. Algum limite de cobertura foi ultrapassado e não foi possível a emissão do seguro  |
| `insurance_premium_cancel`    | Somente o seguro foi cancelado. Cancelamento do tomador direto com a seguradora  |

## Consulta do seguro

### Request

ENDPOINT /debt/[debt_key]/insurance_premiums
METHOD GET

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "insurance_premium_key": "e4fe84e3-cc71-481b-87ea-8a07f7d69079",
      "status": "active",
      "credit_operation_key": "5ae2c008-44c1-4435-bbfa-094a4b11d962",
      "disbursement_key": "bd0ea133-ff47-4a21-a3e6-24186e5e2fc1",
      "contract_number": "4069550961/QIT",
      "requester_key": "1040ce22-aeac-4728-82da-d1f22c33873f",
      "insurance_policy_document_key": "9990ce22-aeac-4728-82da-d1f22c33873f",
      "insurance_date": "2024-09-11",
      "term_start_date": "2024-09-11",
      "term_end_date": "2025-09-11",
      "insurance_amount": 1600,
      "operation_amount": 6400,
      "customer": {
        "customer_key": "cd587fa8-3abd-4023-99ab-957df60933a5",
        "document_number": "08556878350",
        "name": "Wilker Oliveiraço",
        "birth_date": "1998-03-21",
        "email": "urich.oliveira@yopmail.com",
        "phone": {
          "country_code": "55",
          "area_code": "11",
          "number": "966931427"
        },
        "address": {
          "postal_code": "56821686",
          "state": "CE",
          "city": "Ceará",
          "neighborhood": "Marmiteiros",
          "street": "Conjunto João Gabriel da Mata",
          "number": "95",
          "complement": ""
        }
      },
      "covers": [
        {
          "cover_amount": 200,
          "cover_type": "permanent_disability",
          "cover_prize_amount": 572.82
        },
        {
          "cover_amount": 100,
          "cover_type": "accidental_death",
          "cover_prize_amount": 572.82
        },
        {
          "cover_amount": 300,
          "cover_type": "unemployment",
          "cover_prize_amount": 572.82
        }
      ],
      "policy_number": "1098200000008",
      "prize_number": "3907",
      "insurance_premium_net_amount": 1145.63,
      "iof_amount": 4.37
    }
  ],
  "pagination": {
    "current_page": 0,
    "next_page": 0,
    "rows_per_page": 1
  }
}
```

### Request

ENDPOINT /debt/[DEBT-KEY]/insurance_premium/[INSURANCE-PREMIUM-KEY]
METHOD GET

### Response

STATUS 200

Response Body

```json
{
  "insurance_premium_key": "e4fe84e3-cc71-481b-87ea-8a07f7d69079",
  "status": "active",
  "credit_operation_key": "5ae2c008-44c1-4435-bbfa-094a4b11d962",
  "disbursement_key": "bd0ea133-ff47-4a21-a3e6-24186e5e2fc1",
  "contract_number": "4069550961/QIT",
  "requester_key": "1040ce22-aeac-4728-82da-d1f22c33873f",
  "insurance_policy_document_key": "9990ce22-aeac-4728-82da-d1f22c33873f",
  "insurance_date": "2024-09-11",
  "term_start_date": "2024-09-11",
  "term_end_date": "2025-09-11",
  "insurance_amount": 1600,
  "operation_amount": 6400,
  "customer": {
    "customer_key": "cd587fa8-3abd-4023-99ab-957df60933a5",
    "document_number": "08556878350",
    "name": "Wilker Oliveiraço",
    "birth_date": "1998-03-21",
    "gender": "male",
    "email": "urich.oliveira@yopmail.com",
    "phone": {
      "country_code": "55",
      "area_code": "11",
      "number": "966931427"
    },
    "address": {
      "postal_code": "56821686",
      "state": "CE",
      "city": "Ceará",
      "neighborhood": "Marmiteiros",
      "street": "Conjunto João Gabriel da Mata",
      "number": "95",
      "complement": ""
    }
  },
  "covers": [
    {
      "cover_amount": 300,
      "cover_type": "permanent_disability",
      "cover_prize_amount": 572.82
    },
    {
      "cover_amount": 300,
      "cover_type": "accidental_death",
      "cover_prize_amount": 572.82
    },
    {
      "cover_amount": 300,
      "cover_type": "unemployment",
      "cover_prize_amount": 572.82
    }
  ],
  "policy_number": "1098200000008",
  "prize_number": "3907",
  "insurance_premium_net_amount": 1145.63,
  "iof_amount": 4.37
}
```

## Consulta do documento bilhete

:::caution Atenção
O link do documento é expirável e tem uma duração de 15 minutos.
:::

### Request

ENDPOINT /document/[DOCUMENT-KEY]/url
METHOD GET

### Response

STATUS 200

Response Body

```json
{
    "document_key": "a11dc0fe-51ed-41aa-bb40-bca80d6e515b",
    "signed_document_url": null,
    "document_url": "https://storage.googleapis.com/dev-doc-api-private/documents/a11dc0fe-51ed-41aa-bb40-bca80d6e515b/TESTEELECTRONIC2.pdf?Expires=1726081733&GoogleAccessId=doc-api-signed-url-service-acc%40qicredit-dev.iam.gserviceaccount.com&Signature=CNY8ch%2BQ2FuLXrbRZGLhH41A7SkNJRUUq%2FJoegTIMeXEiNImD%2FkPoEHyNtOXWUUR8JtEL6ppT0s1tXA9oFfLjzOtvzMOfpal0TwJDLSsX9r4HxcxvzFZUJELAn9yIAcRhqR%2BnzUn0WYyQA%2B0hAalz%2Bj274pXhIExqJJR4LiDUAkzRE3WD0GOvsV7afAoqQ8P3Xxj4mvOM3P%2BuFhgP6hcJmq0K%2B5qHssF3DtvpQFLcLaQ7T45YoQDCnDFGztD0Un0%2BNBwv4n2142rV3rMu9h3DzLmQbEjaeYgHb4wq2kOfyfEUSbaU683d6hA7CNyrPWMeoi%2F%2BgTfFFadbcGCMGX2%2BQ%3D%3D",
    "expiration_datetime": "2023-03-03T19:08:53.000Z"
}
```

---

# Simulação de dívida antigo

URL: /documentation/emissao_de_divida/simulacao_de_divida_antigo

Na QI Tech disponibilizamos aos nossos clientes a possibilidade de simular os valores uma operação de crédito antes da
sua emissão de fato. A simulação segue o mesmo padrão da solicitação de emissão de dívida, porém não é necessário
informar os dados cadastrais e de conta de desembolso do devedor. 

## Request

No exemplo abaixo, esta descrita uma solicitação de simulação de dívida.

ENDPOINT /debt_simulation
MÉTODO POST

Request Body

**Data de vencimento e valor da parcela**

```json
{
    "borrower": {
        "person_type": "natural"
    },
    "financial": {
        "desired_installments": [
            {
                "total_amount": 578.69,
                "due_date": "2027-04-01"
            },
            {
                "total_amount": 304.25,
                "due_date": "2028-04-01"
            }
        ],
        "interest_type": "pre_price_days",
        "disbursement_date": "2026-09-06",
        "fine_configuration": {
            "monthly_rate": 0.0,
            "interest_base": "calendar_days",
            "contract_fine_rate": 0.0
        },
        "annual_interest_rate": 0.2387205,
        "credit_operation_type": "ccb",
        "interest_grace_period": 0,
        "number_of_installments": 2,
        "principal_grace_period": 0,
        "rebates": [
            {
                "amount": 10,
                "fee_type": "tac",
                "amount_type": "absolute",
                "rebate_bank_account": {
                    "name": "CONTA BANCARIA",
                    "bank_code": "329",
                    "account_digit": "1",
                    "branch_number": "0001",
                    "account_number": "00003",
                    "document_number": "32402502000135"
                }
            }
        ]
    }
}
```

**Taxa e data de parcela**
```json
{
  "borrower": {
    "person_type": "natural"
  },
  "financial": {
    "interest_type": "pre_price_days",
    "disbursement_start_date": "2025-09-03",
    "disbursement_end_date": "2025-09-03",
    "issue_date": "2025-09-03",
    "fine_configuration": {
        "monthly_rate": 0,
        "contract_fine_rate": 0,
        "interest_base": "calendar_days"
      },
    "monthly_interest_rate": 0.1929244498,
    "disbursed_amount": 10000.00,
    "credit_operation_type": "ccb",
    "interest_grace_period": 0,
    "number_of_installments": 18,
    "principal_grace_period": 0,
    "due_dates": [
      "2025-09-28",
      "2025-10-28",
      "2025-11-28",
      "2025-12-28",
      "2026-01-28",
      "2026-02-28",
      "2026-03-28",
      "2026-04-28",
      "2026-05-28",
      "2026-06-28",
      "2026-07-28",
      "2026-08-28",
      "2026-09-28",
      "2026-10-28",
      "2026-11-28",
      "2026-12-28",
      "2027-01-28",
      "2027-02-28"
    ]
  }
}
```

## Response

STATUS 200

Response Body

```json
{
    "type": "debt",
    "key": "bf84379c-d4cf-4f16-a63c-865c129e6fce",
    "status": "finished",
    "event_datetime": "2025-03-27 22:28:37",
    "data": {
        "interest_type": "pre_price_days",
        "credit_operation_type": "ccb",
        "interest_grace_period": 0,
        "interest_payment_month_period": 1,
        "principal_grace_period": 0,
        "principal_amortization_month_period": 1,
        "operation_type": "structured_operation",
        "post_fixed_interest_base": "workdays",
        "post_fixed_interest_rate": null,
        "prefixed_interest_rate": {
            "interest_base": "calendar_days_365",
            "annual_rate": 0.23872053,
            "monthly_rate": 0.0179999999,
            "daily_rate": 0.0005866899
        },
        "issue_date": "2026-09-06",
        "number_of_installments": 2,
        "requester_key": "f2b3b903-aa41-4a79-8b2f-abc3cc5a6590",
        "final_disbursement_amount": 701.6,
        "total_pre_fixed_amount": 153.0,
        "iof_amount": 18.34,
        "cet": 0.0219,
        "annual_cet": 0.297,
        "disbursement_date": "2026-09-06",
        "installments": [
            {
                "calendar_days": 207,
                "workdays": 140,
                "business_due_date": "2027-04-01",
                "due_date": "2027-04-01",
                "due_principal": 729.94,
                "has_interest": true,
                "post_fixed_amount": 0,
                "pre_fixed_amount": 94.22564648,
                "tax_amount": 8.22329794,
                "total_amount": 578.69,
                "principal_amortization_amount": 484.46435352,
                "installment_number": 1
            },
            {
                "calendar_days": 366,
                "workdays": 253,
                "business_due_date": "2028-04-03",
                "due_date": "2028-04-01",
                "due_principal": 245.47564648,
                "has_interest": true,
                "post_fixed_amount": 0,
                "pre_fixed_amount": 58.77435352,
                "tax_amount": 7.3470861,
                "total_amount": 304.25,
                "principal_amortization_amount": 245.47564648,
                "installment_number": 2
            }
        ],
        "external_contract_fees": [
            {
                "fee_type": "tac",
                "amount_type": "absolute",
                "amount": 10.0,
                "fee_amount": 10.0,
                "tax_amount": 1.42,
                "net_fee_amount": 8.58,
                "csll_amount": 0,
                "irrf_amount": 0,
                "pis_amount": 0,
                "cofins_amount": 0,
                "amount_released": 8.58,
                "description": null
            },
            {
                "fee_type": "spread_tax_free",
                "amount_type": "absolute",
                "amount": 0.0,
                "fee_amount": 0.0,
                "tax_amount": 0.0,
                "net_fee_amount": 0.0,
                "csll_amount": 0,
                "irrf_amount": 0,
                "pis_amount": 0,
                "cofins_amount": 0,
                "amount_released": 0,
                "description": null
            },
            {
                "fee_type": "tac_tax_free",
                "amount_type": "absolute",
                "amount": 0.0,
                "fee_amount": 0.0,
                "tax_amount": 0.0,
                "net_fee_amount": 0.0,
                "csll_amount": 0,
                "irrf_amount": 0,
                "pis_amount": 0,
                "cofins_amount": 0,
                "amount_released": 0,
                "description": null
            },
            {
                "fee_type": "insurance_premium",
                "amount_type": "absolute",
                "amount": 0.0,
                "fee_amount": 0.0,
                "tax_amount": 0.0,
                "net_fee_amount": 0.0,
                "csll_amount": 0,
                "irrf_amount": 0,
                "pis_amount": 0,
                "cofins_amount": 0,
                "amount_released": 0,
                "description": null
            }
        ],
        "contract_fee_amount": 3.65,
        "external_contract_fee_amount": 10.0,
        "net_external_contract_fee_amount": 8.58,
        "contract_fees": [
            {
                "fee_type": "spread",
                "amount_type": "percentage",
                "amount": 0.5,
                "fee_amount": 3.65
            },
            {
                "fee_type": "spread_ted_fee",
                "amount_type": "absolute",
                "amount": 3.0,
                "fee_amount": 3.0
            }
        ],
        "issue_amount": 729.94,
        "disbursed_issue_amount": 701.6,
        "assignment_amount": 736.59,
        "disbursement_options": [
            {
                "iof_amount": 18.34,
                "total_pre_fixed_amount": 153.0,
                "cet": 0.0219,
                "annual_cet": 0.297,
                "contract_fees": [
                    {
                        "fee_type": "spread",
                        "amount_type": "percentage",
                        "amount": 0.5,
                        "fee_amount": 3.65
                    },
                    {
                        "fee_type": "spread_ted_fee",
                        "amount_type": "absolute",
                        "amount": 3.0,
                        "fee_amount": 3.0
                    }
                ],
                "external_contract_fees": [
                    {
                        "fee_type": "tac",
                        "amount_type": "absolute",
                        "amount": 10.0,
                        "fee_amount": 10.0,
                        "tax_amount": 1.42,
                        "net_fee_amount": 8.58,
                        "csll_amount": 0.0,
                        "irrf_amount": 0.0,
                        "pis_amount": 0.0,
                        "cofins_amount": 0.0,
                        "amount_released": 8.58,
                        "description": null
                    },
                    {
                        "fee_type": "spread_tax_free",
                        "amount_type": "absolute",
                        "amount": 0.0,
                        "fee_amount": 0.0,
                        "tax_amount": 0.0,
                        "net_fee_amount": 0.0,
                        "csll_amount": 0,
                        "irrf_amount": 0,
                        "pis_amount": 0,
                        "cofins_amount": 0,
                        "amount_released": 0.0,
                        "description": null
                    },
                    {
                        "fee_type": "tac_tax_free",
                        "amount_type": "absolute",
                        "amount": 0.0,
                        "fee_amount": 0.0,
                        "tax_amount": 0.0,
                        "net_fee_amount": 0.0,
                        "csll_amount": 0,
                        "irrf_amount": 0,
                        "pis_amount": 0,
                        "cofins_amount": 0,
                        "amount_released": 0.0,
                        "description": null
                    },
                    {
                        "fee_type": "insurance_premium",
                        "amount_type": "absolute",
                        "amount": 0.0,
                        "fee_amount": 0.0,
                        "tax_amount": 0.0,
                        "net_fee_amount": 0.0,
                        "csll_amount": 0,
                        "irrf_amount": 0,
                        "pis_amount": 0,
                        "cofins_amount": 0,
                        "amount_released": 0.0,
                        "description": null
                    }
                ],
                "contract_fee_amount": 3.65,
                "external_contract_fee_amount": 10.0,
                "net_external_contract_fee_amount": 8.58,
                "disbursement_date": "2026-09-06",
                "first_due_date": "2027-04-01",
                "installments": [
                    {
                        "calendar_days": 207,
                        "workdays": 140,
                        "business_due_date": "2027-04-01",
                        "due_date": "2027-04-01",
                        "due_principal": 729.94,
                        "has_interest": true,
                        "post_fixed_amount": 0,
                        "pre_fixed_amount": 94.22564648,
                        "tax_amount": 8.22329794,
                        "total_amount": 578.69,
                        "principal_amortization_amount": 484.46435352,
                        "installment_number": 1
                    },
                    {
                        "calendar_days": 366,
                        "workdays": 253,
                        "business_due_date": "2028-04-03",
                        "due_date": "2028-04-01",
                        "due_principal": 245.47564648,
                        "has_interest": true,
                        "post_fixed_amount": 0,
                        "pre_fixed_amount": 58.77435352,
                        "tax_amount": 7.3470861,
                        "total_amount": 304.25,
                        "principal_amortization_amount": 245.47564648,
                        "installment_number": 2
                    }
                ],
                "issue_amount": 729.94,
                "disbursed_issue_amount": 701.6,
                "assignment_amount": 736.59,
                "final_disbursement_amount": 701.6,
                "prefixed_interest_rate": {
                    "interest_base": "calendar_days_365",
                    "annual_rate": 0.23872053,
                    "monthly_rate": 0.0179999999,
                    "daily_rate": 0.0005866899
                }
            }
        ]
    }
}

```

## Definições

### Request Body

### Objeto Borrower
| Campo | Tipo  | Descrição  | Enum |
|---|---|---|---|
| **person_type** | object | Natureza Jurídica do devedor da operação   |  natural ou legal |

### Objeto Financial
| Campo  | Tipo   | Descrição | Máx. Caract. |
|---|--- |---|---|
| **amout**                  | float  | Valor de emissão/nominal da operação de crédito                                                             | -            |
| **interest_type**          | object | **[Enumerador Interest Type](#enumerador-interest-type)** - Método de amortização e forma de cálculo de juros | -            |
| **credit_operation_type**  | object | **[Enumerador Credit Operation Type](#enumerador-credit-operation-type)** - Tipo do contrato de crédito     | -            |
| **annual_interest_rate**   | float  | Taxa de juros pré-fixada expressa em decimal ao ano                                                         | -            |
| **disbursement_date**      | date   | Data do desembolso da operação                                                                              | -            |
| **interest_grace_period**  | int    | Carência de juros (em meses)                                                                                | -            |
| **principal_grace_period** | int    | Período carência de principal                                                                               | -            |
| **number_of_installments** | int    | Número de parcelas da operação de crédito                                                                   | -            |
| **fine_configuration**     | object | **[Objeto fine_configuration](#objeto-fine-configuration)** - Configuração de juros e multa por atraso      | -            |

### Objeto Fine Configuration
| Campo                  | Tipo  | Descrição                                                                            | Máx. Caract. |
|---|---|---|---|
| **contract_fine_rate** | float | Percentual de multa por atraso expresso em decimal                                   | -            |
| **interest_base**      | enum  | **[Enumerador Interest Base](#enumerador-interest-base)** - Base de cálculo de juros | -            |
| **monthly_rate**       | float | Percentual de juros de atraso ao mês expresso em decimal                             | -            |

### Response Body
| Campo                      | Tipo   | Descrição                       | Máx. Caract. |
|----------------------------|--------|---------------------------------|--------------|
| **data.data**           | object | **[Objeto Data](#objeto-data)** | -            |
| **data.event_datetime** | date   | Momento da geração da simulação | -            |
| **data.key**            | string | Chave única da simulação        | -            |
| **data.status**         | string | _finished_                      | -            |
| **data.type**           | string | _debt_                          | -            |

### Objeto Data
| Campo                                   | Tipo   | Descrição                                                                                                                     | Máx. Caract. |
|-----------------------------------------|--------|-------------------------------------------------------------------------------------------------------------------------------|--------------|
| **annual_cet**                          | float  | Custo efetivo total expresso em decimal ao ano                                                                                | -            |
| **assignment_amount**                   | float  | Valor de aquisição da operação de crédito                                                                                     | -            |
| **cet**                                 | float  | Custo efetivo total expresso em decimal ao mês                                                                                | -            |
| **contract_fee_amount**                 | float  | Fee da QI Tech cobrado na operação                                                                                            | -            |
| **contract_fees**                       | object | **[Objeto Contract Fees](#objeto-contract-fees)** - Lista de Fee's da QI Tech cobrados na operação                            | -            |
| **credit_operation_type**               | enum   | **[Enumerador Credit Operation Type](#enumerador-credit-operation-type)** - Tipo do contrato de crédito                       | -            |
| **disbursed_issue_amount**              | float  | Valor desembolsado na operação de crédito                                                                                     | -            |
| **disbursement_date**                   | date   | Data do desembolso da operação                                                                                                | -            |
| **disbursement_options**                | list   | Lista de opções de desembolso da operação (os valores financeiros da operação podem variar de acordo com o dia do desembolso) | -            |
| **external_contract_fee_amount**        | float  | Valor do Fee cobrado na operação rebatido pela QI ao parceiro                                                                 | -            |
| **external_contract_fees**              | list   | **[Objeto Contract Fees](#objeto-contract-fees)** - Lista de Fee's cobrados na operação rebatidos pela QI ao parceiro         | -            |
| **final_disbursement_amount**           | float  | Valor efetivamente desembolsado para o devedor                                                                                | -            |
| **installments**                        | list   | **[Objeto Installments](#objeto-installments)** - Parcelas da operação                                                        | -            |
| **interest_grace_period**               | int    | Carência de juros (em meses)                                                                                                  | -            |
| **interest_payment_month_period**       | int    | Frequência da cobrança de juros nas parcelas (em meses)                                                                       | -            |
| **interest_type**                       | enum   | **[Enumerador Interest Type](#enumerador-interest-type)** - Método de amortização e forma de cálculo de juros                 | -            |
| **iof_amount**                          | float  | Valor total do IOF (composto pela soma do IOF Base e IOF Total)                                                               | -            |
| **issue_amount**                        | float  | Valor de emissão/nominal da operação de crédito                                                                               | -            |
| **issue_date**                          | date   | Data da emissão do cotrato da operação                                                                                        | -            |
| **net_external_contract_fee_amount**    | float  | Valor líquido do Fee cobrado na operação rebatido pela QI ao parceiro                                                         | -            |
| **operation_type**                      | enum   | **[Enumerador Operation Type](#enumerador-operation-type)**                                                                   | -            |
| **post_fixed_interest_base**            | enum   | **[Enumerador Interest Base](#enumerador-interest-base)** - Base de cálculo de juros                                          | -            |
| **post_fixed_interest_rate**            | object | **[Objeto Interest Rate](#objeto-interest-rate)** - Indexador de juros pós-fixados do contrato                                | -            |
| **prefixed_interest_rate**              | object | **[Objeto Interest Rate](#objeto-interest-rate)** - Taxa de juros Nominal pré-fixada do contrato                              | -            |
| **principal_amortization_month_period** | int    | Frequência da cobrança de principal nas parcelas (em meses)                                                                   | -            |
| **principal_grace_period**              | int    | Período carência de principal (em meses)                                                                                      | -            |
| **requester_key**                       | string | Chave única identificadora do parceiro dentro da QI.                                                                          | -            |
| **total_pre_fixed_amount**              | float  | Total de juros pago pelo devedor na operação de crédito                                                                       | -            |

### Objeto Contract Fees
| Campo           | Tipo  | Descrição                                                                                           | Máx. Caract. |
|-----------------|-------|-----------------------------------------------------------------------------------------------------|--------------|
| **amount**      | float | Valor do Fee (em percentual ou valor absoluto, a depender do valor informado no campo _amount_type_ | -            |
| **amount_type** | enum  | **[Enumeradores amount_type](#enumerador-amount-type)** - Unidade do valor do Fee                   | -            |
| **fee_amount**  | float | Valor absoluto do Fee cobrado na operação                                                           | -            |
| **fee_type**    | enum  | **[Enumerador Fee Type](#enumerador-fee-type)** - Tipo do Fee cobrado na operação                   | -            |

### Objeto Installments
| Campo                             | Tipo    | Descrição                                                                      | Máx. Caract. |
|-----------------------------------|---------|--------------------------------------------------------------------------------|--------------|
| **business_due_date**             | date    | Data do vencimento em dia útil da parcela                                      | -            |
| **calendar_days**                 | int     | Quantos dias corridos entre uma parcela e outra                                | -            |
| **due_date**                      | date    | Data do vencimento em dia corrido da parcela                                   | -            |
| **due_principal**                 | float   | Principal remanescente na data de vencimento da parcela antes de seu pagamento | -            |
| **has_interest**                  | boolean | _true_ - Indicador de incidência de juros na parcela                           | -            |
| **installment_number**            | int     | Número da parcela                                                              | -            |
| **post_fixed_amount**             | float   | Valor de juros pós-fixado pago na parcela                                      | -            |
| **pre_fixed_amount**              | float   | Valor de juros pré-fixado pago na parcela                                      | -            |
| **principal_amortization_amount** | float   | Valor de amortização pago na parcela                                           | -            |
| **tax_amount**                    | float   | IOF Base da parcela                                                            | -            |
| **total_amount**                  | float   | Valor total da parcela                                                         | -            |
| **workdays**                      | int     | Quantos dias úteis entre uma parcela e outra                                   | -            |

### Objeto Interest Rate
| Campo             | Descrição                                                                             | Máx. Caract. |
|-------------------|---------------------------------------------------------------------------------------|--------------|
| **annual_rate**   | Taxa de juros pré/pós expressa em decimal ao ano                                      | -            |
| **daily_rate**    | Taxa de juros pré/pós expressa em decimal ao dia                                      | -            |
| **interest_base** | **[Enumerador Interest Base](#enumerador-interest-base)** - Base de cálculo de juros | -            |
| **monthly_rate**  | Taxa de juros pré/pós expressa em decimal ao mês                                      | -            |

# Enumeradores

### Enumerador _Person Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **legal**   | Pessoa juridica        |
| **natural**    | Pesso física    |

### Enumerador _Account Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **checking_account**   | Conta corrente        |
| **deposit_account**    | Conta de depósito     |
| **guaranteed_account** | Conta de garantia     |
| **investment_account** | Conta de investimento |
| **payment_account**    | Conta de pagamento    |
| **saving_account**     | Conta poupança        |
| **salary_account**     | Conta salário         |

### Enumerador _Amount Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **absolute**           | Valor absoluto        |
| **percentage**         | Valor percentual      |

### Enumerador _Interest Type_
| Enumerador           | Descrição                                                                                                                                                                |
|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **pre_price_days**   | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado ao dia                                                                                     |
| **pre_price**        | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado em períodos fixos (30 dias)                                                                |
| **pre_sac**          | Método de amortização SAC (amortização constante) com cálculo do juros pré-fixado ao dia                                                                                 |
| **post_sac**         | Método de amortização SAC (amortização constante) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                  |
| **post_price**       | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) em períodos fixos (30 dias) |
| **post_price_days**  | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                      |

### Enumerador _Credit Operation Type_
| Enumerador    | Descrição                      |
|---------------|--------------------------------|
| **ccb**       | Cédula de Crédito Bancário     |
| **cce**       | Cédula de Crédito à Exportação |
| **cci**       | Cédula de Crédito Imobiliário  |
| **nce**       | Nota de Crédito à Exportação   |

### Enumerador _Interest Base_
| Enumerador            | Descrição                                                                 |
|-----------------------|---------------------------------------------------------------------------|
| **workdays**          | Base de cálculo de juros em dias úteis considerando um ano de 252 dias    |
| **calendar_days**     | Base de cálculo de juros em dias corridos considerando um ano de 360 dias |
| **calendar_days_365** | Base de cálculo de juros em dias corridos considerando um ano de 365 dias |

### Enumerador _Fee Type_
Cada tipo de fee deve ser previamente habilitado e configurado pela QI Tech

| Enumerador            | Descrição                                                                  |
|-----------------------|----------------------------------------------------------------------------|
| **tac**               | Tarifa de abertura de cadastro                                             |
| **spread**            | Ágio cobrado no valor de aquisição da operação de crédito                  |
| **warranty_analysis** | Tarifa de análise de garantias                                             |
| **ted_fee**           | Tarifa de TED                                                              |
| **spread_ted_fee**    | Ágio da tarifa de TED cobrado no valor de aquisição da operação de crédito |

---

# Simulação de dívida novo

URL: /documentation/emissao_de_divida/simulacao_de_divida_novo

Na QI Tech disponibilizamos aos nossos clientes a possibilidade de simular os valores uma operação de crédito antes da
sua emissão de fato. A simulação segue o mesmo padrão da solicitação de emissão de dívida, porém não é necessário
informar os dados cadastrais e de conta de desembolso do devedor. 

## Request

No exemplo abaixo, esta descrita uma solicitação de simulação de dívida.

ENDPOINT /v2/credit_operation/simulation
MÉTODO POST

Request Body

**Data de vencimento e valor da parcela**

```json
{
    "credit_operation_type": "ccb",
    "disbursed_issue_amount": 2800,
    "disbursement_date": "2025-09-24",
    "first_due_date": "2025-10-24",
    "force_installments_on_workdays": true,
    "interest_type": "pre_price_days",
    "issuer_person_type": "natural",
    "monthly_interest_rate": 0.04488,
    "number_of_installments": 12,
    "principal_amortization_month_period": 1
}
```

**Valor desembolsado e parcelas**

 ```json
{
    "credit_operation_type": "ccb",
    "disbursed_issue_amount": 460,
    "disbursement_date": "2025-09-24",
    "first_due_date": "2025-10-24",
    "force_installments_on_workdays": true,
    "interest_type": "pre_price_days",
    "issuer_person_type": "natural",
    "number_of_installments": 3,
    "principal_amortization_month_period": 1,
    "interest_base": "calendar_days_365",
    "installments": [
      {
        "due_date": "2026-02-26",
        "amount": 137.48
      },
      {
        "due_date": "2026-03-26",
        "amount": 180.56
      },
      {
        "due_date": "2026-04-27",
        "amount": 180.56
      }
    ]
  }
 ```

## Response

STATUS 200

Response Body

```json
{
  "additional_iof": 0.14,
  "annual_cet": 145.08,
  "assignment_amount": 36.21,
  "base_iof": 0.1,
  "cet": 7.76,
  "disbursed_amount": 35.9,
  "disbursement_date": "2024-09-06",
  "fees": [
    {
      "amount": 0.0,
      "fee_amount": 0.0,
      "amount_type": "absolute",
      "fee_type": "tac",
      "type": "external"
    },
    {
      "amount": 0.0,
      "fee_amount": 0.0,
      "amount_type": "absolute",
      "fee_type": "spread",
      "type": "external"
    },
    {
      "amount": 0.2,
      "fee_amount": 0.07,
      "amount_type": "percentage",
      "fee_type": "spread",
      "type": "internal"
    }
  ],
  "first_due_date": "2024-09-25",
  "installments": [
    {
      "due_date": "2024-09-25",
      "amount": 19.5,
      "due_principal": 36.14,
      "due_interest": 0.0,
      "has_interest": true,
      "period": 0.6129032258064516,
      "period_workdays": 0.6190476190476191,
      "calendar_days": 19,
      "workdays": 13,
      "installment_number": 1,
      "period_to_disbursement": 0.6129032258064516,
      "prefixed_amount": 1.58227236,
      "period_workdays_to_disbursement": 1.0,
      "calendar_days_to_disbursement": 19,
      "workdays_to_disbursement": 13,
      "tax_amount": 0.02791582,
      "principal_amortization_amount": 17.91772764
    },
    {
      "due_date": "2024-10-25",
      "amount": 19.5,
      "due_principal": 18.22227236,
      "due_interest": 0.0,
      "has_interest": true,
      "period": 1.0,
      "period_workdays": 1.0,
      "calendar_days": 30,
      "workdays": 22,
      "installment_number": 2,
      "period_to_disbursement": 1.6129032258064515,
      "prefixed_amount": 1.27772764,
      "period_workdays_to_disbursement": 2.0,
      "calendar_days_to_disbursement": 49,
      "workdays_to_disbursement": 35,
      "tax_amount": 0.07321709,
      "principal_amortization_amount": 18.22227236
    }
  ],
  "interest_type": "pre_price_days",
  "issue_amount": 36.14,
  "prefixed_interest_rate": {
    "interest_base": "calendar_days",
    "annual_rate": 1.25219159,
    "daily_rate": 0.00225783,
    "monthly_rate": 0.07
  },
  "tax_configuration": {
    "additional_rate": 0.0038,
    "base_rate": 0.000082
  },
  "total_iof": 0.24
}

```

## Definições

### Request Body

### Payload
| Campo  | Tipo   | Descrição | Máx. Caract. |
|---|--- |---|---|
| **credit_operation_type**                 | enum    | **[Enumerador Credit Operation Type](#enumerador-credit-operation-type)** - Tipo do contrato de crédito      | -            |
| **disbursed_issue_amount**                | float   | Valor de emissão/nominal da operação de crédito      | -            |
| **disbursement_date**                     | date    | Data do desembolso da operação      | -            |
| **first_due_date**                        | date    | Data de vencimento da primeira parcela      | -            |
| **force_installments_on_workdays**        | boolean | _true_ - Indicador de parcelas agendadas em dias úteis     | -            |
| **interest_type**                         | enum    | **[Enumerador Interest Type](#enumerador-interest-type)** - Método de amortização e forma de cálculo de juros      | -            |
| **issuer_person_type**                    | enum    | **[Enumerador Person Type](#enumerador-person-type)**      | -            |
| **monthly_interest_rate**                 | float   | Taxa de juros mensal pré-fixada do contrato      | -            |
| **number_of_installments**                | int     | Número de parcelas da operação de crédito      | -            |
| **principal_amortization_month_period**   | int     | Quantidade de meses de amortização do principal      | -            |
| **installments**                          | list    | **[Objeto Installments](#objeto-installments)** - Parcelas da operação      | -            |

### Response Body

### Payload
| Campo                                   | Tipo   | Descrição                                                                                                                     | Máx. Caract. |
|-----------------------------------------|--------|-------------------------------------------------------------------------------------------------------------------------------|--------------|
| **annual_cet**                          | float  | Custo efetivo total expresso em decimal ao ano                                                                                | -            |
| **assignment_amount**                   | float  | Valor de aquisição da operação de crédito                                                                                     | -            |
| **cet**                                 | float  | Custo efetivo total expresso em decimal ao mês                                                                                | -            |
| **fees**                                | object | **[Objeto Fees](#objeto-fees)** - Lista de Fee's da QI Tech cobrados na operação                            | -            |
| **disbursed_amount**                    | float  | Valor desembolsado na operação de crédito                                                                                     | -            |
| **disbursement_date**                   | date   | Data do desembolso da operação                                                                                                | -            |
| **installments**                        | list   | **[Objeto Installments Response](#objeto-installments-response)** - Parcelas da operação                                                        | -            |
| **interest_type**                       | enum   | **[Enumerador Interest Type](#enumerador-interest-type)** - Método de amortização e forma de cálculo de juros                 | -            |
| **additional_iof**                      | float  | Valor de IOF adicional                                                                                                        | -            |
| **base_iof**                            | float  | Valor do IOF Base                                                                                                             | -            |
| **total_iof**                           | float  | Valor do IOF Total                                                                                                            | -            |
| **issue_amount**                        | float  | Valor de emissão/nominal da operação de crédito                                                                               | -            |
| **tax_configuration**                   | object | **[Objeto Tax Configuration](#objeto-tax-configuration)** - Valores das alíquotas                                             | -            |
| **first_due_date**                      | date   | Data de vencimento da primeira parcela                                                                                        | -            |
| **prefixed_interest_rate**              | object | **[Objeto Interest Rate](#objeto-interest-rate)** - Taxa de juros Nominal pré-fixada do contrato                              | -            |

### Objeto Fees
| Campo           | Tipo  | Descrição                                                                                           | Máx. Caract. |
|-----------------|-------|-----------------------------------------------------------------------------------------------------|--------------|
| **amount**      | float | Valor do Fee (em percentual ou valor absoluto, a depender do valor informado no campo _amount_type_)| -            |
| **amount_type** | enum  | **[Enumeradores amount_type](#enumerador-amount-type)** - Unidade do valor do Fee                   | -            |
| **fee_amount**  | float | Valor absoluto do Fee cobrado na operação                                                           | -            |
| **fee_type**    | enum  | **[Enumerador Fee Type](#enumerador-fee-type)** - Tipo do Fee cobrado na operação                   | -            |
| **type**        | enum  | **[Enumerador Origin Type](#enumerador-origin-type)** - Origem do Fee cobrado na operação                         | -            |

### Objeto Installments Request
| Campo                             | Tipo    | Descrição                                                                      | Máx. Caract. |
|-----------------------------------|---------|--------------------------------------------------------------------------------|--------------|
| **due_date**                      | date    | Data do vencimento em dia corrido da parcela                                   | -            |
| **total_amount**                  | float   | Valor total da parcela                                                         | -            |

### Objeto Installments Response
| Campo                             | Tipo    | Descrição                                                                      | Máx. Caract. |
|-----------------------------------|---------|--------------------------------------------------------------------------------|--------------|
| **calendar_days**                 | int     | Quantos dias corridos entre uma parcela e outra                                | -            |
| **due_date**                      | date    | Data do vencimento em dia corrido da parcela                                   | -            |
| **due_principal**                 | float   | Principal remanescente na data de vencimento da parcela antes de seu pagamento | -            |
| **has_interest**                  | boolean | _true_ - Indicador de incidência de juros na parcela                           | -            |
| **installment_number**            | int     | Número da parcela                                                              | -            |
| **prefixed_amount**               | float   | Valor de juros pré-fixado pago na parcela                                      | -            |
| **principal_amortization_amount** | float   | Valor de amortização pago na parcela                                           | -            |
| **tax_amount**                    | float   | IOF Base da parcela                                                            | -            |
| **amount**                        | float   | Valor total da parcela                                                         | -            |
| **due_interest**                  | float     | Juros remanescente após a data de vencimento da parcela antes de seu pagamento                                   | -            |
| **period**                        | float     | Período da parcela | -            |
| **period_workdays**               | float     | Período da parcela em dias úteis | -            |
| **period_to_disbursement**        | float     | Período até o desembolso | -            |
| **period_workdays_to_disbursement**| float     | Período em dias úteis até o desembolso | -            |
| **calendar_days_to_disbursement** | int     | Quantos dias corridos até o desembolso | -            |
| **workdays**                      | int     | Quantos dias úteis entre uma parcela e outra | -            |
| **workdays_to_disbursement**      | int     | Quantos dias úteis até o desembolso | -            |

### Objeto Interest Rate
| Campo             | Descrição                                                                             | Máx. Caract. |
|-------------------|---------------------------------------------------------------------------------------|--------------|
| **annual_rate**   | Taxa de juros pré/pós expressa em decimal ao ano                                      | -            |
| **daily_rate**    | Taxa de juros pré/pós expressa em decimal ao dia                                      | -            |
| **interest_base** | **[Enumerador Interest Base](#enumerador-interest-base)** - Base de cálculo de juros  | -            |
| **monthly_rate**  | Taxa de juros pré/pós expressa em decimal ao mês                                      | -            |

### Objeto Tax Configuration
| Campo                 | Descrição                                                                             | Máx. Caract. |
|-----------------------|---------------------------------------------------------------------------------------|--------------|
| **base_rate**         | Valor da alíquota base                                                                | -            |
| **additional_rate**   | Valor da alíquota adicional                                                           | -            |

# Enumeradores

### Enumerador _Person Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **legal**              | Pessoa juridica       |
| **natural**            | Pesso física          |

### Enumerador _Account Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **checking_account**   | Conta corrente        |
| **deposit_account**    | Conta de depósito     |
| **guaranteed_account** | Conta de garantia     |
| **investment_account** | Conta de investimento |
| **payment_account**    | Conta de pagamento    |
| **saving_account**     | Conta poupança        |
| **salary_account**     | Conta salário         |

### Enumerador _Amount Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **absolute**           | Valor absoluto        |
| **percentage**         | Valor percentual      |

### Enumerador _Interest Type_
| Enumerador           | Descrição                                                                                                                                                                |
|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **pre_price_days**   | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado ao dia                                                                                     |
| **pre_price**        | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado em períodos fixos (30 dias)                                                                |
| **pre_sac**          | Método de amortização SAC (amortização constante) com cálculo do juros pré-fixado ao dia                                                                                 |
| **post_sac**         | Método de amortização SAC (amortização constante) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                  |
| **post_price**       | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) em períodos fixos (30 dias) |
| **post_price_days**  | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                      |

### Enumerador _Credit Operation Type_
| Enumerador    | Descrição                      |
|---------------|--------------------------------|
| **ccb**       | Cédula de Crédito Bancário     |
| **cce**       | Cédula de Crédito à Exportação |
| **cci**       | Cédula de Crédito Imobiliário  |
| **nce**       | Nota de Crédito à Exportação   |

### Enumerador _Interest Base_
| Enumerador            | Descrição                                                                 |
|-----------------------|---------------------------------------------------------------------------|
| **workdays**          | Base de cálculo de juros em dias úteis considerando um ano de 252 dias    |
| **calendar_days**     | Base de cálculo de juros em dias corridos considerando um ano de 360 dias |
| **calendar_days_365** | Base de cálculo de juros em dias corridos considerando um ano de 365 dias |

### Enumerador _Fee Type_
Cada tipo de fee deve ser previamente habilitado e configurado pela QI Tech

| Enumerador            | Descrição                                                                  |
|-----------------------|----------------------------------------------------------------------------|
| **tac**               | Tarifa de abertura de cadastro                                             |
| **spread**            | Ágio cobrado no valor de aquisição da operação de crédito                  |
| **warranty_analysis** | Tarifa de análise de garantias                                             |
| **ted_fee**           | Tarifa de TED                                                              |
| **spread_ted_fee**    | Ágio da tarifa de TED cobrado no valor de aquisição da operação de crédito |

### Enumerador _Origin Type_
Cada tipo de fee deve ser previamente habilitado e configurado pela QI Tech

| Enumerador            | Descrição                                                                  |
|-----------------------|----------------------------------------------------------------------------|
| **internal**          | Tarifa de origem interna                                                   |
| **external**          | Tarifa de origem externa                                                   |

---

# Simulando erros em Sandbox

URL: /documentation/emissao_de_divida/simulando_erros

Esta página vai auxiliar a simular erros em ambiente Sandbox.

# Dados para simular erro no desembolso

Utilizando os seguintes dados bancários, você consegue simular um erro no desembolso de uma operação para a reapresentação de dados bancários.

```json
account_digit: 0
account_number: 11581339
bank_code: 001
branch_number: 2874
document_number: Ajustar conforme documento de tomador
Nome: Ajustar conforme nome de tomador
```

# Dados para simular erros utilizando a assinatura no QI Sign

Utilizando os seguintes números no início do documento do tomador, você consegue simular erros fluxo de assinatura do QI Sign.

Início de documento:
```json
0: Fraude detectada na assinatura
8: Falhou na validação de prova de vida
9: Validação facial não alcançou a pontuação mínima permitida
```

---

# Possíveis status de uma dívida

URL: /documentation/emissao_de_divida/status_de_uma_divida

## Máquina de estados
Após realizar a emissão do contrato de crédito, o mesmo pode ser acompanhado através dos Webhooks da plataforma QI Tech.

Os estados que o contrato passa estão descritos abaixo:

**waiting_signature**

Após emitido, o primeiro estado em que um contrato se encontra é o de "aguardando assinatura", esse status permanece até a finalização do processo de assinaturas.

**signature_finished**

Esse é um estado transitório, após receber a última assinatura o contrato passa momentaneamente para o status "signature_finished", quando o webhook é disparado e transita para o próximo estado imediatamente.

**signed** 

Após assinado o contrato fica com status "assinado".

**issued**

Este é um estado transitório, na data de desembolso de um contrato ele entra no status "issued" aguardando o desembolso para transitar para o próximo estado.

**disbursed**

Esse é um estado transitório, após o desembolso ser realizado o contrato passa momentaneamente para o status "disbursed", quando o webhook é disparado e transita para o próximo estado imediatamente.

**opened**

Após desembolsado o contrato fica com status "em aberto" - esse é o último estado caso a QI não seja o agente de cobrança da operação.

**settled**

Quando a QI Tech é o agente de cobrança da operação de crédito, o contrato é acompanhado até ser quitado, após o pagamento da última parcela seu status muda para "settled" e um Webhook é disparado.

**canceled**

Este estado, indica que ocorreu algum erro no fluxo da operação, como por exemplo falha no desembolso do crédito ao devedor ou então a não assinatura do contrato em tempo hábil.

**canceled_permanently**

Quando existir alguma garantia/averbação atrelada ao contrato, este será o estado final, que significará que a garantia/averbação foi liberada e o contrato foi permanentemente cancelado.

---

# Consulta de instituições financeiras

URL: /documentation/lista_de_instituicoes_financeiras/consulta_de_instituicoes_financeiras

## Request

ENDPOINT /financial_institution
MÉTODO GET

### QUERY PARAMS

| Campo | Descrição |
|---|---|
| `ispb_number` | Número ISPB da instituição financeira. |
| `name` | Nome da instituição financeira |
| `compe_number` | Número Compe da instituição financeira. |
| `min_str_start_date` | Data mínima de início da operação. |
| `max_str_start_date` | Data máxima de início da operação. |
| `page_number` | Página atual que está sendo consultada |
| `page_size` | Quantidade de resultados por página |

## Response

status: 200

Response Body: Consulta com paginação

```json
{
  "data": [
    {
      "compe_number": "001",
      "created_at": "2019-06-19T17:31:51",
      "is_active": true,
      "is_compe_participant": true,
      "ispb_number": "00000000",
      "name": "Banco do Brasil S.A.",
      "str_start_date": "2002-04-22"
    },
    {
      "compe_number": "070",
      "created_at": "2019-06-19T17:31:51",
      "is_active": true,
      "is_compe_participant": true,
      "ispb_number": "00000208",
      "name": "Banco de Brasília S.A.",
      "str_start_date": "2002-04-22"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": 2,
    "rows_per_page": 2,
    "total_pages": 115,
    "total_rows": 230
  }
}

```

Response Body: Consulta sem paginação

```json
{
  "94968518": {
    "compe_number": "289",
    "is_active": true,
    "is_compe_participant": false,
    "ispb_number": "94968518",
    "name": "Decyseo Corretora de Câmbio Ltda.",
    "str_start_date": "2019-03-14"
  },
  "00000000": {
    "compe_number": "001",
    "is_active": true,
    "is_compe_participant": true,
    "ispb_number": "00000000",
    "name": "Banco do Brasil S.A.",
    "str_start_date": "2002-04-22"
  }
}

```

:::info

Os parâmetros da requisição são opcionais, caso nenhum seja especificado, todas as instituições serão retornadas na resposta da requisição (sem paginação).

:::

---

# Configuração de notificação

URL: /documentation/notificacoes/configuracao_de_notificacao

Aqui demostraremos como você poderá escolher quais tipos de eventos serão notificados e por quais meios a notificação ocorrerá.

:::warning Aviso
Caso não exista uma configuração de notificação para um evento, você não receberá notificações do mesmo.
::: 

## Criação de configuração de notificação

## Request

ENDPOINT /notification/notification_configuration
MÉTODO POST

Request Body

```json
{
    "callback": true,
    "email": true,
    "event_type": "account_transaction",
    "sms": true
}
```

## Response

STATUS 201

Response Body

```json
{"notification_configuration_key":  "69850ae3-28bc-4779-a871-e73e1e883413"}
```

## Listando configurações de notificação

## Request

ENDPOINT /notification/notification_configurations
MÉTODO GET

## Response

STATUS 200

Response Body

```json
{
  "data": [{
    "event_type": "account_request",
    "sms_template": "b35ed5fc-fdda-4618-84e6-b49876dabf23",
    "template_configuration_key": "480521cc-b0c9-4938-bd11-0000be11c66b"
  }],
  "pagination": {
        "current_page": 1,
        "next_page": null,
        "rows_per_page": 1
    }
}
```

## Atualização de configuração de notificação

## Request

ENDPOINT /notification/notification_configuration/ NOTIFICATION_CONFIGURATION_KEY
MÉTODO PUT

Request Body

```json
{
    "callback": true,
    "email": true,
    "event_type": "account_transaction",
    "sms": false
}
```

## Response

STATUS 200

Response Body

```json
{}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                    | Descrição (eng)<br/>`Description`               | Descrição (ptbr)<br/>`translation`                                   |
|-------------|----------------------|---------------------------------------|-------------------------------------------------|----------------------------------------------------------------------|
| 400         | PMB000026            | Invalid notification for event type   | Invalid notification method for event type      | Método de notificação inválido para tipo de evento                   |

---

# Configuração de template

URL: /documentation/notificacoes/configuracao_template

Esta configuração permite definir templates de SMS e e-mail para um evento.

## Criação de configuração de template

## Request

ENDPOINT /notification/template_configuration
MÉTODO POST

Request Body

```json
{
    "event_type": "bank_slip",
    "email_template_key": "e5c337db-dacc-4f1d-8a3e-919628640dd5"
}
``` 

## Response

STATUS 201

Response Body

```json
{"template_configuration_key": "e5c337db-dacc-4f1d-8a3e-919628640d51"}
```

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title` | Descrição (eng)<br/>`Description`                                       | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|--------------------|-------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | PMB000023            | Bad Request        | Already exists an template configuration to this person and event type  | Já existe um template configuration para essa pessoa e event type  |

## Listagem de configuração de template

## Request

ENDPOINT /notification/template_configurations
MÉTODO GET

## Response

STATUS 200

Response Body

```json
{
    "data": [
        {
            "event_type": "bank_slip",
            "sms_template": null,
            "template_configuration_key": "e5c337db-dacc-4f1d-8a3e-919628640d51",
            "email_template": "e5c337db-dacc-4f1d-8a3e-919628640dd5"
        },
        {
            "event_type": "account_transaction",
            "sms_template": null,
            "template_configuration_key": "e5c337db-dacc-4f1d-8a3e-919628640ds1",
            "email_template": "e5c337db-dacc-4f1d-8a3e-919628640dd5"
        }
    ],
    "pagination": {
        "current_page": 0,
        "next_page": null,
        "rows_per_page": 10
    }
}
```

## Atualização de configuração de template

## Request

ENDPOINT /notification/template_configuration/ TEMPLATE_CONFIGURATION_KEY
MÉTODO PUT

Request Body

```json
{
    "event_type": "bank_slip",
    "email_template_key": "e5c337db-dacc-4f1d-8a3e-919628640dd5"
}
``` 

## Response

STATUS 201

Response Body

```json
{}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title` | Descrição (eng)<br/>`Description`        | Descrição (ptbr)<br/>`translation`                     |
|-------------|----------------------|--------------------|------------------------------------------|--------------------------------------------------------|
| 400         | PMB000022            | Bad Request        | The event type (event type) is not valid | O tipo de evento (tipo de evento) enviado não é válido |
| 404         | PMB000024            | Not Found          | Template configuration not found         | Configuração de template não encontrada                |

---

# Gerenciamento de Notificações Personalizadas

URL: /documentation/notificacoes/introducao

Nossa plataforma oferece uma gama abrangente de opções de notificação, incluindo e-mails, mensagens SMS e webhooks, permitindo que os usuários escolham o canal que melhor se adapta às suas necessidades e preferências. Além disso, proporcionamos a capacidade de personalização por meio de templates para e-mails e SMS, garantindo que as notificações estejam alinhadas com a identidade e estilo de comunicação do usuário.

Um dos aspectos mais notáveis do nosso sistema é a capacidade de os usuários definirem quando desejam receber notificações para eventos específicos. Essa flexibilidade permite uma gestão mais eficiente do fluxo de informações, garantindo que os usuários recebam apenas as notificações mais relevantes no momento mais oportuno.

Nesta seção de documentação, detalharemos os diferentes aspectos do Gerenciamento de Notificações Personalizadas, desde a configuração inicial até a personalização avançada, proporcionando aos usuários uma compreensão abrangente de como aproveitar ao máximo essa funcionalidade essencial em nossa plataforma.

---

# Reenvio de Notificações

URL: /documentation/notificacoes/reenvio_de_notificacoes

Aqui demonstramos como realizar o reenvio de callbacks de webhooks no sistema. O reenvio pode ser realizado para qualquer callback, independentemente do seu status atual.

## Fluxo de notificações
1. É necessário primeiro fazer uma consulta dos eventos elegíveis para o reenvio utilizando o método listado no **[Request](#request)**   
2. Após a coleta de dados utilizando o método GET, para fazer o reenvio de wenhooks, você deve passar as chaves event_key e callback_key dentro da sua requisição PATCH, conforme apresentado no guia de **[Reenvio de callback](#reenviando-um-callback)**

## Listando eventos elegíveis para reenvio

## Request

ENDPOINT /notification/events
MÉTODO GET

### Query Parameters

| Parâmetro        | Tipo    | Descrição                                                        |
|------------------|---------|------------------------------------------------------------------|
| event_type       | string  | Tipo do evento (ex: "debt_disbursed")                          |
| callback_status  | string  | Status do callback (ex: "failed", "sent", etc.)              |
| origin_key       | uuid    | Chave única da origem do evento                                  |
| start_datetime   | string  | Data/hora inicial no formato "YYYY-MM-DDTHH:mm:ssZ" (Fuso Horário UTC)            |
| end_datetime     | string  | Data/hora final no formato "YYYY-MM-DDTHH:mm:ssZ" (Fuso Horário UTC)              |

> **Observação:**
> A janela de tempo entre `start_datetime` e `end_datetime` deve ser no máximo 14 dias. Caso contrário, será retornado um erro.

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "event_key": "<UUID>",
      "event_type": "debt_disbursed",
      "status": "processed",
      "origin_enumerator": "account",
      "origin_key": "<UUID>",
      "callbacks": [
        {
          "callback_key": "<UUID>",
          "callback_status": "failed"
        }
      ],
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 25,
  }
}
```

### Response Parameters

| Parâmetro        | Tipo    | Descrição                                                        |
|------------------|---------|------------------------------------------------------------------|
| event_key       | uuid  |  Chave única do evento                         |
| event_type       | string  | Tipo do evento (ex: "debt_disbursed")                          |
| status       | string  | Status do evento (ex: "processed")                          |
| origin_enumerator       | string    |  API de origem do evento (ex: "lego")                                 |
| origin_key       | uuid    | Chave única do recurso da API de origem                                  |
| callbacks  | list  |  Lista de objetos Callback            |
| pagination       | object  | Objeto Pagination                        |

### Callback Object

| Parâmetro        | Tipo    | Descrição                                                        |
|------------------|---------|------------------------------------------------------------------|
| callback_key     | uuid    | Chave única do callback   |
| callback_status  | string  | Status do callback (ex: "failed", "sent", etc.)   |

### Pagination Object

| Parâmetro        | Tipo    | Descrição                                                        |
|------------------|---------|------------------------------------------------------------------|
| current_page     | integer | Número da página atual                                           |
| rows_per_page    | integer | Quantidade de registros por página                               |

STATUS 400

Response Body: Error

```json
{
  "code": "PMB000032",
  "title": "Bad Request",
  "description": "Selected timeframe should have a maximum of 14 days",
  "translation": "O intervalo de tempo selecionado deve ter no máximo 14 dias",
}
```

## Reenviando um callback

## Request

:::important Limite de tempo
A janela de tempo para busca de eventos é limitada a 14 dias.
:::

:::warning Observações
Verifique que está utilizando a event_key e a callback_key obtidas na request feita anteriormente.
:::

ENDPOINT `/notification/event/{event_key}/callback/{callback_key}/retry`
MÉTODO PATCH

### Path Parameters

| Parâmetro    | Tipo  | Descrição                                      |
|--------------|-------|------------------------------------------------|
| event_key    | uuid  | Chave única do evento (obtida na listagem)     |
| callback_key | uuid  | Chave única do callback (obtida na listagem)   |

**Exemplo de Uso**

```bash
curl -X PATCH "https://api-auth.sandbox.qitech.app/notification/event/123e4567-e89b-12d3-a456-426614174000/callback/987fcdeb-51a2-43d7-9012-345678901234/retry"
```

## Response

STATUS 204

Response Body

```json
{}
```

## Troubleshooting

Em caso de problemas com o reenvio de callbacks:

1. Verifique se o `event_key` e `callback_key` estão corretos.
2. Confirme se o callback existe.
3. Verifique se a janela de tempo está dentro do limite de 14 dias.
4. Em caso de erro persistente, entre em contato com o suporte técnico.

---

# Templates

URL: /documentation/notificacoes/template

Aqui veremos como criar templates do tipo e-mail e sms, esses templates permitirão personalizar as mensagens de texto e email enviados em cada tipo de evento.

Caso não seja configurado e a configuração esteja habilitada será enviado o template padrão da nossa plataforma.

Obs: onde você desejar inserir uma variável customizada basta adicionar no texto '[nome_da_variável]' 

## Criação de template SMS

## Request

ENDPOINT /notification/template
MÉTODO POST

Request Body

```json
{
    "template_type": "sms",
    "template": "Olá seu token e [name]"
}
```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `template_type` *|  string | Tipo do template -> Valor default `sms` | - | |
| `template` * |  string | Texto do sms | 160 |

## Response

STATUS 201

Response Body

```json
{
    "template_key": "17f49953-29a1-439c-a6be-db37a32e2746"
}
```

## Criação de template E-mail

:::warning Aviso
O template de email se trata de um documento HTML compátivel com html para email.

O mesmo deve ser encodado em base64.
::: 

## Request

ENDPOINT /notification/template
MÉTODO POST

Request Body

```json
{
    "template_type": "email",
    "subject": "Título do email",
    "template": "PCFET0NUWVBFIGh0bWw+CjxodG1sIHhtbG5zOnY9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIiB4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiIGxhbmc9ImVuIj4KICA8aGVhZD4KICAgIDx0aXRsZT48L3RpdGxlPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPCEtLVtpZiBtc29dPgoJCQkJPHhtbD4KCQkJCQk8bzpPZmZpY2VEb2N1bWVudFNldHRpbmdzPgoJCQkJCQk8bzpQaXhlbHNQZXJJbmNoPjk2PC9vOlBpeGVsc1BlckluY2g+CgkJCQkJCTxvOkFsbG93UE5HLz4KCQkJCQk8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4KCQkJCTwveG1sPgoJCQkJPCFbZW5kaWZdLS0+CiAgICA8IS0tW2lmICFtc29dPgoJCQkJPCEtLT4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Nb250c2VycmF0IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICAgIDwhLS0KCQkJCQk8IVtlbmRpZl0tLT4KICAgIDxzdHlsZT4KICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgYm9keSB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIGFbeC1hcHBsZS1kYXRhLWRldGVjdG9yc10gewogICAgICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgICNNZXNzYWdlVmlld0JvZHkgYSB7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICBwIHsKICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdAogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDo2MjBweCkgewogICAgICAgIC5yb3ctY29udGVudCB7CiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICAgIH0KCiAgICAgICAgLnN0YWNrIC5jb2x1bW4gewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiB3aXRoOwogICAgICAgIH0KICAgICAgfQogICAgPC9zdHlsZT4KICA8L2hlYWQ+CiAgPGJvZHkgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBub25lOyB0ZXh0LXNpemUtYWRqdXN0OiBub25lOyI+CiAgICA8dGFibGUgY2xhc3M9Im5sLWNvbnRhaW5lciIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiByb2xlPSJwcmVzZW50YXRpb24iIHN0eWxlPSJtc28tdGFibGUtbHNwYWNlOiAwcHQ7IG1zby10YWJsZS1yc3BhY2U6IDBwdDsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsiPgogICAgICA8dGJvZHk+CiAgICAgICAgPHRyPgogICAgICAgICAgPHRkPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InJvdyByb3ctMSIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiByb2xlPSJwcmVzZW50YXRpb24iIHN0eWxlPSJtc28tdGFibGUtbHNwYWNlOiAwcHQ7IG1zby10YWJsZS1yc3BhY2U6IDBwdDsiPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0icm93LWNvbnRlbnQgc3RhY2siIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiByb2xlPSJwcmVzZW50YXRpb24iIHN0eWxlPSJtc28tdGFibGUtbHNwYWNlOiAwcHQ7IG1zby10YWJsZS1yc3BhY2U6IDBwdDsgY29sb3I6ICMwMDAwMDA7IHdpZHRoOiA2MDBweDsiIHdpZHRoPSI2MDAiPgogICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2x1bW4iIHdpZHRoPSIxMDAlIiBzdHlsZT0ibXNvLXRhYmxlLWxzcGFjZTogMHB0OyBtc28tdGFibGUtcnNwYWNlOiAwcHQ7IGZvbnQtd2VpZ2h0OiA0MDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHBhZGRpbmctdG9wOiA1cHg7IHBhZGRpbmctYm90dG9tOiA1cHg7IGJvcmRlci10b3A6IDBweDsgYm9yZGVyLXJpZ2h0OiAwcHg7IGJvcmRlci1ib3R0b206IDBweDsgYm9yZGVyLWxlZnQ6IDBweDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJpbWFnZV9ibG9jayIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjIwIiBjZWxsc3BhY2luZz0iMCIgcm9sZT0icHJlc2VudGF0aW9uIiBzdHlsZT0ibXNvLXRhYmxlLWxzcGFjZTogMHB0OyBtc28tdGFibGUtcnNwYWNlOiAwcHQ7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgYWxpZ249ImNlbnRlciIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEwcHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly85bzM3Lm1qdC5sdS90cGxpbWcvOW8zNy9iLzF5ejdpL2hrM3NwLnBuZyIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IGF1dG87IGJvcmRlcjogMDsgd2lkdGg6IDEyMHB4OyBtYXgtd2lkdGg6IDEwMCU7IiB3aWR0aD0iMTIwIiBhbHQ9InBsYWNlaG9sZGVyIGxvZ28iIHRpdGxlPSJwbGFjZWhvbGRlciBsb2dvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0icm93IHJvdy0yIiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHJvbGU9InByZXNlbnRhdGlvbiIgc3R5bGU9Im1zby10YWJsZS1sc3BhY2U6IDBwdDsgbXNvLXRhYmxlLXJzcGFjZTogMHB0OyI+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJyb3ctY29udGVudCBzdGFjayIgYWxpZ249ImNlbnRlciIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHJvbGU9InByZXNlbnRhdGlvbiIgc3R5bGU9Im1zby10YWJsZS1sc3BhY2U6IDBwdDsgbXNvLXRhYmxlLXJzcGFjZTogMHB0OyBjb2xvcjogIzAwMDAwMDsgd2lkdGg6IDYwMHB4OyIgd2lkdGg9IjYwMCI+CiAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbHVtbiIgd2lkdGg9IjEwMCUiIHN0eWxlPSJtc28tdGFibGUtbHNwYWNlOiAwcHQ7IG1zby10YWJsZS1yc3BhY2U6IDBwdDsgZm9udC13ZWlnaHQ6IDQwMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgcGFkZGluZy10b3A6IDVweDsgcGFkZGluZy1ib3R0b206IDVweDsgYm9yZGVyLXRvcDogMHB4OyBib3JkZXItcmlnaHQ6IDBweDsgYm9yZGVyLWJvdHRvbTogMHB4OyBib3JkZXItbGVmdDogMHB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImhlYWRpbmdfYmxvY2siIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgcm9sZT0icHJlc2VudGF0aW9uIiBzdHlsZT0ibXNvLXRhYmxlLWxzcGFjZTogMHB0OyBtc28tdGFibGUtcnNwYWNlOiAwcHQ7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0icGFkZGluZy1ib3R0b206MjBweDtwYWRkaW5nLWxlZnQ6MjBweDtwYWRkaW5nLXJpZ2h0OjIwcHg7cGFkZGluZy10b3A6NjBweDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjogMDsgY29sb3I6ICMwMDAwMDA7IGRpcmVjdGlvbjogbHRyOyBmb250LWZhbWlseTogTW9udHNlcnJhdCwgVHJlYnVjaGV0IE1TLCBMdWNpZGEgR3JhbmRlLCBMdWNpZGEgU2FucyBVbmljb2RlLCBMdWNpZGEgU2FucywgVGFob21hLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDI1cHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IGxpbmUtaGVpZ2h0OiAxMjAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDA7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5NQU5VVEVOw4fDg08gUFJPR1JBTUFEQTwvc3Ryb25nPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0ZXh0X2Jsb2NrIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHJvbGU9InByZXNlbnRhdGlvbiIgc3R5bGU9Im1zby10YWJsZS1sc3BhY2U6IDBwdDsgbXNvLXRhYmxlLXJzcGFjZTogMHB0OyB3b3JkLWJyZWFrOiBicmVhay13b3JkOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9InBhZGRpbmctYm90dG9tOjgwcHg7cGFkZGluZy1sZWZ0OjIwcHg7cGFkZGluZy1yaWdodDoyMHB4O3BhZGRpbmctdG9wOjYwcHg7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxNnB4OyBtc28tbGluZS1oZWlnaHQtYWx0OiAxNi44cHg7IGNvbG9yOiAjMDAwMDAwOyBsaW5lLWhlaWdodDogMS4yOyBmb250LWZhbWlseTogTW9udHNlcnJhdCwgVHJlYnVjaGV0IE1TLCBMdWNpZGEgR3JhbmRlLCBMdWNpZGEgU2FucyBVbmljb2RlLCBMdWNpZGEgU2FucywgVGFob21hLCBzYW5zLXNlcmlmOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxOHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+SW5mb3JtYW1vcyBxdWUgbm8gZGlhIDxiPjE4IGRlIGZldmVyZWlybyAoZG9taW5nbyk8L2I+LCBhIFFJIFRlY2ggcmVhbGl6YXLDoSB1bWEgbWFudXRlbsOnw6NvIGdlcmFsIGVtIHRvZG9zIG9zIHNldXMgc2lzdGVtYXMgZSBzZXJ2acOnb3MuIEVzdGEgbWFudXRlbsOnw6NvIHRlcsOhIHVtYSBkdXJhw6fDo28gZGUgdHLDqnMgaG9yYXMsIHRlbmRvIHNldSA8c3Ryb25nPmluw61jaW8gw6BzIDAyOjAwICgyQU0pPC9zdHJvbmc+IGUgc2V1IDxzdHJvbmc+dMOpcm1pbm8gw6BzIDA1OjAwICg1QU0pPC9zdHJvbmc+LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyBmb250LXNpemU6IDE4cHg7IHRleHQtYWxpZ246IGxlZnQ7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+IFNlcnZpw6dvcyA8c3Ryb25nPmluZGlzcG9uw612ZWlzPC9zdHJvbmc+IGR1cmFudGUgYSBtYW5udXRlbsOnw6NvOiA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlRvZG9zIHNlcnZpw6dvcyByZWxhY2lvbmFkb3MgYW8gUGl4W25hbWVdPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QbGF0YWZvcm1hIDxzdHJvbmc+cWl0ZWNoLmFwcDwvc3Ryb25nPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+VG9kYXMgYXMgQVBJczwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QVBQIFFpIENvbnRhPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTZweDsgdGV4dC1hbGlnbjogbGVmdDsgbXNvLWxpbmUtaGVpZ2h0LWFsdDogMTYuOHB4OyI+Jm5ic3A7PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTZweDsgdGV4dC1hbGlnbjogbGVmdDsiPkF0ZW5jaW9zYW1lbnRlLDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InJvdyByb3ctMyIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiByb2xlPSJwcmVzZW50YXRpb24iIHN0eWxlPSJtc28tdGFibGUtbHNwYWNlOiAwcHQ7IG1zby10YWJsZS1yc3BhY2U6IDBwdDsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsiPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0icm93LWNvbnRlbnQgc3RhY2siIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiByb2xlPSJwcmVzZW50YXRpb24iIHN0eWxlPSJtc28tdGFibGUtbHNwYWNlOiAwcHQ7IG1zby10YWJsZS1yc3BhY2U6IDBwdDsgY29sb3I6ICNmZmY7IHdpZHRoOiA2MDBweDsiIHdpZHRoPSI2MDAiPgogICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2x1bW4iIHdpZHRoPSIxMDAlIiBzdHlsZT0ibXNvLXRhYmxlLWxzcGFjZTogMHB0OyBtc28tdGFibGUtcnNwYWNlOiAwcHQ7IGZvbnQtd2VpZ2h0OiA0MDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHBhZGRpbmctbGVmdDogMjBweDsgcGFkZGluZy1yaWdodDogMjBweDsgcGFkZGluZy10b3A6IDBweDsgcGFkZGluZy1ib3R0b206IDEwcHg7IGJvcmRlci10b3A6IDBweDsgYm9yZGVyLXJpZ2h0OiAwcHg7IGJvcmRlci1ib3R0b206IDBweDsgYm9yZGVyLWxlZnQ6IDBweDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJpbWFnZV9ibG9jayIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiByb2xlPSJwcmVzZW50YXRpb24iIHN0eWxlPSJtc28tdGFibGUtbHNwYWNlOiAwcHQ7IG1zby10YWJsZS1yc3BhY2U6IDBwdDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MHB4O3BhZGRpbmctbGVmdDowcHg7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgYWxpZ249ImNlbnRlciIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEwcHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly85bzM3Lm1qdC5sdS90cGxpbWcvOW8zNy9iLzF5ejdpL2hrM3NwLnBuZyIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IGF1dG87IGJvcmRlcjogMDsgd2lkdGg6IDEyNnB4OyBtYXgtd2lkdGg6IDEwMCU7IiB3aWR0aD0iMTI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0icm93IHJvdy00IiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHJvbGU9InByZXNlbnRhdGlvbiIgc3R5bGU9Im1zby10YWJsZS1sc3BhY2U6IDBwdDsgbXNvLXRhYmxlLXJzcGFjZTogMHB0OyI+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJyb3ctY29udGVudCBzdGFjayIgYWxpZ249ImNlbnRlciIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHJvbGU9InByZXNlbnRhdGlvbiIgc3R5bGU9Im1zby10YWJsZS1sc3BhY2U6IDBwdDsgbXNvLXRhYmxlLXJzcGFjZTogMHB0OyBjb2xvcjogI2ZmZjsgd2lkdGg6IDYwMHB4OyIgd2lkdGg9IjYwMCI+CiAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbHVtbiIgd2lkdGg9IjEwMCUiIHN0eWxlPSJtc28tdGFibGUtbHNwYWNlOiAwcHQ7IG1zby10YWJsZS1yc3BhY2U6IDBwdDsgZm9udC13ZWlnaHQ6IDQwMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgcGFkZGluZy10b3A6IDVweDsgcGFkZGluZy1ib3R0b206IDVweDsgYm9yZGVyLXRvcDogMHB4OyBib3JkZXItcmlnaHQ6IDBweDsgYm9yZGVyLWJvdHRvbTogMHB4OyBib3JkZXItbGVmdDogMHB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9Imh0bWxfYmxvY2siIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgcm9sZT0icHJlc2VudGF0aW9uIiBzdHlsZT0ibXNvLXRhYmxlLWxzcGFjZTogMHB0OyBtc28tdGFibGUtcnNwYWNlOiAwcHQ7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5Ok1vbnRzZXJyYXQsIFRyZWJ1Y2hldCBNUywgTHVjaWRhIEdyYW5kZSwgTHVjaWRhIFNhbnMgVW5pY29kZSwgTHVjaWRhIFNhbnMsIFRhaG9tYSwgc2Fucy1zZXJpZjt0ZXh0LWFsaWduOmNlbnRlcjsiIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MzBweDsiPiZuYnNwOzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgPC90Ym9keT4KICAgIDwvdGFibGU+CiAgICA8IS0tIEVuZCAtLT4KICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7bWFyZ2luOjBweCBhdXRvO21heC13aWR0aDo2MDBweDsiPgogICAgICA8dGFibGUgYWxpZ249ImNlbnRlciIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHJvbGU9InByZXNlbnRhdGlvbiIgc3R5bGU9ImJhY2tncm91bmQ6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7d2lkdGg6MTAwJTsiPgogICAgICAgIDx0Ym9keT4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHN0eWxlPSJib3JkZXI6MHB4IHNvbGlkICNmZmZmZmY7ZGlyZWN0aW9uOmx0cjtmb250LXNpemU6MHB4O3BhZGRpbmc6MHB4IDMwcHggMjVweCAzMHB4O3BhZGRpbmctYm90dG9tOjI1cHg7cGFkZGluZy1sZWZ0OjMwcHg7cGFkZGluZy1yaWdodDozMHB4O3BhZGRpbmctdG9wOjBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgIDwhLS1baWYgbXNvIHwgSUVdPgoJCQkJCQkJCQkJCQkJCQk8dGFibGUgcm9sZT0icHJlc2VudGF0aW9uIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+CgkJCQkJCQkJCQkJCQkJCQk8dHI+CgkJCQkJCQkJCQkJCQkJCQkJPHRkIGNsYXNzPSIiIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0b3A7d2lkdGg6NTQwcHg7IiA+CgkJCQkJCQkJCQkJCQkJCQkJCTwhW2VuZGlmXS0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1qLWNvbHVtbi1wZXItMTAwIG1qLW91dGxvb2stZ3JvdXAtZml4IiBzdHlsZT0iZm9udC1zaXplOjBweDt0ZXh0LWFsaWduOmxlZnQ7ZGlyZWN0aW9uOmx0cjtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7d2lkdGg6MTAwJTsiPgogICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiByb2xlPSJwcmVzZW50YXRpb24iIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0b3A7IiB3aWR0aD0iMTAwJSI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiIHN0eWxlPSJmb250LXNpemU6MHB4O3BhZGRpbmc6MTBweCAyNXB4O3BhZGRpbmctdG9wOjBweDtwYWRkaW5nLWJvdHRvbTowcHg7d29yZC1icmVhazpicmVhay13b3JkOyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpBcmlhbCwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzAwMDAwMDsiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1idWlsZC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW46IDEwcHggMDsgbWFyZ2luLXRvcDogMTBweDsiIGRhdGEtdGVzdGlkPSIyNFlfYk1SSW9JIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IzE5MjQ3RTtmb250LWZhbWlseTpSb2JvdG87Zm9udC1zaXplOjE0cHg7Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtYnVpbGQtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luOiAxMHB4IDA7IG1hcmdpbi1ib3R0b206IDEwcHg7IiBkYXRhLXRlc3RpZD0iMjRZX2JNUklvSSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiMxOTI0N0U7Zm9udC1mYW1pbHk6Um9ib3RvO2ZvbnQtc2l6ZToxNHB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbW1VOU1VCX0xJTktfRU5dXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwhLS1baWYgbXNvIHwgSUVdPgoJCQkJCQkJCQkJCQkJCQkJCTwvdGQ+CgkJCQkJCQkJCQkJCQkJCQk8L3RyPgoJCQkJCQkJCQkJCQkJCQk8L3RhYmxlPgoJCQkJCQkJCQkJCQkJCQk8IVtlbmRpZl0tLT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90Ym9keT4KICAgICAgPC90YWJsZT4KICAgIDwvZGl2PgogICAgPCEtLVtpZiBtc28gfCBJRV0+CgkJCQkJCQkJCTwvdGQ+CgkJCQkJCQkJPC90cj4KCQkJCQkJCTwvdGFibGU+CgkJCQkJCQk8IVtlbmRpZl0tLT4KICA8L2JvZHk+CjwvaHRtbD4="
}
```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `template_type` *|  string | Tipo do template -> Valor default `email` | - | |
| `template` * |  string | base64 do template | - |
| `subject` * |  string | Título do email | 80 |

## Response

STATUS 201

Response Body

```json
{
    "template_key": "17f49953-29a1-439c-a6be-db37a32e2746"
}
```

## Listando templates

## Request

ENDPOINT /notification/templates
MÉTODO GET

## Response

STATUS 200

Response Body

```json
{
  "data": [{
    "template_key": "b35ed5fc-fdda-4618-84e6-b49876dabf24",
    "template_type": "sms",
    "template_status": "480521cc-b0c9-4938-bd11-0000be11c66b",
    "template": "Seu código é [code]"
  }],
  "pagination": {
        "current_page": 1,
        "next_page": null,
        "rows_per_page": 1
    }
}
```

---

# Eventos

URL: /documentation/notificacoes/tipos_de_evento

Os Eventos disparam notificações, com a listagem de eventos você adiquire o conhecimento sobre quais tipos de notificação poderá receber e quais os meios de recebimento (webhook, e-mail e sms).

Os eventos posssuem os attributos allowed_sms, allowed_email e allowed_callback que indicam a possibilidade de envio de sms, e-mail ou callback respetivamente, além disso no caso de possibilidade de envio de email e sms podem conter o allowed_custom_vars que indicam as variáveis que podem ser substituidas no template utilizando o formato '[allowed_custom_var]' que será substituido pelo seu valor correspondente no envio.

## Consulta de eventos

## Request

ENDPOINT /notification/event_types
MÉTODO GET

### Query Params

| Campo       | Tipo   | Descrição                                    |
|-------------|--------|----------------------------------------------|
| `page`      | number | Página a ser recuperada, valor defaul 0      |
| `page_size` | number | Número de itens a ser recuperado, default 10 |

## Response

STATUS 200

Response Body: Lista de tipos de eventos

```json
{
    "data": [
        {
            "event_type": "incoming_ted",
            "allow_sms": false,
            "allow_email": true,
            "allow_callback": true,
            "allowed_custom_vars": ["total_amount", "target_account_number", "target_document_number"]
        },
        {
            "event_type": "outgoing_ted",
            "allow_sms": true,
            "allow_email": true,
            "allow_callback": false,
            "allowed_custom_vars": null
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": 2,
        "rows_per_page": 2
    }
}

```

---

# Configurando Webhooks

URL: /documentation/primeiros_passos/configurando_webhooks

:::info Veja também
- [Validação de Webhooks](/documentation/primeiros_passos/teste_de_autenticacao/webhook_v2)
:::

Para configurar a URL de recepção das notificações faça login na plataforma QI Tech. Clique em "**Meu perfil**", localizado no menu lateral esquerdo, depois entre na aba Integração. Após isso, insira sua URL na divisão de "**Configurações de webhook**" da página e clique no botão “**SALVAR**”. Caso seja necessário configurar headers para as notificações enviadas é possível utilizar o campo seguinte conforme a imagem abaixo.

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeados de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

:::info Informação
O timeout para resposta dos nossos webhooks é de 10 segundos.
:::

---

# Configurar IP de Integração

URL: /documentation/primeiros_passos/configurar_ip_de_integracao

:::info Veja também
- [Configurando Webhooks](/documentation/primeiros_passos/configurando_webhooks)
- [Validação de Webhooks](/documentation/primeiros_passos/teste_de_autenticacao/webhook_v2)
:::

A QI Tech permite que você restrinja as chamadas à sua integração a uma lista de **endereços IP públicos** (ou ranges CIDR) previamente autorizados. Esse filtro é aplicado antes da validação de assinatura: requisições originadas de IPs fora da sua lista ativa serão recusadas com erro `403 Forbidden` (`GDF000029`).

## Como configurar

Faça login na plataforma QI Tech, clique em "**Meu perfil**" no menu lateral esquerdo e entre na aba **Integração**. Role até a seção "**Whitelist de IPs da API**" e adicione um IP por vez no campo "**IP / CIDR**", clicando em "**ADICIONAR IP**" a cada inclusão.

Formatos aceitos:

- Endereço IPv4 público (ex.: `189.10.20.30`)
- Range CIDR IPv4 com prefixo `/24` ou maior (ex.: `200.100.50.0/24`)
- Endereço IPv6 público
- Range CIDR IPv6 com prefixo `/48` ou maior

Endereços privados/reservados (`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `127.0.0.0/8`, `169.254.0.0/16`) não são aceitos.

## Período de ativação (48 horas)

:::warning Atenção!
Por motivos de segurança, **todo IP cadastrado pelo painel fica em status `Pendente` por 48 horas** antes de se tornar ativo automaticamente. Durante esse período o IP é registrado mas **não autoriza requisições** — quem está na sua whitelist ativa atual continua valendo.

Você receberá um e-mail de confirmação no cadastro do IP e outro quando ele passar para o status `Ativo`.
:::

Após as 48 horas, o IP migra automaticamente para `Ativo` e passa a ser autorizado a chamar a API.

## Ativação emergencial

:::info Liberação imediata
Se você precisar liberar um IP **antes das 48 horas** (ex.: migração de servidor não planejada, incidente de produção), entre em contato com nosso suporte por meio dos canais oficiais e solicite a ativação manual informando:

- O `IP / CIDR` cadastrado
- A `client_integration_key` da sua integração
- O motivo da urgência

Nossa equipe de operações fará a promoção manual e o IP entrará em vigor imediatamente.
:::

## Erros comuns

| Código | Causa | Solução |
|---|---|---|
| `403` / `GDF000029` | Requisição partiu de um IP que não está em status `Ativo` na sua whitelist | Verifique na tela de Integração quais IPs estão ativos. Se o IP recém-cadastrado ainda está `Pendente`, aguarde as 48h ou solicite ativação manual. |
| Cadastro de IP rejeitado | IP/CIDR inválido, privado, ou range muito grande (prefixo menor que `/24` IPv4 ou `/48` IPv6) | Use somente endereços públicos e respeite os tamanhos mínimos de prefixo. |

---

# Introdução

URL: /documentation/primeiros_passos/inicio

Somos a primeira instituição financeira a criar um modelo exclusivo de Bank-as-a-Service (BaaS) do Brasil. Nosso objetivo é ajudar qualquer Fintech/Gestora de Crédito ou empresa a ter acesso a serviços financeiros rápidos, ágeis e seguros, da maneira que quiser. Saiba mais em https://qitech.com.br.

Essa documentação tem como objetivo descrever os diversos endpoints das nossas APIs.

Obs.: Em caso de dúvidas em qualquer etapa do processo, favor entrar em contato com [api@qitech.com.br](mailto:api@qitech.com.br) detalhando seu problema/dúvida que te auxiliaremos.

## Primeiros passos

Antes de iniciar as operações enviando requisições via API para consumo dos serviços QI Tech, é importante que um operador representante da empresa originadora realize os seguintes passos **em ambiente de sandbox**.

## Criação de Perfil de Acesso

1. Enviar solicitação de criação de acesso para o e-mail api@qitech.com.br informando os seguintes dados:
   1. CNPJ da empresa
   2. Nome completo do usuário Master
   3. CPF do usuário Master
   4. E-mail do usuário Master
   5. Telefone celular do usuário Master
2. Após a criação do acesso pelo time da QI Tech, o usuário Master receberá um e-mail com um link para acesso a plataforma da QI Tech em sandbox e uma senha provisória.
3. Ao realizar o primeiro acesso à plataforma o usuário Master deve redefinir a senha de acesso.

## Iniciando a jornada de integração

Existem várias combinações de endpoints que podem ser utilizadas de acordo com a necessidade do parceiro, porém os três primeiros passos são universais independente dos serviços utilizados:

Passo 1: Realizar a validação de Token através do portal QI Tech
Passo 2: [Realizar a troca de chaves e gerar credenciais de integração](/documentation/primeiros_passos/troca_de_chaves)
Passo 3: [Realizar o teste de autenticação](/documentation/primeiros_passos/teste_de_autenticacao/teste_de_autenticacao_v2)
Passo 4: [Configurar a URL de recebimento de webhooks](/documentation/primeiros_passos/configurando_webhooks)

## Informações importantes

Para utilizar nossa API em produção é necessário que se entre com contato com [comercial@qitech.com.br](mailto:comercial@qitech.com.br) para contato comercial e configuração da integração.

---

# Endpoints de teste

URL: /documentation/primeiros_passos/teste_de_autenticacao/endpoints_de_teste

:::info Veja também
- [Teste de autenticação](./teste_de_autenticacao_v2)
- [Exemplo completo de autenticação](./teste_de_autenticacao_completo)
- [Possíveis erros](./possiveis_erros)
:::

## Método GET

### Request

ENDPOINT /test/ API_KEY
MÉTODO GET

### Path Params

| Campo | Tipo | Descrição |
|-|-|-|
| `api_key` * | string | API_KEY do parceiro. |

<CodeSample endpoint="GET /test/{api_key}" samples={{
  curl: `curl -X GET \\
  'https://api-auth.sandbox.qitech.app/test/{api_key}' \\
  -H 'AUTHORIZATION: {encoded_header_token}' \\
  -H 'API-CLIENT-KEY: {api_key}'`,
  python: `import requests

url = f"{base_url}/test/{api_key}"
response = requests.get(url=url, headers=signed_header)
print(response.json())`,
  javascript: `const url = \`\${base_url}/test/\${api_key}\`;
const response = await fetch(url, {
  method: 'GET',
  headers: {
    'AUTHORIZATION': encoded_header_token,
    'API-CLIENT-KEY': api_key,
  },
});
const data = await response.json();
console.log(data);`,
  java: `OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
    .url(requestUrl + "/" + api_key)
    .headers(Headers.of(headers))
    .get()
    .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());`,
}} />

### Response

STATUS 200

Response Body

```json
{
  "test_key": "97ad0301-869c-4481-98b6-294b139e09ae",
  "success": "Congrats!"
}
```

## Método POST

### Request

ENDPOINT test/ API_KEY
MÉTODO POST

<CodeSample endpoint="POST /test/{api_key}" samples={{
  curl: `curl -X POST \\
  'https://api-auth.sandbox.qitech.app/test/{api_key}' \\
  -H 'AUTHORIZATION: {encoded_header_token}' \\
  -H 'API-CLIENT-KEY: {api_key}' \\
  -H 'Content-Type: application/json' \\
  -d '{"name": "QI Tech"}'`,
  python: `import requests

url = f"{base_url}/test/{api_key}"
body = {"name": "QI Tech"}
response = requests.post(url=url, headers=signed_header, json=body)
print(response.json())`,
  javascript: `const url = \`\${base_url}/test/\${api_key}\`;
const response = await fetch(url, {
  method: 'POST',
  headers: {
    'AUTHORIZATION': encoded_header_token,
    'API-CLIENT-KEY': api_key,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ name: 'QI Tech' }),
});
const data = await response.json();
console.log(data);`,
  java: `OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(
    mediaType, "{\\"name\\": \\"QI Tech\\"}");
Request request = new Request.Builder()
    .url(requestUrl + "/" + api_key)
    .headers(Headers.of(headers))
    .post(body)
    .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());`,
}} />

Request Body

```json
{
  "name": "QI Tech"
}
```

### Path Params

| Campo | Tipo | Descrição |
|-|-|-|
| `api_key` * | string | API_KEY do parceiro. |

### Response

STATUS 201

Response Body

```json
{
  "name": "QI Tech",
  "success": "Congrats!"
}
```

---

# Possíveis erros

URL: /documentation/primeiros_passos/teste_de_autenticacao/possiveis_erros

:::info Veja também
- [Teste de autenticação](./teste_de_autenticacao_v2)
- [Exemplo completo de autenticação](./teste_de_autenticacao_completo)
- [Endpoints de teste](./endpoints_de_teste)
:::

## Erro no token

Caso a assinatura da string_to_sign esteja incorreta, um erro será apresentado relativo ao encoded_header_token :

STATUS 401

Response Body

```json
{
	"title": "QI Unauthenticated",
	"description": "Please provide valid credentials as part of the request. (Documentation: https://qitech.com.br/documentation) Details: Failed while decoding the authentication token",
	"translation": "Por favor forneça credenciais válidas como parte da request. (Documentação: https://qitech.com.br/documentation) Detalhes: Falha ao decodificar o token de autenticação",
	"code": "GDF000014"
}
```

## Erro no <strong>API_KEY</strong>

Caso a API_KEY não seja enviada no header o seguinte erro será apresentado:

STATUS 400

Response Body

```json
{
	"title": "Bad Request",
	"description": "No API Client Key received",
	"translation": "Nenhuma chave de API do cliente recebida",
	"code": "GDF000003"
}
```

## <strong>API_KEY</strong> incorreta

Caso a API_KEY enviada não corresponda a API_KEY apresentada no front QI Tech após o cadastro de chaves o seguinte retorno será apresentado:

STATUS 404

Response Body

```json
  {
  	"code": "GDF000018",
  	"title": "Not Found",
  	"description": "No ClientIntegration found for api_client_key: {api_client_key}.",
  	"translation": "Nenhuma ClientIntegration encontrada para api_client_key: {api_client_key}."
  }
```

## Endpoint não autorizado

Caso o endpoint ou método acessado não esteja autorizado o seguinte erro será retornado:

STATUS 401

Response Body

```json
{
	"title": "QI Unauthenticated",
	"description": "Please provide valid credentials as part of the request. (Documentation: https://qitech.com.br/documentation) Details: Endpoint or HTTP method not allowed for the given ClientIntegration (Action: POST /debt)",
	"translation": "Por favor forneça credenciais válidas como parte da request. (Documentação: https://qitech.com.br/documentation) Detalhes: Endpoint ou método HTTP não permitido para a ClientIntegration fornecida (Action: POST /debt)",
	"code": "GDF000014"
}
```

:::caution Atenção!

Para requisitar acesso ao endpoint que retornou o erro referido, é necessário solicitar a liberação ao time de suporte QI Tech.
:::

---

# Exemplo completo de teste de autenticação

URL: /documentation/primeiros_passos/teste_de_autenticacao/teste_de_autenticacao_completo

:::info Veja também
- [Teste de autenticação passo a passo](./teste_de_autenticacao_v2)
- [Endpoints de teste](./endpoints_de_teste)
- [Possíveis erros](./possiveis_erros)
:::

### Visão Geral
Esta documentação detalha o processo de assinatura e encriptação de cabeçalhos para autenticação segura em requisições à nossa API. O processo garante que as requisições sejam confiáveis e seguras, prevenindo acessos não autorizados e garantindo a integridade dos dados.

:::caution Atenção!

O hash md5 de requisições dos métodos GET e DELETE deve ser gerado com o payload vazio
:::

**Python**

```python
#Aqui, importamos as bibliotecas necessárias ao longo do processo de autenticação.
from jose import jwt
import json
from datetime import datetime
from hashlib import md5
import requests

def get_auth_header(endpoint, method, CLIENT_PRIVATE_KEY, API_KEY, request_body=None):

    if request_body is None:
        request_body = {}

    #O objeto de data e hora informado deve estar em UTC e deve seguir o padrão da norma internacional ISO 8601 ("2023-06-26T19:48:32.759844Z")
    timestamp = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%fZ")

    #Definimos o algoritmo de codificação JWT
    jwt_header = {
        "typ": "JWT",
        "alg": "ES512"
    }

    #Construir hash em MD5 para assinatura no cabeçalho (header) utilizando o payload
    json_body = json.dumps(request_body)
    md5_hash = md5(json_body.encode()).hexdigest()

    #Essas são as infromações necessárias para assinatura do cabeçalho
    jwt_body = {
        "payload_md5": md5_hash,
        "timestamp": timestamp,
        "method": method,
        "uri": endpoint
    }

    #Realizar criptografia do header
    encoded_header_token = jwt.encode(
        claims=jwt_body,
        key=CLIENT_PRIVATE_KEY,
        algorithm="ES512",
        headers=jwt_header
    )

    #Montar header assinado
    signed_header = {
        "AUTHORIZATION": encoded_header_token,
        "API-CLIENT-KEY": API_KEY
    }

    return signed_header

if __name__ == "__main__":

    #Utilizaremos as variáveis base_url, endpoint, method e request_body. Neste exemplo faremos um POST no endpoint "/test".
    #As chaves contidas neste exemplo são apenas para fins de demonstração. Por favor, utilize suas próprias chaves.
    CLIENT_PRIVATE_KEY = "SUA PRIVATE KEY AQUI"
    API_KEY = "SUA API KEY AQUI"

    BASE_URL = "https://api-auth.sandbox.qitech.app"
    METHOD = "POST" #GET ou POST
    REQUEST_BODY = {
        "name": "QI Tech"
    }

    #Para fazer um GET na /test, é necessário inserir a API key ao final, enquanto para fazer um POST no mesmo endpoint, não é necessário
    if METHOD == 'GET':
        ENDPOINT = f"/test/{API_KEY}"
        signed_header = get_auth_header(ENDPOINT, METHOD, CLIENT_PRIVATE_KEY, API_KEY)
        response = requests.get(f"{BASE_URL}{ENDPOINT}", headers=signed_header)
    else:
        ENDPOINT = f"/test/"
        signed_header = get_auth_header(ENDPOINT, METHOD, CLIENT_PRIVATE_KEY, API_KEY, REQUEST_BODY)
        response = requests.post(f"{BASE_URL}{ENDPOINT}", json=REQUEST_BODY, headers=signed_header)

    print(response.status_code)
    print(response.json())
```

**PHP**

```php
<?php
require __DIR__ . '/vendor/autoload.php';

//Aqui, importamos as bibliotecas necessárias ao longo do processo de autenticação.
use Jose\Component\Core\AlgorithmManager;
use Jose\Component\Signature\JWSTokenSupport;
use Jose\Component\Signature\Algorithm\ES512;
use Jose\Component\Signature\Serializer\CompactSerializer;
use Jose\Component\KeyManagement\JWKFactory;
use Jose\Component\Signature\JWSBuilder;

function get_auth_header($endpoint, $method, $privateKeyString, $api_key, $request_body = null) {

    if ($request_body === null) {
        $request_body = (object)[];
    }

    //O objeto de data e hora informado deve estar em UTC e deve seguir o padrão da norma internacional ISO 8601 ("2023-06-26T19:48:32.759844Z")
    $microtime_float = microtime(true);
    $datetime = new DateTimeImmutable('@' . floor($microtime_float), new DateTimeZone('UTC'));
    $timestamp = $datetime->format('Y-m-d\TH:i:s.') . sprintf('%06d', ($microtime_float - floor($microtime_float)) * 1000000) . 'Z';

    //Definimos o algoritmo de codificação JWT
    $header = [
        "typ" => "JWT",
        "alg" => "ES512"
    ];

    //Construir hash em MD5 para assinatura no cabeçalho (header) utilizando o payload
    $request_body_json = json_encode($request_body);
    $md5_hash = md5($request_body_json);

    //Essas são as infromações necessárias para assinatura do cabeçalho
    $payload = [
        "payload_md5" => $md5_hash,
        "timestamp" => $timestamp,
        "method" => $method,
        "uri" => $endpoint
    ];

    // Inicializar Algorithm Manager com ES512
    $algorithmManager = new AlgorithmManager([
        new ES512(),
    ]);

    // Inicializar JWS Builder
    $jwsBuilder = new JWSBuilder(
        $algorithmManager,
        new JWSTokenSupport()
    );

    $privateKey = JWKFactory::createFromKey($privateKeyString);

    //Realizar criptografia do header
    $jws = $jwsBuilder
        ->create()
        ->withPayload(json_encode($payload))
        ->addSignature($privateKey, $header)
        ->build();

    $serializer = new CompactSerializer();
    $jwt = $serializer->serialize($jws, 0);

    //Montar header assinado
    $headers = [
        'Authorization' => $jwt,
        'API-CLIENT-KEY' => $api_key,
    ];

    return $headers;
}

if (php_sapi_name() == 'cli' || (isset($_SERVER['REQUEST_METHOD']) && realpath($_SERVER['SCRIPT_FILENAME']) === __FILE__)) {
    
    //Utilizaremos as variáveis base_url, endpoint, method e request_body. Neste exemplo faremos um POST no endpoint "/test".
    $base_url = "https://api-auth.sandbox.qitech.app";
    $method = "POST"; // HTTP method: "GET" or "POST"

    $request_body = ["name" => "QI Tech"];

    //As chaves contidas neste exemplo são apenas para fins de demonstração. Por favor, utilize suas próprias chaves.
    $api_key = "SUA API KEY AQUI";
    $privateKeyString = "SUA PRIVATE KEY AQUI";

    $response = null;

    #Para fazer um GET na /test, é necessário inserir a API key ao final, enquanto para fazer um POST no mesmo endpoint, não é necessário
    if ($method == 'GET') {
        $endpoint = "/test/" . $api_key;
        $headers = get_auth_header($endpoint, $method, $privateKeyString, $api_key);
        $url = $base_url . $endpoint;
        $response = \WpOrg\Requests\Requests::get($url, $headers);
    } else {
        $endpoint = "/test";
        $headers = get_auth_header($endpoint, $method, $privateKeyString, $api_key, $request_body);
        $url = $base_url . $endpoint;
        $response = \WpOrg\Requests\Requests::post($url, $headers, json_encode($request_body));
    }

    if ($response) {
        echo "HTTP Status Code: " . $response->status_code . "\n";

        $json_response = json_decode($response->body, true);
        if (json_last_error() === JSON_ERROR_NONE) {
            echo "Response JSON:\n";
            print_r($json_response);
        } else {
            echo "Error decoding JSON. Raw Response Text:\n";
            echo $response->body . "\n";

    }
}
?>
```

**Node.js**

```js
//Aqui, importamos as bibliotecas necessárias ao longo do processo de autenticação.
const jwt = require('jsonwebtoken');
const crypto = require('crypto');
const axios = require('axios');

function getAuthHeader(endpoint, method, client_private_key, api_key, request_body = null) {
    if (request_body === null) {
        request_body = {};
    }

    //O objeto de data e hora informado deve estar em UTC e deve seguir o padrão da norma internacional ISO 8601 ("2023-06-26T19:48:32.759844Z")
    const now = new Date();
    const isoString = now.toISOString();
    const timestamp = isoString.slice(0, -1) + (now.getMilliseconds() * 1000).toString().padStart(6, '0').slice(0, 3) + 'Z';

    //Definimos o algoritmo de codificação JWT
    const jwt_header = {
        typ: 'JWT',
        alg: 'ES512'
    };

    //Construir hash em MD5 para assinatura no cabeçalho (header) utilizando o payload
    const str_body = JSON.stringify(request_body);
    const md5_hash = crypto.createHash('md5').update(str_body).digest('hex');

    //Essas são as infromações necessárias para assinatura do cabeçalho
    const jwt_body = {
        payload_md5: md5_hash,
        timestamp: timestamp,
        method: method,
        uri: endpoint
    };

    // Inicializar JWS Builder
    const encoded_header_token = jwt.sign(
        jwt_body,
        client_private_key,
        {
            algorithm: 'ES512',
            header: jwt_header
        }
    );

    //Realizar criptografia do header
    const signed_header = {
        'AUTHORIZATION': encoded_header_token,
        'API-CLIENT-KEY': api_key
    };

    return signed_header;
}
//Utilizaremos as variáveis BASE_URL, ENDPOINT, METHOD e REQUEST_BODY. Neste exemplo faremos um POST no endpoint "/test".
async function main() {
    const BASE_URL = "https://api-auth.sandbox.qitech.app";
    const METHOD = "POST"; //"POST" ou "GET"

    const REQUEST_BODY = {
        name: "QI Tech"
    };

    const API_KEY = "SUA API KEY AQUI";
    const CLIENT_PRIVATE_KEY = "SUA PRIVATE KEY AQUI";

    let ENDPOINT;
    let url;
    let signed_header;

    try {
    //Para fazer um GET na /test, é necessário inserir a API key ao final, enquanto para fazer um POST no mesmo endpoint, não é necessário
        if (METHOD === 'GET') {
            ENDPOINT = `/test/${API_KEY}`;
            url = `${BASE_URL}${ENDPOINT}`;
            signed_header = getAuthHeader(ENDPOINT, METHOD, CLIENT_PRIVATE_KEY, API_KEY);

            const response = await axios.get(url, { headers: signed_header });
            console.log("Status Code:", response.status);
            console.log("Response Body:", response.data);

        } else {
            ENDPOINT = "/test";
            url = `${BASE_URL}${ENDPOINT}`; // Corrected string interpolation
            signed_header = getAuthHeader(ENDPOINT, METHOD, CLIENT_PRIVATE_KEY, API_KEY, REQUEST_BODY);

            const response = await axios.post(url, REQUEST_BODY, { headers: signed_header });
            console.log("Status Code:", response.status);
            console.log("Response Body:", response.data);
        }
    } catch (error) {
        // More robust error handling for Axios
        if (error.response) {
            console.error("API Error - Status Code:", error.response.status);
            console.error("API Error - Response Data:", error.response.data);
            console.error("API Error - Headers:", error.response.headers);
        } else if (error.request) {
            console.error("Network Error: No response received from server.");
            console.error("Request:", error.request);
        } else {
            console.error("Error setting up request:", error.message);
        }
        console.error("Full Error Object:", error);
    }
}

main();
```

**Java**

```java
//Para Java precisaremos criar um arquivo com o nome de qitech-java-client
//Crie um arquivo chamado pom.xml e cole o final do código dentro dele
// Será necessário dentro do seu projeto criar algumas pastas - crie o seguinte path; src > main > java > com > qitech > api e insira seu arquivo java dentro com o nome de QItechApiClient.java
// Adicione sua private key no diretório raiz de seu projeto no mesmo nível que seu pom
// Para rodar o código abra o terminal ou comand prompt, navegue para a raiz de seu projeto e rode o seguinte código:
// mvn clean install exec:java

//Aqui, importamos as bibliotecas necessárias ao longo do processo de autenticação.
package com.qitech.api;

import com.google.gson.Gson;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.KeyFactory;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.Security;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.text.SimpleDateFormat;
import java.util.Base64;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
import org.bouncycastle.jce.ECNamedCurveTable;
import org.bouncycastle.jce.spec.ECParameterSpec;
import org.bouncycastle.jce.spec.ECPrivateKeySpec;

public class QItechApiClient {

    public static Map<String, String> getAuthHeader(String endpoint, String method, PrivateKey privateKey, String apiKey, Map<String, Object> requestBody) throws NoSuchAlgorithmException {        
        //O objeto de data e hora informado deve estar em UTC e deve seguir o padrão da norma internacional ISO 8601 ("2023-06-26T19:48:32.759844Z")
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");
        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
        String timestamp = sdf.format(new Date());

        //Construir hash em MD5 para assinatura no cabeçalho (header) utilizando o payload
        String jsonBody = jsonToString(requestBody);
        String md5Hash = md5Hash(jsonBody);

        //Essas são as infromações necessárias para assinatura do cabeçalho
        Map<String, Object> jwtBody = new HashMap<>();
        jwtBody.put("payload_md5", md5Hash);
        jwtBody.put("timestamp", timestamp);
        jwtBody.put("method", method);
        jwtBody.put("uri", endpoint);

        //Realizar criptografia do header
        JwtBuilder jwtBuilder = Jwts.builder()
                .setClaims(jwtBody)
                .signWith(privateKey, SignatureAlgorithm.ES512);
        String encodedHeaderToken = jwtBuilder.compact();

        //Montar header assinado
        Map<String, String> signedHeader = new HashMap<>();
        signedHeader.put("AUTHORIZATION", encodedHeaderToken);
        signedHeader.put("API-CLIENT-KEY", apiKey);

        return signedHeader;
    }

    public static void main(String[] args) {
        Security.addProvider(new BouncyCastleProvider());
        OkHttpClient client = null;

        try {

            //Utilizaremos as variáveis base_url, endpoint, method e request_body. Neste exemplo faremos um POST no endpoint "/test".
                //As chaves contidas neste exemplo são apenas para fins de demonstração. Por favor, utilize suas próprias chaves.
            final String BASE_URL = "https://api-auth.sandbox.qitech.app";
            final String PRIVATE_KEY_FILENAME = "private.key";

            final String API_CLIENT_KEY = "SUA API KEY AQUI";
            
            final String METHOD = "GET";  //GET ou POST
            final Map<String, Object> REQUEST_BODY = new HashMap<>();
            REQUEST_BODY.put("name", "QI Tech");

            
            String keyFromFile = readKeyFromFile(PRIVATE_KEY_FILENAME);
            PrivateKey privateKey = getPrivateKey(keyFromFile);

            String endpoint;
            Request request;

            //Para fazer um GET na /test, é necessário inserir a API key ao final, enquanto para fazer um POST no mesmo endpoint, não é necessário

            if ("GET".equalsIgnoreCase(METHOD)) {
                endpoint = "/test/" + API_CLIENT_KEY;

                Map<String, String> headers = getAuthHeader(endpoint, "GET", privateKey, API_CLIENT_KEY, Collections.emptyMap());

                request = new Request.Builder()
                        .url(BASE_URL + endpoint)
                        .headers(okhttp3.Headers.of(headers))
                        .get()
                        .build();

            } else {
                endpoint = "/test";

                Map<String, String> headers = getAuthHeader(endpoint, "POST", privateKey, API_CLIENT_KEY, REQUEST_BODY);

                RequestBody body = RequestBody.create(
                    jsonToString(REQUEST_BODY),
                    MediaType.parse("application/json; charset=utf-8")
                );

                request = new Request.Builder()
                        .url(BASE_URL + endpoint)
                        .headers(okhttp3.Headers.of(headers))
                        .post(body)
                        .build();
            }

            client = new OkHttpClient.Builder()
                    .connectTimeout(30, TimeUnit.SECONDS)
                    .readTimeout(30, TimeUnit.SECONDS)
                    .build();

            System.out.println("--- Sending " + METHOD + " Request ---");
            System.out.println("URL: " + BASE_URL + endpoint);

            try (Response response = client.newCall(request).execute()) {
                System.out.println("\n--- Received Response ---");
                System.out.println("Status Code: " + response.code());
                if (response.body() != null) {
                    System.out.println("Response Body: " + response.body().string());
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (client != null) {
                client.dispatcher().executorService().shutdown();
                client.connectionPool().evictAll();
            }
        }
    }

    // --- Helper Methods ---
    
    private static String readKeyFromFile(String filename) throws IOException {
        String key = new String(Files.readAllBytes(Paths.get(filename)));
        return key.replace("-----BEGIN EC PRIVATE KEY-----", "")
                  .replace("-----END EC PRIVATE KEY-----", "")
                  .replace("-----BEGIN PRIVATE KEY-----", "")
                  .replace("-----END PRIVATE KEY-----", "")
                  .replaceAll("\\s", "");
    }

    private static String jsonToString(Map<String, Object> jsonMap) { return new Gson().toJson(jsonMap); }

    private static String md5Hash(String text) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] array = md.digest(text.getBytes());
        StringBuilder sb = new StringBuilder();
        for (byte b : array) { sb.append(String.format("%02x", b)); }
        return sb.toString();
    }

    private static PrivateKey getPrivateKey(final String encodedPvKey) throws IOException {
        try {
            byte[] derBytes = Base64.getDecoder().decode(encodedPvKey);
            KeyFactory keyFactory = KeyFactory.getInstance("EC", BouncyCastleProvider.PROVIDER_NAME);
            try {
                return keyFactory.generatePrivate(new PKCS8EncodedKeySpec(derBytes));
            } catch (InvalidKeySpecException e) {
                org.bouncycastle.asn1.sec.ECPrivateKey sec1Key = org.bouncycastle.asn1.sec.ECPrivateKey.getInstance(derBytes);
                ECParameterSpec ecParameterSpec = ECNamedCurveTable.getParameterSpec("secp521r1");
                ECPrivateKeySpec privateKeySpec = new ECPrivateKeySpec(sec1Key.getKey(), ecParameterSpec);
                return keyFactory.generatePrivate(privateKeySpec);
            }
        } catch (Exception e) {
            throw new IOException("Failed to parse private key. Key is corrupted or not a valid EC key.", e);
        }
    }
}

////POM File

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.qitech.api</groupId>
    <artifactId>qitech-api-client</artifactId>
    <version>1.0.0</version>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- HTTP Client -->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.12.0</version>
        </dependency>

        <!-- JSON Web Token (JWT) Handling -->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-api</artifactId>
            <version>0.12.5</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-impl</artifactId>
            <version>0.12.5</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-jackson</artifactId>
            <version>0.12.5</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Cryptography Provider for ES512 -->
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk18on</artifactId>
            <version>1.78</version>
        </dependency>

        <!-- JSON Serialization -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.10.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.13.0</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <mainClass>com.qitech.api.QItechApiClient</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

```

**C#**

```c#
//Aqui, importamos as bibliotecas necessárias ao longo do processo de autenticação.
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using Jose;
using Newtonsoft.Json;

public static class QiTechAuthGenerator {
    public static string GetAuthorizationHeader(
        string endpoint,
        string method,
        string clientPrivateKey,
        object requestBody)
    {
        string privateKeyBase64 = clientPrivateKey 
            .Replace("-----BEGIN EC PRIVATE KEY-----", "")
            .Replace("-----END EC PRIVATE KEY-----", "")
            .Replace("\n", "")
            .Replace("\r", "");

        using var privateKey = ECDsa.Create();
        privateKey.ImportECPrivateKey(Convert.FromBase64String(privateKeyBase64), out _);

        string payloadToHash;

        if (method.ToUpper() == "GET") {
            payloadToHash = "{}";
        }
        else {
            payloadToHash = JsonConvert.SerializeObject(requestBody);
        }
        
        //Construir hash em MD5 para assinatura no cabeçalho (header) utilizando o payload
        var payloadMd5Hash = CalculateMd5Hash(payloadToHash);

        //Essas são as infromações necessárias para assinatura do cabeçalho
        var jwtBody = new Dictionary<string, object> {
            { "payload_md5", payloadMd5Hash },
            { "timestamp", timestamp },
            { "method", method },
            { "uri", endpoint }
        };

        //Definimos o algoritmo de codificação JWT
        var jwtHeader = new Dictionary<string, object> {
            { "typ", "JWT" },
            { "alg", "ES512" }
        };

        return JWT.Encode(jwtBody, privateKey, JwsAlgorithm.ES512, jwtHeader);
    }

    //Construir hash em MD5 para assinatura no cabeçalho (header) utilizando o payload
    private static string CalculateMd5Hash(string input) {
        using (var md5 = MD5.Create()) {
            byte[] inputBytes = Encoding.UTF8.GetBytes(input);
            byte[] hashBytes = md5.ComputeHash(inputBytes);

            var builder = new StringBuilder();
            foreach (var b in hashBytes) {
                builder.Append(b.ToString("x2"));
            }
            return builder.ToString();
        }
    }
}

public class QiTechApiClient {
    private readonly string _baseUrl;
    private readonly string _apiKey;
    private readonly string _clientPrivateKey;

    public QiTechApiClient(string baseUrl, string apiKey, string clientPrivateKey) {
        _baseUrl = baseUrl;
        _apiKey = apiKey;
        _clientPrivateKey = clientPrivateKey;
    }

    //Realizar criptografia do header
    public async Task<string> CallEndpointAsync(string endpoint, string method, object requestBody) {
        var signedHeader = QiTechAuthGenerator.GetAuthorizationHeader(
            endpoint,
            method,
            _clientPrivateKey,
            requestBody
        );

        var url = $"{_baseUrl}{endpoint}";

        //Montar header assinado
        using (var client = new HttpClient()) {
            client.DefaultRequestHeaders.Add("AUTHORIZATION", signedHeader);
            client.DefaultRequestHeaders.Add("API-CLIENT-KEY", _apiKey);

            HttpResponseMessage httpResponse;

            if (method.ToUpper() == "GET") {
                httpResponse = await client.GetAsync(url);
            }
            else {
                var jsonBody = JsonConvert.SerializeObject(requestBody);
                var content = new StringContent(jsonBody, Encoding.UTF8, "application/json");
                httpResponse = await client.PostAsync(url, content);
            }

            httpResponse.EnsureSuccessStatusCode();

            var responseContent = await httpResponse.Content.ReadAsStringAsync();

            return responseContent;
        }
    }
}

public class Program {
    public static async Task Main() {
        string response = "";
        
        //Utilizaremos as variáveis baseUrl, endpoint, method e requestBody. Neste exemplo faremos um POST no endpoint "/test".
        var baseUrl = "https://api-auth.sandbox.qitech.app";
        var method = "POST";
        var requestBody = new { name = "QI Tech" };
        
        //As chaves contidas neste exemplo são apenas para fins de demonstração. Por favor, utilize suas próprias chaves.
        var apiKey = "SUA API KEY AQUI";
        var clientPrivateKey = @"SUA PRIVATE KEY AQUI";

        try {
            var apiClient = new QiTechApiClient(baseUrl, apiKey, clientPrivateKey);

            //Para fazer um GET na /test, é necessário inserir a API key ao final, enquanto para fazer um POST no mesmo endpoint, não é necessário
            if (method.ToUpper() == "GET") {
                var endpoint = "/test/" + apiKey;
                response = await apiClient.CallEndpointAsync(endpoint, method, null);
            }
            else {
                var endpoint = "/test";
                response = await apiClient.CallEndpointAsync(endpoint, method, requestBody);
            }

            Console.WriteLine("\nAPI Response:");
            Console.WriteLine(response);
        }
        catch (HttpRequestException ex) {
            Console.WriteLine($"\nHTTP Error: {ex.Message}");
        }
        catch (Exception ex) {
            Console.WriteLine($"\nAn unexpected error occurred: {ex.Message}");
        }
    }
}
```

---

# Teste de autenticação

URL: /documentation/primeiros_passos/teste_de_autenticacao/teste_de_autenticacao_v2

:::info Veja também
- [Exemplo completo de autenticação](./teste_de_autenticacao_completo)
- [Endpoints de teste](./endpoints_de_teste)
- [Possíveis erros](./possiveis_erros)
:::

## 1. Introdução e Configuração Inicial

### Visão Geral
Esta documentação detalha o processo de assinatura e encriptação de cabeçalhos para autenticação segura em requisições à nossa API. O processo garante que as requisições sejam confiáveis e seguras, prevenindo acessos não autorizados e garantindo a integridade dos dados.

### Importar Bibliotecas
Aqui, importamos as bibliotecas necessárias ao longo do processo de autenticação.

**Python**

```python
import json
import requests
from datetime import datetime, timezone
from hashlib import md5
from jose import jwt
```

**PHP**

```php
use Jose\Component\Core\AlgorithmManager;
use Jose\Component\Signature\JWSTokenSupport;
use Jose\Component\Signature\Algorithm\ES512;
use Jose\Component\Signature\Serializer\CompactSerializer;
use Jose\Component\Signature\JWSBuilder;
use Jose\Component\KeyManagement\JWKFactory;
```

**Node.js**

```js
const jose = require('jose');
const jwt = require('jsonwebtoken');
const crypto = require('crypto');
const axios = require('axios');
```

**Java**

```java
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

import java.io.IOException;
import java.io.StringReader;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.util.Base64;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.bouncycastle.openssl.PEMKeyPair;
import org.bouncycastle.openssl.PEMParser;
import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
```

**C#**

```c#
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using Jose;
using Newtonsoft.Json;
```

### Definir variáveis

Utilizaremos as variáveis _base_url_, _endpoint_, _method_ e _request_body_. Neste exemplo faremos um POST no endpoint "/test".

**Python**

```python
base_url = "https://api-auth.sandbox.qitech.app"
endpoint = "/test"
method = "POST"
request_body = {"name": "QI Tech"}
```
  

**PHP**

```php
$base_url = "https://api-auth.sandbox.qitech.app";
$endpoint = "/test";
$method = "POST";
$request_body = ["name" => "QI Tech"];
```
  

**Node.js**

```js
const base_url = 'https://api-auth.sandbox.qitech.app';
const endpoint = '/test';
const method = 'POST';
const request_body = { name: 'QI Tech' };
```
  

**Java**

```java
private static final String base_url = "https://api-auth.sandbox.qitech.app";
private static final String endpoint = "/test";
private static final String method = "POST";
private static final Map<String, Object> request_body = new HashMap<>();
static {
    request_body.put("name", "QI Tech");
}
```
  

**C#**

```c#
var base_url = "https://api-auth.sandbox.qitech.app";
var endpoint = "/test";
var method = "POST";
var request_body = new { name = "QI Tech" };

```
  

## 2. Preparação de Dados para Assinatura

### Inserir dados de criptografia

As chaves contidas neste exemplo são apenas para fins de demonstração. Por favor, utilize suas próprias chaves. 

**Python**

```python
api_key = "f19c6e62-bd82-4334-9839-020810550c44" 

client_private_key = '''-----BEGIN EC PRIVATE KEY-----
MIHbAgEBBEHh1hIeOPE5XNNhn6bxRAmVswsPZ0wZCmzVvP8Tl/LZK9ofVmRVGzll
srU1uezJEyHKYdOHrE2p52xUj+pHzjJvb6AHBgUrgQQAI6GBiQOBhgAEAAofUz1J
hBSOyGHLsnV9Sz0DSWmhl7U+ljqbfa8PKVFWSV3w16I1v2zME5/UzUhHn1gWsjnv
7/ekcLLAQbvqMPNXAfjIhFXLAPzqbB9iCuVua1v0Vgy52rBemOWrJka/Ws2bnKR8
h1N1OxOYeYr6C2jqMygBLktKMAs+282CEiEb4bIv
-----END EC PRIVATE KEY-----'''  
```
  

**PHP**

```php
$api_key = "f19c6e62-bd82-4334-9839-020810550c44"; 

$privateKeyString = "-----BEGIN EC PRIVATE KEY-----
MIHbAgEBBEHh1hIeOPE5XNNhn6bxRAmVswsPZ0wZCmzVvP8Tl/LZK9ofVmRVGzll
srU1uezJEyHKYdOHrE2p52xUj+pHzjJvb6AHBgUrgQQAI6GBiQOBhgAEAAofUz1J
hBSOyGHLsnV9Sz0DSWmhl7U+ljqbfa8PKVFWSV3w16I1v2zME5/UzUhHn1gWsjnv
7/ekcLLAQbvqMPNXAfjIhFXLAPzqbB9iCuVua1v0Vgy52rBemOWrJka/Ws2bnKR8
h1N1OxOYeYr6C2jqMygBLktKMAs+282CEiEb4bIv
-----END EC PRIVATE KEY-----"; 
```
  

**Node.js**

```js
const api_key = 'f19c6e62-bd82-4334-9839-020810550c44'; 

const client_private_key = `-----BEGIN EC PRIVATE KEY-----
MIHbAgEBBEHh1hIeOPE5XNNhn6bxRAmVswsPZ0wZCmzVvP8Tl/LZK9ofVmRVGzll
srU1uezJEyHKYdOHrE2p52xUj+pHzjJvb6AHBgUrgQQAI6GBiQOBhgAEAAofUz1J
hBSOyGHLsnV9Sz0DSWmhl7U+ljqbfa8PKVFWSV3w16I1v2zME5/UzUhHn1gWsjnv
7/ekcLLAQbvqMPNXAfjIhFXLAPzqbB9iCuVua1v0Vgy52rBemOWrJka/Ws2bnKR8
h1N1OxOYeYr6C2jqMygBLktKMAs+282CEiEb4bIv
-----END EC PRIVATE KEY-----`; 
```
  

**Java**

```java
private static final String clientPrivateKey = "MIHbAgEBBEHh1hIeOPE5XNNhn6bxRAmVswsPZ0wZCmzVvP8Tl/LZK9ofVmRVGzll
srU1uezJEyHKYdOHrE2p52xUj+pHzjJvb6AHBgUrgQQAI6GBiQOBhgAEAAofUz1J
hBSOyGHLsnV9Sz0DSWmhl7U+ljqbfa8PKVFWSV3w16I1v2zME5/UzUhHn1gWsjnv
7/ekcLLAQbvqMPNXAfjIhFXLAPzqbB9iCuVua1v0Vgy52rBemOWrJka/Ws2bnKR8
h1N1OxOYeYr6C2jqMygBLktKMAs+282CEiEb4bIv"; 
```
  

**C#**

```c#
var api_key = "f19c6e62-bd82-4334-9839-020810550c44"; 
var client_private_key = @"-----BEGIN EC PRIVATE KEY-----
MIHbAgEBBEHh1hIeOPE5XNNhn6bxRAmVswsPZ0wZCmzVvP8Tl/LZK9ofVmRVGzll
srU1uezJEyHKYdOHrE2p52xUj+pHzjJvb6AHBgUrgQQAI6GBiQOBhgAEAAofUz1J
hBSOyGHLsnV9Sz0DSWmhl7U+ljqbfa8PKVFWSV3w16I1v2zME5/UzUhHn1gWsjnv
7/ekcLLAQbvqMPNXAfjIhFXLAPzqbB9iCuVua1v0Vgy52rBemOWrJka/Ws2bnKR8
h1N1OxOYeYr6C2jqMygBLktKMAs+282CEiEb4bIv
-----END EC PRIVATE KEY-----"; 
```
  

### Formatar data
O objeto de data e hora informado deve estar em UTC e deve seguir o padrão da norma internacional ISO 8601 ("2023-06-26T19:48:32.759844Z")

**Python**

```python
timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
```
  

**PHP**

```php
$timestamp = gmdate('Y-m-d\TH:i:s.u\Z');
```
  

**Node.js**

```js
const timestamp = new Date().toISOString();
```
  

**Java**

```java
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");
String formattedDate = sdf.format(now);
```
  

**C#**

```c#
var timestamp = datetime.now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ");
```
  

### Definir cabeçalho JWT
Definimos o algoritmo de codificação JWT

**Python**

```python
jwt_header = {
    "typ": "JWT",
    "alg": "ES512"
}
```
  

**PHP**

```php
$header = [
    "typ" => "JWT",
    "alg" => "ES512"
];
```
  

**Node.js**

```js
const jwt_header = {
  typ: 'JWT',
  alg: 'ES512'
};
```
  

**Java**

```java
// Não é necessário
```
  

**C#**

```c#
var jwt_header = new Dictionary<string, object>
{ 
  { "typ", "JWT" },
  { "alg", "ES512" }
};
```
  

### Construir hash em MD5 para assinatura no cabeçalho JSON

Construir hash em MD5 para assinatura no cabeçalho (header) utilizando o payload

**Python**

```python
json_body = json.dumps(request_body)
md5_hash = md5(json_body.encode()).hexdigest()
```
  

**PHP**

```php
$request_body_json = json_encode($request_body);
$md5_hash = md5($request_body_json);
```
  

**Node.js**

```js
const str_body = JSON.stringify(request_body);
const md5_hash = crypto.createHash('md5').update(str_body).digest('hex');
```
  

**Java**

```java
String payloadMd5 = md5Hash(jsonToString(request_body));

...

private static String jsonToString(Map<String, Object> jsonMap) {
    return new com.google.gson.Gson().toJson(jsonMap);
}

...

private static String md5Hash(String text) {
    try {
        java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
        byte[] array = md.digest(text.getBytes());
        StringBuilder sb = new StringBuilder();
        for (byte b : array) {
            sb.append(String.format("%02x", b));
        }
        return sb.toString();
    } catch (java.security.NoSuchAlgorithmException e) {
        return null;
    }
}
```
  

**C#**

```c#
var json_body = JsonConvert.SerializeObject(request_body);
var md5_hash = CalculateMD5Hash(json_body);

.

static string CalculateMD5Hash(string input)
{
    using (MD5 md5 = MD5.Create())
    {
        byte[] inputBytes = Encoding.UTF8.GetBytes(input);
        byte[] hashBytes = md5.ComputeHash(inputBytes);

        StringBuilder builder = new StringBuilder();

        for (int i = 0; i < hashBytes.Length; i++)
        {
            builder.Append(hashBytes[i].ToString("x2"));
        }

        return builder.ToString();
    }
}
```
  

:::caution Atenção!

O hash md5 de requisições dos métodos GET e DELETE deve ser gerado com o payload vazio
:::

### Construir hash em MD5 para assinatura no cabeçalho Arquivo

Construir hash em MD5 para assinatura no cabeçalho (header) utilizando um arquivo

**Python**

```python
md5_instance = md5()
for chunk in iter(lambda: file.read(4096), b""):
    md5_instance.update(chunk)

file.seek(0)
md5_hash = md5_instance.hexdigest()
```

**PHP**

```php
$md5_instance = md5_file($file);
$md5_hash = hash_file('md5', $file);
```

**Node.js**

```js
const md5_instance = crypto.createHash('md5');
const readStream = fs.createReadStream(file);

readStream.on('data', (chunk) => {
  md5_instance.update(chunk);
});

readStream.on('end', () => {
  const md5_hash = md5_instance.digest('hex');
  file.seek(0);
```

**Java**

```java
MessageDigest md5_instance = MessageDigest.getInstance("MD5");
byte[] buffer = new byte[4096];
int bytesRead;

try (InputStream inputStream = new FileInputStream(file)) {
    while ((bytesRead = inputStream.read(buffer)) != -1) {
        md5_instance.update(buffer, 0, bytesRead);
    }
}

byte[] md5_hashBytes = md5_instance.digest();
StringBuilder md5_hashBuilder = new StringBuilder();

for (byte b : md5_hashBytes) {
    md5_hashBuilder.append(String.format("%02x", b));
}

String md5_hash = md5_hashBuilder.toString();
```

**C#**

```c#
using (var md5_instance = MD5.Create())
{
    using (var stream = File.OpenRead(file))
    {
        byte[] hash = md5_instance.ComputeHash(stream);
        string md5_hash = BitConverter.ToString(hash).Replace("-", "").ToLower();
        stream.Seek(0, SeekOrigin.Begin);
    }
}
```

### Definir o corpo do JWT
Essas são as infromações necessárias para assinatura do cabeçalho

**Python**

```python
jwt_body = {
    "payload_md5": md5_hash,
    "timestamp": timestamp,
    "method": method,
    "uri": endpoint
}
```
  

**PHP**

```php
$payload = [
    "payload_md5" => $md5_hash,
    "timestamp" => $timestamp,
    "method" => $method,
    "uri" => $endpoint
];
```
  

**Node.js**

```js
const jwt_body = {
  payload_md5: md5_hash,
  timestamp: timestamp,
  method: method,
  uri: endpoint
};
```
  

**Java**

```java
Map<String, Object> jwt_body = new HashMap<>();
jwt_body.put("payload_md5", payloadMd5);
jwt_body.put("timestamp", formattedDate);
jwt_body.put("method", method);
jwt_body.put("uri", endpoint);
```
  

**C#**

```c#
// Ajuste: Remover espaços e quebras de linha no meio da chave privada
client_private_key = client_private_key.Replace("-----BEGIN EC PRIVATE KEY-----", "")
                                       .Replace("-----END EC PRIVATE KEY-----", "")
                                       .Replace("\n", "")
                                       .Replace("\r", "");
// Converter a chave privada para ECDsa
using (ECDsa ecdsa = ECDsa.Create())
{
  ecdsa.ImportECPrivateKey(Convert.FromBase64String(client_private_key), out _);
  var jwt_body = new Dictionary<string, object>
    {
      { "payload_md5", md5_hash },
      { "timestamp", timestamp },
      { "method", method },
      { "uri", endpoint }
    };
```
  

### Realizar criptografia do header

**Python**

```python
encoded_header_token = jwt.encode(
    claims=jwt_body,
    key=client_private_key,
    algorithm="ES512",
    headers=jwt_header
)
```
  

**PHP**

```php
$jws = $jwsBuilder
    ->create()
    ->withPayload(json_encode($payload))
    ->addSignature($privateKey, $header)
    ->build();
$serializer = new CompactSerializer();
$jwt = $serializer->serialize($jws, 0);
```
  

**Node.js**

```js
const encoded_header_token = jwt.sign(
  jwt_body,
  client_private_key,
  {
    algorithm: 'ES512',
    header: jwt_header
  }
);
```
  

**Java**

```java
PrivateKey privateKey = getPrivateKey(clientPrivateKey);
JwtBuilder jwtBuilder = Jwts.builder().setClaims(jwt_body).signWith(privateKey, SignatureAlgorithm.ES512);
String encodedHeaderToken = jwtBuilder.compact();

...

public static PrivateKey getPrivateKey(final String encodedPvKey) {
    try {
        final String pvKey = new String(Base64.getDecoder().decode(encodedPvKey));
        PEMParser pemParser = new PEMParser(new StringReader(pvKey));
        PEMKeyPair pemKeyPair = (PEMKeyPair) pemParser.readObject();

        JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
        KeyPair kp = converter.getKeyPair(pemKeyPair);
        pemParser.close();

        return kp.getPrivate();
    } catch (IOException e) {
        throw new RuntimeException("Couldn't load private key");
    }
}
```
  

**C#**

```c#
var encoded_header_token = JWT.Encode(jwt_body, ecdsa, JwsAlgorithm.ES512, jwt_header);
```
  

### Montar header assinado

**Python**

```python
signed_header = {
    "AUTHORIZATION": encoded_header_token,
    "API-CLIENT-KEY": api_key
}
```
  

**PHP**

```php
$headers = [
    'Authorization' => $jwt,
    'API-CLIENT-KEY' => $api_key,
];
```
  

**Node.js**

```js
const signed_header = {
  AUTHORIZATION: encoded_header_token,
  'API-CLIENT-KEY': api_key
};
```
  

**Java**

```java
Map<String, String> headers = new HashMap<>();
headers.put("AUTHORIZATION", encodedHeaderToken);
headers.put("API-CLIENT-KEY", api_key);
```
  

**C#**

```c#
using (var client = new HttpClient())
    client.DefaultRequestHeaders.Clear();
    client.DefaultRequestHeaders.Add("AUTHORIZATION", encoded_header_token);
    client.DefaultRequestHeaders.Add("API-CLIENT-KEY", api_key);
```
  

### Construir a URL da solicitação

**Python**

```python
url = f"{base_url}{endpoint}"
```
  

**PHP**

```php
$url = $base_url . $endpoint;
```
  

**Node.js**

```js
const url = `${base_url}${endpoint}`;
```
  

**Java**

```java
String requestUrl = base_url + endpoint;
```
  

**C#**

```c#
var url = $"{base_url}{endpoint}";
```
  

## 3. Realizar Requisição

**Python**

```python
post_test_response = requests.post(url=url, headers=signed_header, json=request_body)
```
  

**PHP**

```php
$response = \WpOrg\Requests\Requests::post($url, $headers, json_encode($request_body));
```
  

**Node.js**

```js
axios
  .post(url, request_body, { headers: signed_header })
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });
```
  

**Java**

```java
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
okhttp3.RequestBody requestBody = RequestBody.create(mediaType, jsonToString(request_body));
Request request = new Request.Builder().url(requestUrl).headers(okhttp3.Headers.of(headers))
        .method(method, requestBody).build();
Response response = client.newCall(request).execute();

System.out.println(response.body().string());
```
  

**C#**

```c#
var content = new StringContent(json_body, Encoding.UTF8, "application/json");
var post_test_response = client.PostAsync(url, content).Result;
```

---

# Validação de Webhooks

URL: /documentation/primeiros_passos/teste_de_autenticacao/webhook_v2

:::info Veja também
- [Configurando Webhooks](/documentation/primeiros_passos/configurando_webhooks)
:::

## 1. Introdução e Preparação

### Visão Geral e Importância
Esta seção aborda como a QI Tech envia webhooks com headers assinados, destacando a importância de descriptografar e validar esses headers para garantir segurança nas comunicações.

### Formato das Requisições
As requisições de webhook serão enviadas para a [URL configurada para recebimento dos webhooks](/documentation/primeiros_passos/configurando_webhooks). Elas possuem um formato específico de headers e body, detalhado a seguir.

ENDPOINT URL configurada para recebimento dos webhooks
MÉTODO POST

Request Headers

```json
{
    "AUTHORIZATION": "eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJwYXlsb2FkX21kNSI6IjRhNjAzZjBmMGU3ZGRkZTlkYTJhMGFkM2QzNDFmNzRiIiwidGltZXN0YW1wIjoiMjAyMy0wNi0zMFQxODo1MjoyNy44ODU3MzFaIiwibWV0aG9kIjoiUE9TVCIsInVyaSI6Ii90ZXN0In0.AcNiJqXDdVmlXSbPI6bH41n0KXz9JwVVMgo4Ivqsq5UZjM2WBOTWw3aAvIMAAhjK5OdrURD4cX3dbbnRgzxspUckANRt0hVHRKSkhROHBfZxuTXVfv8oYzwghwiO2MatPBsroC9Vxbh-DEVQJIBigtN9_D5bg8p2-mlVvoxou2I-EwZs",
    "API-CLIENT-KEY": "20d6a816-9d21-4e29-bbe5-2ffb3baacfe9"
}
```

Request Body

```json
{
    "body_sample": "Exemplo de webhook"
}
```

## 2. Configuração e Descriptografia

### Importar bibliotecas

Antes de começar a descriptografia e validação dos webhooks, é essencial importar as bibliotecas necessárias em sua linguagem de programação preferida. Estas bibliotecas facilitarão o trabalho com JWTs, criptografia e outros aspectos relacionados.

**Python**

```python
import json
from datetime import datetime, timedelta
from hashlib import md5
from jose import jwt
```

**PHP**

```php
use Jose\Component\Core\AlgorithmManager;
use Jose\Component\Signature\Algorithm\ES512;
use Jose\Component\Signature\JWSVerifier;
use Jose\Component\KeyManagement\JWKFactory;
use Jose\Component\Signature\Serializer\JWSSerializerManager;
use Jose\Component\Signature\Serializer\CompactSerializer;
```

**Node.js**

```js
const jwt = require('jsonwebtoken');
const crypto = require('crypto');
```

**Java**

```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.io.pem.PemReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
import java.security.PublicKey;
import java.security.Security;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.X509EncodedKeySpec;
import java.util.Base64;
```

**C#**

```c#
using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
using Newtonsoft.Json;
using Jose;
```

### Definir variáveis

Defina as variáveis necessárias para manipular os headers e o corpo do webhook. Isso inclui a chave pública fornecida pela QI Tech, utilizada para descriptografar e validar o webhook.

**Python**

```python
headers = {
    "AUTHORIZATION": "eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJwYXlsb2FkX21kNSI6IjRhNjAzZjBmMGU3ZGRkZTlkYTJhMGFkM2QzNDFmNzRiIiwidGltZXN0YW1wIjoiMjAyMy0wNi0zMFQxODo1MjoyNy44ODU3MzFaIiwibWV0aG9kIjoiUE9TVCIsInVyaSI6Ii90ZXN0In0.AcNiJqXDdVmlXSbPI6bH41n0KXz9JwVVMgo4Ivqsq5UZjM2WBOTWw3aAvIMAAhjK5OdrURD4cX3dbbnRgzxspUckANRt0hVHRKSkhROHBfZxuTXVfv8oYzwghwiO2MatPBsroC9Vxbh-DEVQJIBigtN9_D5bg8p2-mlVvoxou2I-EwZs",
    "API-CLIENT-KEY": "20d6a816-9d21-4e29-bbe5-2ffb3baacfe9",
}
body = {"body_sample": "Exemplo de webhook"}
authorization = headers.get("AUTHORIZATION")
```

**PHP**

```php
$headers = [
    "AUTHORIZATION" => "eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJwYXlsb2FkX21kNSI6IjRhNjAzZjBmMGU3ZGRkZTlkYTJhMGFkM2QzNDFmNzRiIiwidGltZXN0YW1wIjoiMjAyMy0wNi0zMFQxODo1MjoyNy44ODU3MzFaIiwibWV0aG9kIjoiUE9TVCIsInVyaSI6Ii90ZXN0In0.AcNiJqXDdVmlXSbPI6bH41n0KXz9JwVVMgo4Ivqsq5UZjM2WBOTWw3aAvIMAAhjK5OdrURD4cX3dbbnRgzxspUckANRt0hVHRKSkhROHBfZxuTXVfv8oYzwghwiO2MatPBsroC9Vxbh-DEVQJIBigtN9_D5bg8p2-mlVvoxou2I-EwZs",
    "API-CLIENT-KEY" => "20d6a816-9d21-4e29-bbe5-2ffb3baacfe9",
];
$body = ["body_sample" => "Exemplo de webhook"];
$authorization = $headers["AUTHORIZATION"];
```

**Node.js**

```js
const headers = {
  AUTHORIZATION: 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJwYXlsb2FkX21kNSI6IjRhNjAzZjBmMGU3ZGRkZTlkYTJhMGFkM2QzNDFmNzRiIiwidGltZXN0YW1wIjoiMjAyMy0wNi0zMFQxODo1MjoyNy44ODU3MzFaIiwibWV0aG9kIjoiUE9TVCIsInVyaSI6Ii90ZXN0In0.AcNiJqXDdVmlXSbPI6bH41n0KXz9JwVVMgo4Ivqsq5UZjM2WBOTWw3aAvIMAAhjK5OdrURD4cX3dbbnRgzxspUckANRt0hVHRKSkhROHBfZxuTXVfv8oYzwghwiO2MatPBsroC9Vxbh-DEVQJIBigtN9_D5bg8p2-mlVvoxou2I-EwZs',
  'API-CLIENT-KEY': '20d6a816-9d21-4e29-bbe5-2ffb3baacfe9'
};
const body = { body_sample: 'Exemplo de webhook' };
```

**Java**

```java
String authorization = "eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJwYXlsb2FkX21kNSI6IjRhNjAzZjBmMGU3ZGRkZTlkYTJhMGFkM2QzNDFmNzRiIiwidGltZXN0YW1wIjoiMjAyMy0wNi0zMFQxODo1MjoyNy44ODU3MzFaIiwibWV0aG9kIjoiUE9TVCIsInVyaSI6Ii90ZXN0In0.AcNiJqXDdVmlXSbPI6bH41n0KXz9JwVVMgo4Ivqsq5UZjM2WBOTWw3aAvIMAAhjK5OdrURD4cX3dbbnRgzxspUckANRt0hVHRKSkhROHBfZxuTXVfv8oYzwghwiO2MatPBsroC9Vxbh-DEVQJIBigtN9_D5bg8p2-mlVvoxou2I-EwZs";
```

**C#**

```c#
var headers = new Dictionary<string, string>()
{
    { "AUTHORIZATION", "eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJwYXlsb2FkX21kNSI6IjRhNjAzZjBmMGU3ZGRkZTlkYTJhMGFkM2QzNDFmNzRiIiwidGltZXN0YW1wIjoiMjAyMy0wNi0zMFQxODo1MjoyNy44ODU3MzFaIiwibWV0aG9kIjoiUE9TVCIsInVyaSI6Ii90ZXN0In0.AcNiJqXDdVmlXSbPI6bH41n0KXz9JwVVMgo4Ivqsq5UZjM2WBOTWw3aAvIMAAhjK5OdrURD4cX3dbbnRgzxspUckANRt0hVHRKSkhROHBfZxuTXVfv8oYzwghwiO2MatPBsroC9Vxbh-DEVQJIBigtN9_D5bg8p2-mlVvoxou2I-EwZs" },
    { "API-CLIENT-KEY", "20d6a816-9d21-4e29-bbe5-2ffb3baacfe9" }
};

var body = new Dictionary<string, string>()
{
    { "body_sample", "Exemplo de webhook" }
};
```

### 2. Inserção de Dados de Criptografia e Realização da Descriptografia
Inserimos a chave pública fornecida pela QI Tech e realizamos a descriptografia do header do webhook. Essa chave é crucial para a descriptografia dos headers do webhook.

**Python**

```python
qi_public_key = """-----BEGIN PUBLIC KEY-----
{QI_PUBLIC_KEY}
-----END PUBLIC KEY-----"""
```

**PHP**

```php
$qiPublicKey = "-----BEGIN PUBLIC KEY-----
{QI_PUBLIC_KEY}
-----END PUBLIC KEY-----";
```

**Node.js**

```js
const qiPublicKey = `-----BEGIN PUBLIC KEY-----
{QI_PUBLIC_KEY}
-----END PUBLIC KEY-----`;
```

**Java**

```java
String publicKeyStr = "{QI_PUBLIC_KEY}";
```

**C#**

```c#
var authorization = headers["AUTHORIZATION"];

var qiPublicKey = @"-----BEGIN PUBLIC KEY-----
{QI_PUBLIC_KEY}
-----END PUBLIC KEY-----";
```

### Realizar descriptografia do header

O processo de descriptografia é essencial para verificar a autenticidade e integridade do webhook recebido.

**Python**

```python
try:
    decoded_header = jwt.decode(token=authorization, key=qi_public_key)
except:
    raise Exception("Decodification failed.")
```

**PHP**

```php
$algorithmManager = new AlgorithmManager([new ES512()]);
$jwsVerifier = new JWSVerifier($algorithmManager);
$publicKey = JWKFactory::createFromKey($qiPublicKey, null, ['use' => 'sig']);
$serializerManager = new JWSSerializerManager([new CompactSerializer]);
$jws = $serializerManager->unserialize($authorization);
$decodedHeader = json_decode($jws->getPayload(), true);
```

**Node.js**

```js
const decodedHeader = jwt.verify(authorization, qiPublicKey);
```

**Java**

```java
private static Claims validate(final String encodedBody, String publicKeyStr){
    try {
        Security.addProvider(new BouncyCastleProvider());

        final String pbKey = new String(Base64.getDecoder().decode(publicKeyStr));
        Reader rdr = new StringReader(pbKey);
        PemReader pemParser = new PemReader(rdr);

        X509EncodedKeySpec spec = new X509EncodedKeySpec(pemParser.readPemObject().getContent());
        KeyFactory kf = KeyFactory.getInstance("EC");

        PublicKey publicKey = kf.generatePublic(spec);
        return Jwts.parser().setSigningKey(publicKey).parseClaimsJws(encodedBody).getBody();
    }  catch (IOException | NoSuchAlgorithmException | InvalidKeySpecException e) {
        throw new IllegalStateException(e);
    }
}
```

**C#**

```c#
var key = ECDsa.Create();
key.ImportFromPem(qiPublicKey);
var decodedHeader = JWT.Decode<IDictionary<string, string>>(authorization, key);
```

## 3. Validação e Conclusão

### Realização de Validações

Após descriptografar o header, é importante realizar várias validações para garantir que o webhook é válido e seguro.

**Python**

```python
assert decoded_header.get("method") == "POST"
assert decoded_header.get("uri") == "/client_webhook_endpoint"
assert (
    decoded_header.get("payload_md5")
    == md5(json.dumps(body).encode()).hexdigest()
)
assert (
    (datetime.now() - timedelta(minutes=5))
    < datetime.strptime(decoded_header.get("timestamp"), "%Y-%m-%dT%H:%M:%S.%fZ")
    < (datetime.now() + timedelta(minutes=5))
)
```

**PHP**

```php
$method = $decodedHeader["method"];
$uri = $decodedHeader["uri"];
$payloadMd5 = $decodedHeader["payload_md5"];
$timestamp = $decodedHeader["timestamp"];

assert($method === "POST");
assert($uri === "/client_webhook_endpoint");
assert($payloadMd5 === md5(json_encode($body, JSON_UNESCAPED_SLASHES)));
assert(
    (new DateTime("now", new DateTimeZone("UTC")))->sub(new DateInterval("PT5M")) < DateTime::createFromFormat("Y-m-d\TH:i:s.u\Z", $timestamp) &&
    DateTime::createFromFormat("Y-m-d\TH:i:s.u\Z", $timestamp) < (new DateTime("now", new DateTimeZone("UTC")))->add(new DateInterval("PT5M"))
);
```

**Node.js**

```js
if (decodedHeader.method !== 'POST') {
    throw new Error('Invalid method');
  }
  
  if (decodedHeader.uri !== '/client_webhook_endpoint') {
    throw new Error('Invalid URI');
  }
  
  const payloadMd5 = crypto
    .createHash('md5')
    .update(JSON.stringify(body))
    .digest('hex');
    
  if (decodedHeader.payload_md5 !== payloadMd5) {
    throw new Error('Invalid payload MD5');
  }
  
  const timestamp = new Date(decodedHeader.timestamp);
  const currentDateTime = new Date();
  
  const fiveMinutesAgo = new Date(currentDateTime.getTime() - 5 * 60000);
  const fiveMinutesAhead = new Date(currentDateTime.getTime() + 5 * 60000);
  
  if (!(timestamp > fiveMinutesAgo && timestamp < fiveMinutesAhead)) {
    throw new Error('Invalid timestamp');
  }
```

**Java**

```java
Claims result = validate(authorization, publicKeyStr);
System.out.println(result);
System.out.println(result.get("method").equals("POST"));
System.out.println(result.get("uri").equals("/test"));
```

**C#**

```c#
var method = decodedHeader["method"];
var uri = decodedHeader["uri"];
var payloadMd5 = decodedHeader["payload_md5"];
var timestamp = DateTime.Parse(decodedHeader["timestamp"]);
timestamp = timestamp.ToUniversalTime();
var bodyJson = JsonConvert.SerializeObject(body, new JsonSerializerSettings
{
    NullValueHandling = NullValueHandling.Ignore,
    Formatting = Formatting.None
});

using (var md5Hash = MD5.Create())
{
    var calculatedMd5 = GetMd5Hash(md5Hash, bodyJson);
    if (payloadMd5 != calculatedMd5)
    {
        throw new Exception("Payload MD5 verification failed.");
    }
}

var currentTime = datetime.now;
var validTimeStart = currentTime.AddMinutes(-5);
var validTimeEnd = currentTime.AddMinutes(5);
if (timestamp < validTimeStart || timestamp > validTimeEnd)
{
    throw new Exception("Timestamp verification failed.");
}

...

static string GetMd5Hash(MD5 md5Hash, string input)
{
    byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));

    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < data.Length; i++)
    {
        builder.Append(data[i].ToString("x2"));
    }

    return builder.ToString();
}
```

---

# Troca de chaves

URL: /documentation/primeiros_passos/troca_de_chaves

## Geração do par de chaves (pública e privada)

**Unix**

Para gerar sua chave privada em um computador **Unix** faça em seu terminal ou linha de comando:

```bash
$ ssh-keygen -t ecdsa -b 521 -m PEM -f jwtECDSASHA512.key
```

E a partir desta chave privada gere sua chave pública.

```bash
$ openssl ec -in jwtECDSASHA512.key -pubout -outform PEM -out jwtECDSASHA512.key.pub
```

**Mac OS**

Para gerar sua chave privada em um computador **Mac OS** rode em seu terminal:

```bash
openssl ecparam -name secp521r1 -genkey -noout -out ec512-private.pem
```

E a partir desta chave privada gere sua chave pública.

```bash
openssl ec -in ec512-private.pem -pubout -out ec512-public.pem
```

**Windows**

Para gerar seu par de chaves (privada e pública) em um computador **Windows**, você precisará das ferramentas `ssh-keygen` e `openssl` no PowerShell ou GitBash.

Execute o comando abaixo para criar o arquivo da sua chave privada (`jwtECDSASHA512.key`).

```bash
ssh-keygen -t ecdsa -b 521 -m PEM -f jwtECDSASHA512.key
```

E a partir desta chave privada gere sua chave pública (`jwtECDSASHA512.key.pub`).

```bash
openssl ec -in jwtECDSASHA512.key -pubout -outform PEM -out jwtECDSASHA512.key.pub
```

Para visualizar a chave em um bloco de notas:

```bash
notepad jwtECDSASHA512.key.pub
```

Para visualizar a chave no terminal:

```bash
cat jwtECDSASHA512.key.pub
```

Caso você adicione uma senha de criptografia em sua chave privada e deseje visualizá-la, será necessário descriptografar com o comando abaixo e sua senha:

```bash
openssl ec -in jwtECDSASHA512.key -out chave_descriptografada.pem
```

---

# Consulta de valor presente de uma operação

URL: /documentation/refinanciamento/consulta_de_valor_presente_de_uma_operacao

Para descobrir o valor presente que será utilizado no refinanciamento de uma operação, é possível utilizar o endpoint de consulta de dívidas indicando 4 query params chave listados abaixo.

## Request

ENDPOINT /debt
MÉTODO GET

## Query Params
| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `key` * | string | Chave da dívida devolvida no momento da criação da operação de crédito. | - |
| `eval_present_value` * | string | Indica que o valor atual de cada parcela deve ser calculado e mostrado. | - |
| `calculate_delay` * | string | Indica que, se a parcela estiver vencida, os juros de mora e multa devem ser calculados com o valor presente. | - |
| `calculate_spread` * | booleano | Indica se o valor de spread da operação deve ser adicionado ao valor presente (para operações de refinanciamento deve ser falso). | - |

## Response

STATUS 200

Response Body

```json
{
	"data": {
		"additional_iof": 11.547136,
		"after_disbursement_actions": [],
		"all_day_disbursement": true,
		"annual_cet": 41.0883,
		"assigned": false,
		"assigned_at": null,
		"assignment_amount": 3038.72,
		"attached_document_list": [{
			"created_at": "2022-10-19T11:53:01",
			"document_key": "5df59dca-b8d1-4dca-8358-8b4bd944f3dc",
			"document_type": {
				"enumerator": "document_identification",
				"translation_path": "co.DocumentType.document_identification"
			},
			"document_url": "https://storage.googleapis.com/sandbox-doc-api/documents/5df59dca-b8d1-4dca-8358-8b4bd944f3dc/image_1666180300436.jpg",
			"related_party_key": null,
			"signature_required": false,
			"signature_url": null,
			"signed": false
		}],
		"balance_due": 3150.62,
		"base_iof": 27.17569413,
		"calculus_correction": null,
		"central_depository": null,
		"cet": 2.91,
		"cetip_assignments": [],
		"cetip_settlements": [],
		"collateral_constituted": true,
		"collateral_type": null,
		"collaterals": [],
		"contract_fee_amount": 0,
		"contract_fees": [],
		"contract_number": "TESTE118261",
		"created_at": "2022-10-19T11:53:00",
		"credit_operation_key": "438ceaa3-2906-4ee3-85f9-0dcacd5f2581",
		"credit_operation_status": {
			"enumerator": "opened",
			"translation_path": "co.CreditOperationStatus.opened",
			"translation_ptbr": "Desembolsada"
		},
		"credit_operation_type": {
			"enumerator": "ccb",
			"translation_path": "co.CreditOperationType.ccb"
		},
		"credit_rating": null,
		"creditor_bank_account_key": "5d068423-6094-49e4-b15b-7740038295a8",
		"custodian": {
			"enumerator": "qi_scd",
			"translation_path": "co.Custodian.qi_scd"
		},
		"decimal_annual_cet": 0.43241941956989105,
		"decimal_cet": 0.0304,
		"disburse_before_assign": true,
		"disbursed_at": "2022-10-19T11:54:47",
		"disbursed_issue_amount": 3000,
		"disbursement_account": [{
			"account_branch": "1234",
			"account_digit": "1",
			"account_number": "2345678601",
			"account_type": "checking_account",
			"amount_receivable": null,
			"created_at": "2022-10-19T11:53:01",
			"digitable_line": null,
			"disbursement_type": "pix",
			"document_number": "92147661180",
			"financial_institutions": {
				"code_number": 104,
				"is_active": true,
				"is_pix_participant": true,
				"ispb": 360305,
				"name": "CAIXA ECONOMICA FEDERAL"
			},
			"financial_institutions_code_number": 104,
			"is_pix_disbursement": true,
			"ispb": "00360305",
			"name": "104 CAIXA ECONOMICA FEDERAL",
			"percentage_receivable": 100,
			"pix_key": null,
			"pix_transfer_key": "da80477f-412e-40a5-81b0-c830b238081e",
			"pix_type": "manual",
			"qr_code_key": null,
			"retry_counter": 0,
			"retry_vector": null,
			"transaction_key": null,
			"webhook_key": null
		}],
		"disbursement_callback": {
			"installments": [{
				"bank_slip_key": "9d8c566a-c865-495e-8764-db8351e7ac41",
				"digitable_line": "32990001031000699925348000000207991730000055231",
				"due_date": "2022-11-18",
				"qr_code_key": "bdd41d56-8588-4468-9705-5233994cdc39",
				"qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/bdd41d56-8588-4468-9705-5233994cdc395204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***63044F44"
			}],
			"key": "438ceaa3-2906-4ee3-85f9-0dcacd5f2581",
			"origin_type": "lego-api",
			"status": "opened",
			"transaction_receipts": [{
				"amount": 3000,
				"description": "00360305 1234 2345678601-1 92147661180 - 104 CAIXA ECONOMICA FEDERAL",
				"destination": {
					"account_digit": "1",
					"account_number": "2345678601",
					"bank_ispb": "00360305",
					"branch": "1234",
					"branch_digit": null,
					"document": "92147661180",
					"name": "104 CAIXA ECONOMICA FEDERAL",
					"purpose": "Crédito PIX em Conta",
					"type": "checking_account"
				},
				"fee": 0,
				"origin": {
					"account_branch": "0001",
					"account_digit": "5",
					"account_key": "5d068423-6094-49e4-b15b-7740038295a8",
					"account_number": "00002",
					"bank_code": "329",
					"branch": "0001",
					"branch_digit": null,
					"document": "32402502000135",
					"name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
					"type": "payment_account"
				},
				"origin_transaction_key": null,
				"timestamp": "2022-10-19T11:55:03",
				"transaction_key": "da80477f-412e-40a5-81b0-c830b238081e"
			}]
		},
		"disbursement_confirmed_at": "2022-10-20T13:00:56",
		"disbursement_date": "2022-10-19",
		"disbursement_end_date": "2022-10-19",
		"disbursement_inelegibility_reason": null,
		"disbursement_inelegibility_reason_issued": null,
		"disbursement_options": [{
			"additional_iof": 11.547136,
			"annual_cet": 41.0883,
			"assignment_amount": 3038.72,
			"base_iof": 27.17569413,
			"calculus_correction": null,
			"cet": 2.91,
			"contract_fee_amount": 0,
			"contract_fees": [],
			"created_at": "2022-10-19T11:53:01",
			"disbursed_issue_amount": 3000,
			"disbursement_date": "2022-10-19",
			"external_contract_fee_amount": 0,
			"external_contract_fees": [],
			"first_due_date": "2022-11-18",
			"installments": [{
				"additional_costs": [],
				"business_due_date": "2022-11-21",
				"calendar_days": 30,
				"created_at": "2022-10-19T11:53:01",
				"due_date": "2022-11-18",
				"due_interest": 0,
				"due_principal": 3038.72,
				"fine_amount": null,
				"has_interest": true,
				"installment_number": 1,
				"post_fixed_amount": 0,
				"pre_fixed_amount": 75.66402982,
				"principal_amortization_amount": 476.64597018,
				"tax_amount": 1.17254909,
				"total_amount": 552.31,
				"workdays": 20
			}],
			"interest_subsidy_amount": 0,
			"issue_amount": 3038.72,
			"net_external_contract_fee_amount": 0,
			"prefixed_interest_rate": null,
			"share_quantity": 4,
			"total_iof": 38.72
		}],
		"disbursement_start_date": "2022-10-19",
		"document_certifier": {
			"enumerator": "electronic_client_side",
			"translation_path": "co.DocumentCertifier.electronic_client_side"
		},
		"early_settlement_configuration": {
			"created_at": "2022-10-19T11:53:00",
			"early_settlement_configuration_type": {
				"enumerator": "fixed_rate",
				"translation_path": "co.EarlySettlementConfigurationType.fixed_rate"
			},
			"effective_end_date": null,
			"fixed_interest_rate": 0
		},
		"endorsement": null,
		"entry": null,
		"events": [],
		"external_contract_fee_amount": 0,
		"external_contract_fees": [],
		"extra_fields": null,
		"facial_biometrics_enabled": false,
		"final_disbursement_amount": 3000,
		"financial_index": null,
		"fine_configuration": {
			"contract_fine_rate": 0.02,
			"created_at": "2022-10-19T11:53:00",
			"fine_delay_rate": {
				"annual_rate": 0.12682503,
				"created_at": "2022-10-19T11:53:00",
				"daily_rate": 0.00033173,
				"interest_base": {
					"enumerator": "calendar_days",
					"translation_path": "co.InterestBase.calendar_days",
					"year_days": 360
				},
				"monthly_rate": 0.01
			}
		},
		"first_due_date": "2022-11-18",
		"first_due_date_delay": null,
		"if_code": null,
		"installments": [{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0,
				"bank_slip_key": "9d8c566a-c865-495e-8764-db8351e7ac41",
				"business_due_date": "2022-11-21",
				"calendar_days": 30,
				"cetip_settlements": [],
				"created_at": "2022-10-19T11:53:00",
				"digitable_line": "32990001031000699925348000000207991730000055231",
				"due_date": "2022-11-18",
				"due_interest": 0,
				"due_principal": 3038.72,
				"events": [{
						"amount": null,
						"created_at": "2022-10-19T11:54:47",
						"event_date": "2022-10-19T11:54:47",
						"installment_event_type": {
							"enumerator": "open",
							"translation_path": "co.InstallmentEventType.open"
						},
						"installment_old_status": {
							"enumerator": "created",
							"translation_path": "co.InstallmentStatus.created"
						},
						"old_due_date": null
					},
					{
						"amount": null,
						"created_at": "2022-11-18T08:00:10",
						"event_date": "2022-11-18T08:00:10",
						"installment_event_type": {
							"enumerator": "maturity",
							"translation_path": "co.InstallmentEventType.maturity"
						},
						"installment_old_status": {
							"enumerator": "opened",
							"translation_path": "co.InstallmentStatus.opened"
						},
						"old_due_date": null
					},
					{
						"amount": 11.76,
						"created_at": "2022-11-22T08:00:14",
						"event_date": "2022-11-22T08:00:14",
						"installment_event_type": {
							"enumerator": "delay_fine",
							"translation_path": "co.InstallmentEventType.delay_fine"
						},
						"installment_old_status": {
							"enumerator": "waiting_payment",
							"translation_path": "co.InstallmentStatus.waiting_payment"
						},
						"old_due_date": null
					},
					{
						"amount": 11.94,
						"created_at": "2022-11-23T09:13:46",
						"event_date": "2022-11-23T09:13:46",
						"installment_event_type": {
							"enumerator": "delay_fine",
							"translation_path": "co.InstallmentEventType.delay_fine"
						},
						"installment_old_status": {
							"enumerator": "overdue",
							"translation_path": "co.InstallmentStatus.overdue"
						},
						"old_due_date": null
					},
					{
						"amount": 12.12,
						"created_at": "2022-11-24T09:15:55",
						"event_date": "2022-11-24T09:15:55",
						"installment_event_type": {
							"enumerator": "delay_fine",
							"translation_path": "co.InstallmentEventType.delay_fine"
						},
						"installment_old_status": {
							"enumerator": "overdue",
							"translation_path": "co.InstallmentStatus.overdue"
						},
						"old_due_date": null
					},
					{
						"amount": 12.3,
						"created_at": "2022-11-25T09:24:45",
						"event_date": "2022-11-25T09:24:44",
						"installment_event_type": {
							"enumerator": "delay_fine",
							"translation_path": "co.InstallmentEventType.delay_fine"
						},
						"installment_old_status": {
							"enumerator": "overdue",
							"translation_path": "co.InstallmentStatus.overdue"
						},
						"old_due_date": null
					},
					{
						"amount": 12.84,
						"created_at": "2022-11-28T09:37:41",
						"event_date": "2022-11-28T09:37:41",
						"installment_event_type": {
							"enumerator": "delay_fine",
							"translation_path": "co.InstallmentEventType.delay_fine"
						},
						"installment_old_status": {
							"enumerator": "overdue",
							"translation_path": "co.InstallmentStatus.overdue"
						},
						"old_due_date": null
					},
					{
						"amount": 13.02,
						"created_at": "2022-11-29T09:17:44",
						"event_date": "2022-11-29T09:17:44",
						"installment_event_type": {
							"enumerator": "delay_fine",
							"translation_path": "co.InstallmentEventType.delay_fine"
						},
						"installment_old_status": {
							"enumerator": "overdue",
							"translation_path": "co.InstallmentStatus.overdue"
						},
						"old_due_date": null
					}
				],
				"fine_amount": 13.02,
				"has_interest": true,
				"installment_key": "1d76836e-1fcc-4b67-8c01-64faa43de9c8",
				"installment_number": 1,
				"installment_payment": [],
				"installment_status": {
					"enumerator": "overdue",
					"translation_path": "co.InstallmentStatus.overdue"
				},
				"installment_type": {
					"enumerator": "principal",
					"translation_path": "co.InstallmentType.principal"
				},
				"original_due_principal": 3038.72,
				"original_pre_fixed_amount": 75.66402982,
				"original_principal_amortization_amount": 476.64597018,
				"original_total_amount": 552.31,
				"paid_amount": 0,
				"paid_at": null,
				"payment_type": {
					"enumerator": "bankslip",
					"translation_path": "co.PaymentType.bankslip"
				},
				"post_fixed_amount": 0,
				"pre_fixed_amount": 75.66402982,
				"principal_amortization_amount": 476.64597018,
				"qr_code_key": "bdd41d56-8588-4468-9705-5233994cdc39",
				"qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/bdd41d56-8588-4468-9705-5233994cdc395204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***63044F44",
				"renegotiation_proposal_key": null,
				"tax_amount": 1.17254909,
				"total_accrual_amount": null,
				"total_amount": 565.33,
				"total_paid_amount": 0,
				"updated_at": "2022-11-29T09:17:44",
				"workdays": 20,
				"present_amount": 1000.11
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0,
				"bank_slip_key": "527835e4-7b09-42f2-a7d0-befed3a326fd",
				"business_due_date": "2022-12-20",
				"calendar_days": 31,
				"cetip_settlements": [],
				"created_at": "2022-10-19T11:53:00",
				"digitable_line": "32990001031000699925349000000205492040000055231",
				"due_date": "2022-12-19",
				"due_interest": 0,
				"due_principal": 2562.07402982,
				"events": [{
					"amount": null,
					"created_at": "2022-10-19T11:54:47",
					"event_date": "2022-10-19T11:54:47",
					"installment_event_type": {
						"enumerator": "open",
						"translation_path": "co.InstallmentEventType.open"
					},
					"installment_old_status": {
						"enumerator": "created",
						"translation_path": "co.InstallmentStatus.created"
					},
					"old_due_date": null
				}],
				"fine_amount": null,
				"has_interest": true,
				"installment_key": "dde36938-8594-4507-a87d-cd2dd5309817",
				"installment_number": 2,
				"installment_payment": [],
				"installment_status": {
					"enumerator": "opened",
					"translation_path": "co.InstallmentStatus.opened"
				},
				"installment_type": {
					"enumerator": "principal",
					"translation_path": "co.InstallmentType.principal"
				},
				"original_due_principal": 2562.07402982,
				"original_pre_fixed_amount": 65.94922003,
				"original_principal_amortization_amount": 486.36077997,
				"original_total_amount": 552.31,
				"paid_amount": 0,
				"paid_at": null,
				"payment_type": {
					"enumerator": "bankslip",
					"translation_path": "co.PaymentType.bankslip"
				},
				"post_fixed_amount": 0,
				"pre_fixed_amount": 65.94922003,
				"principal_amortization_amount": 486.36077997,
				"qr_code_key": "9d2980e9-fa0c-4b21-a7c5-5ca266c9aba8",
				"qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/9d2980e9-fa0c-4b21-a7c5-5ca266c9aba85204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***6304FBC3",
				"renegotiation_proposal_key": null,
				"tax_amount": 2.43277662,
				"total_accrual_amount": null,
				"total_amount": 552.31,
				"total_paid_amount": 0,
				"updated_at": "2022-10-19T11:56:43",
				"workdays": 21,
				"present_amount": 1000.11
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0,
				"bank_slip_key": "d69c9ab6-01f1-40bb-9519-a06ee2230c22",
				"business_due_date": "2023-01-19",
				"calendar_days": 30,
				"cetip_settlements": [],
				"created_at": "2022-10-19T11:53:00",
				"digitable_line": "32990001031000699925350000000203192340000055231",
				"due_date": "2023-01-18",
				"due_interest": 0,
				"due_principal": 2075.71324985,
				"events": [{
					"amount": null,
					"created_at": "2022-10-19T11:54:47",
					"event_date": "2022-10-19T11:54:47",
					"installment_event_type": {
						"enumerator": "open",
						"translation_path": "co.InstallmentEventType.open"
					},
					"installment_old_status": {
						"enumerator": "created",
						"translation_path": "co.InstallmentStatus.created"
					},
					"old_due_date": null
				}],
				"fine_amount": null,
				"has_interest": true,
				"installment_key": "93273ee0-71bd-46a6-b5e2-39e03a365b16",
				"installment_number": 3,
				"installment_payment": [],
				"installment_status": {
					"enumerator": "opened",
					"translation_path": "co.InstallmentStatus.opened"
				},
				"installment_type": {
					"enumerator": "principal",
					"translation_path": "co.InstallmentType.principal"
				},
				"original_due_principal": 2075.71324985,
				"original_pre_fixed_amount": 51.68519286,
				"original_principal_amortization_amount": 500.62480714,
				"original_total_amount": 552.31,
				"paid_amount": 0,
				"paid_at": null,
				"payment_type": {
					"enumerator": "bankslip",
					"translation_path": "co.PaymentType.bankslip"
				},
				"post_fixed_amount": 0,
				"pre_fixed_amount": 51.68519286,
				"principal_amortization_amount": 500.62480714,
				"qr_code_key": "d79eb27b-7a1e-4d4c-94a1-f20045c4904e",
				"qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/d79eb27b-7a1e-4d4c-94a1-f20045c4904e5204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***6304E949",
				"renegotiation_proposal_key": null,
				"tax_amount": 3.73566231,
				"total_accrual_amount": null,
				"total_amount": 552.31,
				"total_paid_amount": 0,
				"updated_at": "2022-10-19T11:56:43",
				"workdays": 22,
				"present_amount": 1000.11
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0,
				"bank_slip_key": "5c62c50f-5326-4226-b154-a0cc6d2f62e7",
				"business_due_date": "2023-02-23",
				"calendar_days": 35,
				"cetip_settlements": [],
				"created_at": "2022-10-19T11:53:00",
				"digitable_line": "32990001031000699925351000000201192690000055231",
				"due_date": "2023-02-22",
				"due_interest": 0,
				"due_principal": 1575.08844271,
				"events": [{
					"amount": null,
					"created_at": "2022-10-19T11:54:47",
					"event_date": "2022-10-19T11:54:47",
					"installment_event_type": {
						"enumerator": "open",
						"translation_path": "co.InstallmentEventType.open"
					},
					"installment_old_status": {
						"enumerator": "created",
						"translation_path": "co.InstallmentStatus.created"
					},
					"old_due_date": null
				}],
				"fine_amount": null,
				"has_interest": true,
				"installment_key": "1f7b16fe-04b6-4f07-a807-eb3501e44e0d",
				"installment_number": 4,
				"installment_payment": [],
				"installment_status": {
					"enumerator": "opened",
					"translation_path": "co.InstallmentStatus.opened"
				},
				"installment_type": {
					"enumerator": "principal",
					"translation_path": "co.InstallmentType.principal"
				},
				"original_due_principal": 1575.08844271,
				"original_pre_fixed_amount": 45.8505547,
				"original_principal_amortization_amount": 506.4594453,
				"original_total_amount": 552.31,
				"paid_amount": 0,
				"paid_at": null,
				"payment_type": {
					"enumerator": "bankslip",
					"translation_path": "co.PaymentType.bankslip"
				},
				"post_fixed_amount": 0,
				"pre_fixed_amount": 45.8505547,
				"principal_amortization_amount": 506.4594453,
				"qr_code_key": "b55464c8-3764-4ee2-a814-ce22396aabe7",
				"qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/b55464c8-3764-4ee2-a814-ce22396aabe75204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***63044215",
				"renegotiation_proposal_key": null,
				"tax_amount": 5.23273899,
				"total_accrual_amount": null,
				"total_amount": 552.31,
				"total_paid_amount": 0,
				"updated_at": "2022-10-19T11:56:43",
				"workdays": 23,
				"present_amount": 1000.11
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0,
				"bank_slip_key": "256be15f-dcc6-4775-8298-c3efde5a1147",
				"business_due_date": "2023-03-21",
				"calendar_days": 26,
				"cetip_settlements": [],
				"created_at": "2022-10-19T11:53:00",
				"digitable_line": "32990001031000699925352000000209192950000055231",
				"due_date": "2023-03-20",
				"due_interest": 0,
				"due_principal": 1068.62899741,
				"events": [{
					"amount": null,
					"created_at": "2022-10-19T11:54:47",
					"event_date": "2022-10-19T11:54:47",
					"installment_event_type": {
						"enumerator": "open",
						"translation_path": "co.InstallmentEventType.open"
					},
					"installment_old_status": {
						"enumerator": "created",
						"translation_path": "co.InstallmentStatus.created"
					},
					"old_due_date": null
				}],
				"fine_amount": null,
				"has_interest": true,
				"installment_key": "3ed37dc1-61f8-44f1-af21-a55f0cf0795d",
				"installment_number": 5,
				"installment_payment": [],
				"installment_status": {
					"enumerator": "opened",
					"translation_path": "co.InstallmentStatus.opened"
				},
				"installment_type": {
					"enumerator": "principal",
					"translation_path": "co.InstallmentType.principal"
				},
				"original_due_principal": 1068.62899741,
				"original_pre_fixed_amount": 23.02305805,
				"original_principal_amortization_amount": 529.28694195,
				"original_total_amount": 552.31,
				"paid_amount": 0,
				"paid_at": null,
				"payment_type": {
					"enumerator": "bankslip",
					"translation_path": "co.PaymentType.bankslip"
				},
				"post_fixed_amount": 0,
				"pre_fixed_amount": 23.02305805,
				"principal_amortization_amount": 529.28694195,
				"qr_code_key": "64e05528-83fb-432a-8af7-491ca4eb7b90",
				"qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/64e05528-83fb-432a-8af7-491ca4eb7b905204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***630472F7",
				"renegotiation_proposal_key": null,
				"tax_amount": 6.59703244,
				"total_accrual_amount": null,
				"total_amount": 552.31,
				"total_paid_amount": 0,
				"updated_at": "2022-10-19T11:56:43",
				"workdays": 18,
				"present_amount": 1000.11
			},
			{
				"accrual_reference_date": null,
				"additional_costs": [],
				"advanced_paid_amount": 0,
				"bank_slip_key": "a8c2edaa-ed3d-4c5b-808e-b26947a5e79e",
				"business_due_date": "2023-04-19",
				"calendar_days": 29,
				"cetip_settlements": [],
				"created_at": "2022-10-19T11:53:01",
				"digitable_line": "32990001031000699925353000000207293240000055232",
				"due_date": "2023-04-18",
				"due_interest": 0,
				"due_principal": 539.34205545,
				"events": [{
					"amount": null,
					"created_at": "2022-10-19T11:54:47",
					"event_date": "2022-10-19T11:54:47",
					"installment_event_type": {
						"enumerator": "open",
						"translation_path": "co.InstallmentEventType.open"
					},
					"installment_old_status": {
						"enumerator": "created",
						"translation_path": "co.InstallmentStatus.created"
					},
					"old_due_date": null
				}],
				"fine_amount": null,
				"has_interest": true,
				"installment_key": "2b58b2be-89cd-4710-a6a5-81180938b501",
				"installment_number": 6,
				"installment_payment": [],
				"installment_status": {
					"enumerator": "opened",
					"translation_path": "co.InstallmentStatus.opened"
				},
				"installment_type": {
					"enumerator": "principal",
					"translation_path": "co.InstallmentType.principal"
				},
				"original_due_principal": 539.34205545,
				"original_pre_fixed_amount": 12.97660456,
				"original_principal_amortization_amount": 539.34339544,
				"original_total_amount": 552.32,
				"paid_amount": 0,
				"paid_at": null,
				"payment_type": {
					"enumerator": "bankslip",
					"translation_path": "co.PaymentType.bankslip"
				},
				"post_fixed_amount": 0,
				"pre_fixed_amount": 12.97660456,
				"principal_amortization_amount": 539.34339544,
				"qr_code_key": "dcc7d257-e6a1-4d0a-88f7-1acf662482b5",
				"qr_code_url": "00020126970014br.gov.bcb.pix2575qrcode-h.sandbox.qitech.app/bacen/cobv/dcc7d257-e6a1-4d0a-88f7-1acf662482b55204000053039865802BR5925QI SOCIEDADE DE CREDITO D6009Sao Paulo61080145200062070503***6304C9A1",
				"renegotiation_proposal_key": null,
				"tax_amount": 8.00493468,
				"total_accrual_amount": null,
				"total_amount": 552.32,
				"total_paid_amount": 0,
				"updated_at": "2022-10-19T11:56:43",
				"workdays": 20,
				"present_amount": 1000.11
			}
		],
		"interest_grace_period": 0,
		"interest_payment_month_period": 1,
		"interest_subsidy_amount": 0,
		"interest_subsidy_percentage": 0,
		"interest_type": {
			"enumerator": "pre_price_days",
			"translation_path": "co.InterestType.pre_price_days"
		},
		"iof_charge_method": "financed",
		"ipoc_code": "324025020203192147661180DiDi118261",
		"is_allowed_to_disburse": true,
		"is_portability": false,
		"is_refinancing": 0,
		"isin_number": null,
		"issue_amount": 3038.72,
		"issue_date": "2022-10-19",
		"issuer_document_number": "92147661180",
		"issuer_name": "Wxy  Wsx",
		"kyc": null,
		"modality": {
			"code": "0203",
			"description": "crédito pessoal - sem consignação em folha de pagam.",
			"enumerator": null,
			"visible": true
		},
		"net_external_contract_fee_amount": 0,
		"next_due_date": "2022-12-19",
		"number_of_installments": 6,
		"operation_extra_fields": null,
		"operation_type": {
			"enumerator": "structured_operation",
			"translation_path": "co.OperationType.structured_operation"
		},
		"origin_key": "438ceaa3-2906-4ee3-85f9-0dcacd5f2581",
		"origin_type": {
			"enumerator": "lego-api",
			"translation_path": "co.OriginType.lego-api"
		},
		"original_prefixed_interest_rate": {
			"annual_rate": 0.34331516,
			"created_at": "2022-10-19T11:53:00",
			"daily_rate": 0.00082017,
			"interest_base": {
				"enumerator": "calendar_days",
				"translation_path": "co.InterestBase.calendar_days",
				"year_days": 360
			},
			"monthly_rate": 0.0249
		},
		"original_total_iof": 38.72,
		"payment_and_settlement_agent": {
			"enumerator": "qi_scd",
			"translation_path": "co.PaymentAndSettlementAgent.qi_scd"
		},
		"payment_type": {
			"enumerator": "bankslip",
			"translation_path": "co.PaymentType.bankslip"
		},
		"payroll_data": null,
		"portability_amount": null,
		"portability_financial_institution_code_number": null,
		"portability_original_contract": null,
		"post_fixed_interest_base": {
			"enumerator": "workdays",
			"translation_path": "co.InterestBase.workdays",
			"year_days": 252
		},
		"post_fixed_interest_rate": null,
		"prefixed_interest_rate": {
			"annual_rate": 0.34331516,
			"created_at": "2022-10-19T11:53:00",
			"daily_rate": 0.00082017,
			"interest_base": {
				"enumerator": "calendar_days",
				"translation_path": "co.InterestBase.calendar_days",
				"year_days": 360
			},
			"monthly_rate": 0.0249
		},
		"principal_amortization_month_period": 1,
		"principal_grace_period": 0,
		"purchaser_document_number": "32402502000135",
		"rebate_account": null,
		"refinanced_credit_operations": [],
		"registration_institution": {
			"enumerator": "qi_scd",
			"translation_path": "co.RegistrationInstitution.qi_scd"
		},
		"related_party_list": [{
			"address": {
				"city": "Aguascalientes",
				"complement": null,
				"created_at": "2022-10-19T11:52:59",
				"neighborhood": "Aguascalientes",
				"number": "1",
				"postal_code": "20000000",
				"state": "SP",
				"street": "Zona Centro"
			},
			"attached_document_list": [{
				"created_at": "2022-10-19T11:53:01",
				"document_key": "5df59dca-b8d1-4dca-8358-8b4bd944f3dc",
				"document_type": {
					"enumerator": "document_identification",
					"translation_path": "co.DocumentType.document_identification"
				},
				"document_url": "https://storage.googleapis.com/sandbox-doc-api/documents/5df59dca-b8d1-4dca-8358-8b4bd944f3dc/image_1666180300436.jpg",
				"related_party_key": null,
				"signature_required": false,
				"signature_url": null,
				"signed": false
			}],
			"birth_date": "1997-10-19",
			"birth_place": null,
			"cnae_code": null,
			"company_document_number": null,
			"created_at": "2022-10-19T11:53:01",
			"document_identification_date": null,
			"document_identification_number": "",
			"document_identification_type": null,
			"email": "wxr@ff.com",
			"foundation_date": null,
			"gender": null,
			"income": 0.01,
			"individual_document_number": "92147661180",
			"is_pep": false,
			"marital_status": {
				"enumerator": "single",
				"translation_path": "co.MaritalStatus.single"
			},
			"mother_name": null,
			"name": "Wxy  Wsx",
			"nationality": "nationality",
			"person_type": "natural",
			"phone": {
				"area_code": "00",
				"country_code": "055",
				"created_at": "2022-10-19T11:53:00",
				"number": "016048311",
				"phone_key": "341d7c67-963c-49a5-b585-265425d71f52",
				"phone_type": null
			},
			"profession": null,
			"property_system": null,
			"related_party_key": "203b2ada-ff3e-44a6-a843-f244aa1afbc9",
			"revenue": null,
			"role_type": {
				"enumerator": "issuer",
				"translation_path": "co.RoleType.issuer"
			},
			"simples_nacional_participant": null,
			"spouse_document_number": null,
			"trading_name": null
		}],
		"requester_identifier_key": "89bb875a4a654ecfbad0c6ce0b3b5037",
		"requester_key": "75f2ab85-a5ce-40b9-9b1e-915175906d78",
		"requester_name": "DiDi Global (99Pay)",
		"resource_source_account": {
			"enumerator": "third_party",
			"translation_path": "co.ResourceSourceAccount.third_party"
		},
		"selfie_enabled": false,
		"settlement_bank_account_key": null,
		"share_quantity": 4,
		"signature_method": {
			"enumerator": "email"
		},
		"tax_configuration": {
			"created_at": "2019-03-15T13:09:32",
			"iof_additional_rate": 0.0038,
			"iof_rate": 0.000082
		},
		"tax_exempt_amount": null,
		"third_party_account_key": "5d068423-6094-49e4-b15b-7740038295a8",
		"total_iof": 38.72
	},
	"operation_key": "438ceaa3-2906-4ee3-85f9-0dcacd5f2581",
	"status": "opened",
	"webhook_type": "signed_debt"
}
```

:::caution Atenção!

Dentro do array de parcelas será retornado o valor presente calculado de cada parcela em **"present_amount"**, seu somatório será o valor presente considerado para o contrato no momento da solicitação do refinanciamento.
:::

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# introducao

URL: /documentation/refinanciamento/introducao

Um refinanciamento consiste na geração de um novo contrato de crédito para a quitação de um anterior. Nesse sentido, seu fluxo funciona da mesma forma de uma emissão de dívidas simples, porém, quando informados os valores da operação, o somatório do valor presente dos contratos anteriores será retido e apenas o excedente, caso exista, será liberado na conta do tomador.

---

# Simulando um refinanciamento

URL: /documentation/refinanciamento/simulando_refinanciamento

## Request para uma Operação refinanciada não existente

ENDPOINT /debt_simulation
MÉTODO POST

Request Body

```json
{
  "complex_operation": true,
  "operation_batch": [
    {
      "borrower": {
        "person_type": "natural"
      },
     "refinanced_credit_operations": [
            {
                "original_deadline": 5,
                "monthly_interest_rate": "0.0133",
                "disbursement_date": "2024-06-30",
                "due_balance": 1050,
            }
    ],
      "financial": {
        "amount": 1900.83,
        "disbursement_amount": 800,
        "interest_type": "pre_price_days",
        "credit_operation_type": "ccb",
        "annual_interest_rate": 2.32,
        "disbursement_date": "2023-04-01",
        "interest_grace_period": 0,
        "principal_grace_period": 0,
        "number_of_installments": 2,
        "fine_configuration": {
          "contract_fine_rate": 0.02,
          "interest_base": "calendar_days",
          "monthly_rate": 0.01
        }
      }
    }
  ]
}
```
:::caution Atenção!

Os campos **"disbursement_date"** e **"monthly_interest_rate"** dentro do **"refinanced_credit_operations"** são obrigatórios apenas na necessidade de calcular o valor de quitação da operação refinanciada para as diversas opções de desembolso.
:::

## Request para uma Operação refinanciada já existente

ENDPOINT /debt_simulation
MÉTODO POST

Request Body

```json
{
  "complex_operation": true,
  "operation_batch": [
    {
      "borrower": {
        "person_type": "natural"
      },
     "refinanced_credit_operations": [
            {
                "operation_key": "a9630d51-f08f-4763-b269-c1947e97c260"
            }
    ],
      "financial": {
        "amount": 1900.83,
        "disbursement_amount": 800,
        "interest_type": "pre_price_days",
        "credit_operation_type": "ccb",
        "annual_interest_rate": 2.32,
        "disbursement_date": "2023-04-01",
        "interest_grace_period": 0,
        "principal_grace_period": 0,
        "number_of_installments": 2,
        "fine_configuration": {
          "contract_fine_rate": 0.02,
          "interest_base": "calendar_days",
          "monthly_rate": 0.01
        }
      }
    }
  ]
}

```

:::caution Atenção!

Os payloads ultilizados na simulação de um refinanciamento são os mesmos ultilizados na simulação de uma divida simples, com a adição da lista de operações que serão quitadas em **"refinanced_credit_operations"** com os seus dados para o cálculo da quitação.
:::

## Response

STATUS 200

Response Body

```json
[
    {
        "data": {
            "annual_cet": 0.6252134981759837,
            "assignment_amount": 1919.84,
            "cet": 0.0413,
            "contract_fee_amount": -179.13,
            "contract_fees": [
                {
                    "amount": 1.0,
                    "amount_type": "percentage",
                    "fee_amount": -179.13,
                    "fee_type": "tac"
                }
            ],
            "credit_operation_type": "ccb",
            "disbursed_issue_amount": 2079.96,
            "disbursement_date": "2023-04-01",
            "disbursement_options": [
                {
                    "annual_cet": 0.6252134981759837,
                    "assignment_amount": 1919.84,
                    "cet": 0.0413,
                    "contract_fee_amount": -179.13,
                    "contract_fees": [
                        {
                            "amount": 1.0,
                            "amount_type": "percentage",
                            "fee_amount": -179.13,
                            "fee_type": "tac"
                        }
                    ],
                    "disbursed_issue_amount": 2079.96,
                    "disbursement_date": "2023-04-01",
                    "external_contract_fee_amount": 19.01,
                    "external_contract_fees": [
                        {
                            "amount": 1.0,
                            "amount_released": 17.25,
                            "amount_type": "percentage",
                            "cofins_amount": 0,
                            "csll_amount": 0,
                            "description": null,
                            "fee_amount": 19.01,
                            "fee_type": "spread",
                            "irrf_amount": 0,
                            "net_fee_amount": 17.25,
                            "pis_amount": 0,
                            "tax_amount": 1.76
                        }
                    ],
                    "first_due_date": "2023-05-01",
                    "installments": [
                        {
                            "business_due_date": "2023-05-02",
                            "calendar_days": 30,
                            "due_date": "2023-05-01",
                            "due_principal": 1900.83,
                            "has_interest": true,
                            "installment_number": 1,
                            "post_fixed_amount": 0,
                            "pre_fixed_amount": 199.90606482231624,
                            "principal_amortization_amount": 904.6839351776838,
                            "tax_amount": 0.0,
                            "total_amount": 1104.59,
                            "workdays": 18.0
                        },
                        {
                            "business_due_date": "2023-06-01",
                            "calendar_days": 31,
                            "due_date": "2023-06-01",
                            "due_principal": 996.1460648223162,
                            "has_interest": true,
                            "installment_number": 2,
                            "post_fixed_amount": 0,
                            "pre_fixed_amount": 108.43818022618876,
                            "principal_amortization_amount": 996.1418197738112,
                            "tax_amount": 0.0,
                            "total_amount": 1104.58,
                            "workdays": 23.0
                        }
                    ],
                    "iof_amount": 0.0,
                    "issue_amount": 1900.83,
                    "net_external_contract_fee_amount": 17.25,
                    "prefixed_interest_rate": {
                        "annual_rate": 2.32,
                        "daily_rate": 0.0033388,
                        "interest_base": "calendar_days",
                        "monthly_rate": 0.10516767
                    },
                    "total_pre_fixed_amount": 308.344245048505
                }
            ],
            "external_contract_fee_amount": 19.01,
            "external_contract_fees": [
                {
                    "amount": 1.0,
                    "amount_released": 17.25,
                    "amount_type": "percentage",
                    "cofins_amount": 0,
                    "csll_amount": 0,
                    "description": null,
                    "fee_amount": 19.01,
                    "fee_type": "spread",
                    "irrf_amount": 0,
                    "net_fee_amount": 17.25,
                    "pis_amount": 0,
                    "tax_amount": 1.76
                }
            ],
            "final_disbursement_amount": -17733.89,
            "installments": [
                {
                    "business_due_date": "2023-05-02",
                    "calendar_days": 30,
                    "due_date": "2023-05-01",
                    "due_principal": 1900.83,
                    "has_interest": true,
                    "installment_number": 1,
                    "post_fixed_amount": 0,
                    "pre_fixed_amount": 199.90606482231624,
                    "principal_amortization_amount": 904.6839351776838,
                    "tax_amount": 0.0,
                    "total_amount": 1104.59,
                    "workdays": 18.0
                },
                {
                    "business_due_date": "2023-06-01",
                    "calendar_days": 31,
                    "due_date": "2023-06-01",
                    "due_principal": 996.1460648223162,
                    "has_interest": true,
                    "installment_number": 2,
                    "post_fixed_amount": 0,
                    "pre_fixed_amount": 108.43818022618876,
                    "principal_amortization_amount": 996.1418197738112,
                    "tax_amount": 0.0,
                    "total_amount": 1104.58,
                    "workdays": 23.0
                }
            ],
            "interest_grace_period": 0,
            "interest_payment_month_period": 1,
            "interest_type": "pre_price_days",
            "iof_amount": 0.0,
            "issue_amount": 1900.83,
            "issue_date": "2023-04-01",
            "net_external_contract_fee_amount": 17.25,
            "number_of_installments": 2,
            "operation_type": "refinancing",
            "post_fixed_interest_base": "workdays",
            "post_fixed_interest_rate": null,
            "prefixed_interest_rate": {
                "annual_rate": 2.32,
                "daily_rate": 0.0033388,
                "interest_base": "calendar_days",
                "monthly_rate": 0.10516767
            },
            "principal_amortization_month_period": 1,
            "principal_grace_period": 0,
            "refinanced_credit_operations": [
                {
                    "due_balance": 19813.85,
                    "due_balance_reference_date": "2023-03-29",
                    "original_deadline": 1084,
                    "refinanced_credit_operation_key": "a9630d51-f08f-4763-b269-c1947e97c260",
                    "refinanced_credit_operation_status": null
                }
            ],
            "requester_key": "ef48fbe4-267b-45c1-9049-75345c075486",
            "total_pre_fixed_amount": 308.344245048505
        },
        "event_datetime": "2023-03-29 19:19:28",
        "key": "0fc07785-7f74-45b0-a8ca-8ca48f8c17ed",
        "status": "finished",
        "type": "debt"
    }
]
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

## Definições

### Request Body
| Campo                 | Tipo    | Descrição                                                                                                    | 
|-----------------------|---------|--------------------------------------------------------------------------------------------------------------|
| **complex_operation** | boolean | _true_ - indica que multiplas simulações podem ser realizadas na mesma request                               |
| **operation_batch**   | object  | Lista de solicitações de simulação - **[Objeto da Lista Operation Batch](#objeto-da-lista-operation_batch)** |

### Objeto da Lista Operation Batch
| Campo         | Tipo   | Descrição                                                                 | 
|---------------|--------|---------------------------------------------------------------------------|
| **borrower**  | object | **[Objeto Borrower](#objeto-borrower)** - Devedor da operação de crédito  |
| **financial** | object | **[Objeto Financial](#objeto-financial)** - Dados financeiros da operação |

### Objeto Borrower
| Campo           | Tipo   | Descrição                                                                                          |
|-----------------|--------|----------------------------------------------------------------------------------------------------|
| **person_type** | object | **[Enumerador Person Type](#enumerador-person_type)** - Natureza Jurídica do devedor da operação   |

### Objeto Financial
| Campo                      | Tipo   | Descrição                                                                                                     |
|----------------------------|--------|---------------------------------------------------------------------------------------------------------------|
| **amout**                  | float  | Valor de emissão/nominal da operação de crédito                                                               |
| **interest_type**          | object | **[Enumerador Interest Type](#enumerador-interest-type)** - Método de amortização e forma de cálculo de juros |
| **credit_operation_type**  | object | **[Enumerador Credit Operation Type](#enumerador-credit-operation-type)** - Tipo do contrato de crédito       |
| **annual_interest_rate**   | float  | Taxa de juros pré-fixada expressa em decimal ao ano                                                           |
| **disbursement_date**      | date   | Data do desembolso da operação                                                                                |
| **interest_grace_period**  | int    | Carência de juros (em meses)                                                                                  |
| **principal_grace_period** | int    | Período carência de principal                                                                                 |
| **number_of_installments** | int    | Número de parcelas da operação de crédito                                                                     |
| **fine_configuration**     | object | **[Objeto fine_configuration](#objeto-fine-configuration)** - Configuração de juros e multa por atraso        |
| **refinanced_credit_operations**     | array of objects | Lista de objetos contendo informações sobre as operações que serão refinanciadas         |

### Objeto Refinanced Credit Operations

#### Objeto no caso da operação refinanciada não existir
| Campo                     | Tipo   | Descrição                                                                 |
|---------------------------|--------|---------------------------------------------------------------------------|
| **due_balance**           | number | Valor necessário para a quitação da operação refinanciada.                |
| **original_deadline**     | int    | Prazo total em dias da Operação de Crédito refinanciada.                  |
| **monthly_interest_rate** | float  | Taxa de juros mensal da operação refinanciada.                            |
| **disbursement_date**     | date   | Data de desembolso da operação refinanciada.                              |

#### Objeto no caso da operação refinanciada já existir
| Campo                     | Tipo          | Descrição                                                   |
|---------------------------|---------------|-------------------------------------------------------------|
| **operation_key**         | string uuid   | Chave da operação que será refinanciada.                    |

### Objeto Fine Configuration
| Campo                  | Tipo  | Descrição                                                                            | 
|------------------------|-------|--------------------------------------------------------------------------------------|
| **contract_fine_rate** | float | Percentual de multa por atraso expresso em decimal                                   |
| **interest_base**      | enum  | **[Enumerador Interest Base](#enumerador-interest-base)** - Base de cálculo de juros |
| **monthly_rate**       | float | Percentual de juros de atraso ao mês expresso em decimal                             |

---

# Criar um refinanciamento

URL: /documentation/refinanciamento/solicitando_refinanciamento

## Request

ENDPOINT /debt
MÉTODO POST

Request Body

```json
{
    "borrower": {
        "address": {
            "city": "Bauru",
            "neighborhood": "Centro",
            "number": "343",
            "postal_code": "17057770",
            "state": "SP",
            "street": "Av Um"
        },
        "birth_date": "1998-03-21",
        "document_identification": "2f7bfc50-d7c0-4d4e-a5ce-d8bba2aeb348",
        "document_identification_number": "432202821",
        "email": "victor.moura@qitech.com.br",
        "individual_document_number": "37197645832",
        "name": "Urich Oliveira",
        "person_type": "natural",
        "phone": {
            "area_code": "14",
            "country_code": "055",
            "number": "936180265"
        }
    },
    "disbursement_bank_account": {
        "account_digit": "2",
        "account_number": "63755",
        "bank_code": "329",
        "branch_number": "0001"
    },
    "financial": {
        "disbursed_amount": 5000.0
        "monthly_interest_rate": 0.0175,
        "credit_operation_type": "ccb",
        "disbursement_date": "2022-04-25",
        "fine_configuration": {
            "contract_fine_rate": 0.02,
            "interest_base": "calendar_days",
            "monthly_rate": 0.01
        },
        "first_due_date": "2022-06-07",
        "interest_grace_period": 0,
        "interest_subsidy_percentage": 0,
        "interest_type": "pre_price_days",
        "issue_date": "2022-04-25",
        "number_of_installments": 84,
        "principal_grace_period": 0,
        "payment_type": "bankslip"
    },
    "simplified": true,
    "refinanced_credit_operations": [
            {
                "operation_key": "d897f8fa-30d0-4a25-b7e5-5daa61c7480d"
            },
            {
                "operation_key": "f8f0d7a9-4f0c-426c-ac50-33a09d4a0d78"
            }
    ],
  "purchaser_document_number": "32402502000135"
}

```

:::caution Atenção!

O payload ultilizado na emissão de um refinanciamento é o mesmo ultilizado na emissão de uma divida simples, com a adição da lista de operações que serão quitadas em **"refinanced_credit_operations"**.
:::

### Body Params

| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **borrower** *                  | object | **[Objeto Borrower](#objeto-borrower)** - Devedor da operação de crédito.                                                                                                                                         | -            | 
| **disbursement_bank_account** * | object | **[Objeto Disbursement Bank Account](#objeto-disbursement_bank_accounts)** - Dados da conta bancária para desembolso da operação.                                                                                 | -            |
| **financial** *                 | object | **[Objeto Financial](#objeto-financial)** - Dados da conta bancária para desembolso da operaçãoIdentificador de que o objeto enviado é uma pessoa física. Deve conter SEMPRE o  valor "natural" para borrower PF. | -            |
| **purchaser_document_number** * | string | CNPJ do cessionário (comprador) da operação de crédito.                                                                                                                                                           | -            |
| **refinanced_credit_operations** * | array of objects | Lista de **[Objetos Refinanced Credit Operations](#objeto-refinanced_credit_operations)** contendo as operações refinanciadas.                                                                                                                                                           | -            |

## Definições

### Objeto Request Body
| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **borrower** *                  | object | **[Objeto Borrower](#objeto-borrower)** - Devedor da operação de crédito                                                                                                                                         | -            | 
| **disbursement_bank_account** * | object | **[Objeto Disbursement Bank Account](#objeto-disbursement_bank_accounts)** - Dados da conta bancária para desembolso da operação                                                                                 | -            |
| **financial** *                 | object | **[Objeto Financial](#objeto-financial)** - Dados da conta bancária para desembolso da operaçãoIdentificador de que o objeto enviado é uma pessoa física. Deve conter SEMPRE o  valor "natural" para borrower PF | -            |
| **purchaser_document_number** * | string | CNPJ do cessionário (comprador) da operação de crédito                                                                                                                                                           | -            |

### Objeto Borrower
| Campo                            | Tipo    | Descrição                                                                             | Máx. Caract. | 
|----------------------------------|---------|---------------------------------------------------------------------------------------|--------------|
| **name** *                       | string  | Nome do devedor                                                                       | 100          |
| **email**                        | string  | Email do devedor                                                                      | 254          |
| **phone**                        | object  | **[Objeto Phone](#objeto-phone)** - Telefone de contato do devedor                    | -            | 
| **is_pep** *                     | boolean | Indicador de PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep)      | -            |
| **address** *                    | object  | **[Objeto Address](#objeto-address)** - Endereço do devedor                           | -            | 
| **role_type** *                  | enum    | default: _issuer_                                                                     | -            |
| **birth_date** *                 | date    | Data de nascimento do devedor (formato "AAAA-MM-DD")                                  | -            |
| **mother_name** *                | string  | Nome da mãe do devedor                                                                | 100          |
| **nationality**                  | string  | Nacionalidade do devedor                                                              | 50           |
| **person_type** *                | string  | Indicador de pessoa física - default: _natural_                                       | -            |
| **individual_document_number** * | string  | CPF do devedor (apenas números)                                                       | 11           |
| **document_identification**     * | string  | **DOCUMENT_KEY** do PDF do documento de identificação do devedor com foto (RG ou CNH) | -            |
| **document_identification_back** |string | DOCUMENT_KEY do PDF da parte de trás do documento de identificação da pessoa com foto (RG ou CNH) (enviado previamente). | 11 |
| **wedding_certificate** | string | DOCUMENT_KEY do PDF do certificado de casamento da pessoa (enviado previamente). No caso de marital_status ser "single", o valor deste campo deve ser NULL. | 11 |
| **proof_of_residence** * |string | DOCUMENT_KEY do PDF do comprovante de endereço do endereço enviado (enviado previamente). | 11 |

### Objeto Address
| Campo              | Tipo   | Descrição                                                                | Máx. Caract. | 
|--------------------|--------|--------------------------------------------------------------------------|--------------| 
| **city** *         | string | Cidade do endereço                                                       | 100          |
| **state** *        | string | Estado do endereço (com dois caracteres maiúsculos)                      | 2            |
| **number** *       | string | Número do endereço                                                       | 10           |
| **street** *       | string | Rua do endereço                                                          | 100          |
| **complement** *   | string | Complemento do endereço (texto livre)                                    | 100          |
| **postal_code** *  | string | CEP do endereço (http://www.buscacep.correios.com.br/sistemas/buscacep/) | 8            |
| **neighborhood** * | string | Bairro do endereço                                                       | 100          |

### Objeto Phone
| Campo              | Descrição | Exemplo                                               | Máx. Caract. | 
|--------------------|-----------|-------------------------------------------------------|--------------| 
| **number** *       | string    | Número de telefone                                    | 10           |
| **area_code** *    | string    | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2            |
| **country_code** * | string    | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3            |

### Objeto Disbursement Bank Account

Uma emissão de dívida deve conter as informações bancárias para desembolso, por padrão, uma conta de titularidade do devedor.

| Campo                 | Tipo   | Descrição                                                                                          | Máx. Caract. | 
|-----------------------|--------|----------------------------------------------------------------------------------------------------|--------------|
| name                  | string | Nome do titular da conta                                                                           | 50           |
| document_number       | string | CPF do titular da conta                                                                            | 11           |
| bank_code *           | string | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3            |
| branch_number *       | string | Número da agência (não informar o dígito verificador da agência!)                                  | 4            |
| account_number *      | string | Número da conta (sem o dígito verificador da conta!)                                               | 10           |
| account_digit *       | string | Dígito verificador da conta (informar zero no lugar de letras)                                     | 1            |
| account_type          | enum   | [Enumerador Account Type](#enumerador-account-type) Tipo da conta                                  | 1            |

### Objeto Financial

O objeto financial descreve as informações financeiras da operação de crédito.

| Campo                      | Tipo   | Descrição                                                                                                     | Máx. Caract. |
|----------------------------|--------|---------------------------------------------------------------------------------------------------------------|--------------|
| **amout**                  | float  | Valor de emissão/nominal da operação de crédito                                                               | -            |
| **interest_type**          | object | **[Enumerador Interest Type](#enumerador-interest-type)** - Método de amortização e forma de cálculo de juros | -            |
| **credit_operation_type**  | object | **[Enumerador Credit Operation Type](#enumerador-credit-operation-type)** - Tipo do contrato de crédito       | -            |
| **annual_interest_rate**   | float  | Taxa de juros pré-fixada expressa em decimal ao ano                                                           | -            |
| **disbursement_date**      | date   | Data do desembolso da operação                                                                                | -            |
| **interest_grace_period**  | int    | Carência de juros (em meses)                                                                                  | -            |
| **principal_grace_period** | int    | Período carência de principal                                                                                 | -            |
| **number_of_installments** | int    | Número de parcelas da operação de crédito                                                                     | -            |
| **fine_configuration**     | object | **[Objeto Fine Configuration](#objeto-fine-configuration)** - Configuração de juros e multa por atraso        | -            |

### Objeto Fine Configuration

No Objeto Fine Configuration são informados os valor de multa e juros por atraso da operação de crédito. 

| Campo                  | Tipo  | Descrição                                                                            | Máx. Caract. |
|------------------------|-------|--------------------------------------------------------------------------------------|--------------|
| **contract_fine_rate** | float | Percentual de multa por atraso                                                       | -            |
| **interest_base**      | enum  | **[Enumerador Interest Base](#enumerador-interest-base)** - Base de cálculo de juros | -            |
| **monthly_rate**       | float | Percentual de juros de atraso ao mês                                                 | -            |

### Objeto Refinanced Credit Operations 

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `operation_key` | string | key da operação a ser refinanciada | chave uuid |

# Enumeradores

### Enumerador _Person Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **legal**   | Pessoa juridica        |
| **natural**    | Pesso física    |

### Enumerador _Account Type_
| Enumerador             | Descrição             |
|------------------------|-----------------------|
| **checking_account**   | Conta corrente        |
| **deposit_account**    | Conta de depósito     |
| **guaranteed_account** | Conta de garantia     |
| **investment_account** | Conta de investimento |
| **payment_account**    | Conta de pagamento    |
| **saving_account**     | Conta poupança        |
| **salary_account**     | Conta salário         |

### Enumerador _Interest Type_
| Enumerador           | Descrição                                                                                                                                                                |
|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **pre_price_days**   | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado ao dia                                                                                     |
| **pre_price**        | Método de amortização Price (parcelas iguais) com cálculo do juros pré-fixado em períodos fixos (30 dias)                                                                |
| **pre_sac**          | Método de amortização SAC (amortização constante) com cálculo do juros pré-fixado ao dia                                                                                 |
| **post_sac**         | Método de amortização SAC (amortização constante) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                  |
| **post_price**       | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) em períodos fixos (30 dias) |
| **post_price_days**  | Método de amortização Price (parcelas iguais) com cálculo do juros baseado em uma taxa pré-fixada + indexador pós-fixado (cdi, ipca ou igpm) ao dia                      |

### Enumerador _Credit Operation Type_
| Enumerador    | Descrição                      |
|---------------|--------------------------------|
| **ccb**       | Cédula de Crédito Bancário     |
| **cce**       | Cédula de Crédito à Exportação |
| **cci**       | Cédula de Crédito Imobiliário  |
| **nce**       | Nota de Crédito à Exportação   |

### Enumerador _Interest Base_
| Enumerador            | Descrição                                                                 |
|-----------------------|---------------------------------------------------------------------------|
| **workdays**          | Base de cálculo de juros em dias úteis considerando um ano de 252 dias    |
| **calendar_days**     | Base de cálculo de juros em dias corridos considerando um ano de 360 dias |
| **calendar_days_365** | Base de cálculo de juros em dias corridos considerando um ano de 365 dias |

### Enumerador _Fee Type_
Cada tipo de fee deve ser previamente habilitado e configurado pela QI Tech

| Enumerador            | Descrição                                                                  |
|-----------------------|----------------------------------------------------------------------------|
| **tac**               | Tarifa de abertura de cadastro                                             |
| **spread**            | Ágio cobrado no valor de aquisição da operação de crédito                  |
| **warranty_analysis** | Tarifa de análise de garantias                                             |
| **ted_fee**           | Tarifa de TED                                                              |
| **spread_ted_fee**    | Ágio da tarifa de TED cobrado no valor de aquisição da operação de crédito |

## Response

STATUS 200

Response Body

```json
{
  "data": {
    "additional_iof": 469.1328,
    "annual_cet": "283,3821%",
    "assignment_amount": 124690.56,
    "base_iof": 473.6829374063069,
    "borrower": {
      "document_number": "96969879003",
      "name": "Alan Mathison Turing"
    },
    "cet": "11,8500%",
    "collaterals": [],
    "contract": {
      "number": "0000067563/AMT",
      "signature_information": [
        {
          "signature_url": null,
          "signer_document_number": "15627918004",
          "signer_email": "alan.turing@email.com",
          "signer_external_key": null,
          "signer_name": "Alan Mathison Turing",
          "signer_role": "issuer"
        }
      ],
      "urls": [
        "https://storage.googleapis.com/sandbox-doc-api/documents/5af36fcd-8e4c-4421-ad45-7bcba899c0d3/SYNGENTASANDBOX-ALAN_MATHISON_TURING-CCB-0000067563-20230302234816.pdf"
      ]
    },
    "contract_fee_amount": 1234.56,
    "contract_fees": [
      {
        "fee_amount": 1234.56,
        "fee_type": "tac"
      }
    ],
    "external_contract_fee_amount": 1234.56,
    "external_contract_fees": [
      {
        "fee_amount": 1234.56,
        "fee_type": "spread",
        "net_fee_amount": 1120.36,
        "tax_amount": 114.2
      }
    ],
    "installments": [
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2023-04-03",
        "calendar_days": 31,
        "digitable_line": null,
        "due_date": "2023-04-02",
        "due_interest": 0,
        "due_principal": 123456,
        "fine_amount": null,
        "has_interest": true,
        "installment_history": [],
        "installment_key": "da264e95-2bbd-47de-876b-bfea7d25e266",
        "installment_number": 1,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 123456,
        "original_pre_fixed_amount": 13245.468714162304,
        "original_principal_amortization_amount": 58473.151285837695,
        "original_total_amount": 71718.62,
        "paid_amount": 0,
        "paid_at": null,
        "post_fixed_amount": 0,
        "pre_fixed_amount": 13245.468714162304,
        "principal_amortization_amount": 58473.151285837695,
        "qr_code_key": null,
        "qr_code_url": null,
        "renegotiation_proposal_key": null,
        "tax_amount": 148.63875056859942,
        "total_accrual_amount": null,
        "total_amount": 71718.62,
        "total_paid_amount": 0,
        "workdays": 21
      },
      {
        "accrual_reference_date": null,
        "additional_costs": [],
        "advanced_paid_amount": 0,
        "bank_slip_key": null,
        "business_due_date": "2023-05-02",
        "calendar_days": 30,
        "digitable_line": null,
        "due_date": "2023-05-02",
        "due_interest": 0,
        "due_principal": 64982.848714162305,
        "fine_amount": null,
        "has_interest": true,
        "installment_history": [],
        "installment_key": "cac7064b-2310-45e1-a91f-5e8f39f0f0ea",
        "installment_number": 2,
        "installment_payment": [],
        "installment_status": "created",
        "installment_type": "principal",
        "original_due_principal": 64982.848714162305,
        "original_pre_fixed_amount": 6735.77577015044,
        "original_principal_amortization_amount": 64982.84422984956,
        "original_total_amount": 71718.62,
        "paid_amount": 0,
        "paid_at": null,
        "post_fixed_amount": 0,
        "pre_fixed_amount": 6735.77577015044,
        "principal_amortization_amount": 64982.84422984956,
        "qr_code_key": null,
        "qr_code_url": null,
        "renegotiation_proposal_key": null,
        "tax_amount": 325.0441868377075,
        "total_accrual_amount": null,
        "total_amount": 71718.62,
        "total_paid_amount": 0,
        "workdays": 19
      }
    ],
    "iof_charge_method": "financed",
    "issue_amount": 123456,
    "net_external_contract_fee_amount": 1120.36,
    "number_of_installments": 2,
    "prefixed_interest_rate": {
      "annual_rate": 2.32,
      "created_at": "2023-03-02T23:48:15",
      "daily_rate": 0.00329298,
      "interest_base": "calendar_days_365",
      "monthly_rate": 0.10516767
    },
    "requester_identifier_key": "1c2ca4dc-2a20-4dd4-bd5f-af143fadadf4",
    "total_iof": 942.82,
    "total_pre_fixed_amount": 19981.244484312745
  },
  "event_datetime": "2023-03-02 23:48:20",
  "key": "1c2ca4dc-2a20-4dd4-bd5f-af143fadadf4",
  "status": "waiting_signature",
  "webhook_type": "debt"
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Cancelar uma renegociação

URL: /documentation/renegociacao/cancelar_uma_renegociacao

## Request

ENDPOINT /renegotiation/proposal/ PROPOSAL-KEY
MÉTODO DELETE

### Path Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `proposal_key` * | string |  Chave da proposta de renegociação. | chave uuid |  

## Response

STATUS 200

Response Body

```json
{

}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Consultar uma renegociação

URL: /documentation/renegociacao/consultar_uma_renegociacao

## Consultar por Proposal Key

ENDPOINT /renegotiation/proposal/ PROPOSAL-KEY
MÉTODO GET

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `proposal_key` * | string |  Chave da proposta de renegociação. | Chave uuid |

### Response

STATUS 200

Response Body

```json
{
  "proposal_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "request_control_key": null,
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.2,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "",
    "qr_code_url": {},
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "affected_installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
      "due_date": "2022-05-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "6597a073-ea7a-4447-b250-f4d3f07b0b74",
      "due_date": "2022-06-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18900",
      "due_date": "2022-07-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    }
  ],
  "remaining_installments": [
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18903",
      "due_date": "2022-08-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18904",
      "due_date": "2022-09-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18905",
      "due_date": "2022-10-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    }
  ]
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

## Consultar por Request Control Key

ENDPOINT /renegotiation/proposal/request_control_key/ REQUEST-CONTROL-KEY
MÉTODO GET

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `request_control_key` * | string |  Chave de controle da requisição para rastreamento e identificação única. | UUID |
 

 ## Response

STATUS 200

Response Body

```json
{
  "proposal_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.2,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "",
    "qr_code_url": {},
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "affected_installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
      "due_date": "2022-05-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "6597a073-ea7a-4447-b250-f4d3f07b0b74",
      "due_date": "2022-06-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18900",
      "due_date": "2022-07-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    }
  ],
  "remaining_installments": [
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18903",
      "due_date": "2022-08-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18904",
      "due_date": "2022-09-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18905",
      "due_date": "2022-10-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    }
  ]
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Criar uma renegociação

URL: /documentation/renegociacao/criacao_de_uma_renegociacao

ENDPOINT /renegotiation/proposal
MÉTODO POST

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",  // chave da operação de crédito
  "amortization_type": "installment_payment",           // define quais parcelas e como o valor é calculado
  "reference_date": "2022-07-20",                       // base para cálculo do valor presente (D+1)
  "proposal_due_date": "2022-07-20",                    // vencimento do boleto / Pix gerado
  "payment_type": "bank_slip",                          // instrumento de cobrança
  "discount_percentage": 0.2,                           // 20% de desconto sobre o present_amount
  "installments": [
    { "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88" }, // parcela a quitar
    { "installment_key": "0ff87136-b084-44fb-8fc2-d2e3beed483b" }
  ]
}
```

O `amortization_type` define quais parcelas são quitadas e se o cálculo usa valor presente ou valor de face. O `payment_type` controla o instrumento gerado. Veja as seções abaixo para as variações de cada campo.

## `payment_type`

  {[
    {type:'bank_slip', desc:'Linha digitável + Pix QR code'},
    {type:'pix', desc:'Apenas Pix QR code'},
    {type:'manual', desc:'Sem instrumento — registro manual'},
    {type:'internal', desc:'Pagamento interno QI Tech'},
  ].map(({type,desc})=>(
{type}
{desc}
  ))}

## `amortization_type`

**installment_payment**

Quita **parcelas específicas** (por key) sobre o `present_amount` (valor descontado para hoje). Compatível com desconto.

- Exatamente **um** modo de desconto obrigatório: `discount_percentage`, `discount_amount` ou `paid_amount` por parcela
- Para cobrar o valor de face (`total_amount`) sem simular: use `first_installments` com `number_of_installments`

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "installment_payment",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "discount_percentage": 0.2,
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "installments": [
    { "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88" },
    { "installment_key": "0ff87136-b084-44fb-8fc2-d2e3beed483b" }
  ]
}
```

**overdue_installment_payment**

Idêntico ao `installment_payment`, mas **restrito a parcelas em atraso**. Compatível com desconto.

- Aceita apenas parcelas com status `overdue` ou `paid_partial_overdue` — qualquer outro status retorna erro
- Exatamente **um** modo de desconto obrigatório: `discount_percentage`, `discount_amount` ou `paid_amount` por parcela

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "overdue_installment_payment",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "discount_percentage": 0.1,
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "installments": [
    { "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88" }
  ]
}
```

**first_installments**

Quita as **primeiras parcelas em aberto** ao **valor de face** (`total_amount`). A co-api calcula os valores internamente — não é necessário simular antes. Não compatível com desconto.

- **`number_of_installments`** — quita exatamente N parcelas completas
- **`payment_amount`** — distribui o valor pelas primeiras parcelas; a última pode ser quitada parcialmente

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "first_installments",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "number_of_installments": 4
}
```

**last_installments**

Quita as **últimas parcelas em aberto** ao **valor de face**, distribuindo o `payment_amount` da última para a primeira. Não compatível com desconto.

- `include_matured_installment: true` inclui no cálculo a parcela vencida exatamente na `reference_date` (padrão: `false`)

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "last_installments",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "payment_amount": 900
}
```

**equal_amount**

Distribui o `payment_amount` **em partes iguais entre todas as parcelas em aberto**, independente do saldo devedor individual de cada uma. Não compatível com desconto.

:::caution
O abatimento uniforme ignora o peso de cada parcela — parcelas com juros acumulados diferentes recebem o mesmo valor, o que pode deixar saldo residual inesperado. Use apenas quando esse comportamento for intencional.
:::

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "equal_amount",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "payment_amount": 900
}
```

**full_settle**

Quitação total da operação. O `payment_amount` deve corresponder ao saldo devedor total — use a [simulação](/renegociacao/simulacao_de_uma_renegociacao) para obter o valor exato. Não compatível com desconto.

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "full_settle",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "payment_amount": 900
}
```

## Desconto

Aplicável apenas a `installment_payment` e `overdue_installment_payment`. Exatamente **um** dos três campos abaixo deve estar presente — são mutuamente exclusivos:

| Campo | Comportamento |
|---|---|
| `discount_percentage` | Percentual sobre o `present_amount`. Ex.: `0.2` = 20% de desconto. |
| `discount_amount` | Valor fixo distribuído proporcionalmente entre as parcelas pelo `present_amount`. |
| `paid_amount` (por parcela) | Valor exato por parcela, sobrepõe o `present_amount`. Use o `total_amount` da simulação para cobrar o valor de face. |

:::info Valor presente vs. valor de face
`installment_payment` cobra por padrão o `present_amount` — o valor da parcela descontado para hoje. Para cobrar o `total_amount` (valor de face, sem antecipação): simule primeiro e passe o `total_amount` retornado como `paid_amount` por parcela. Para cobrar ao valor de face sem simular, prefira `first_installments` com `number_of_installments`.
:::

## Parâmetros

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `debt_key` | UUID | sempre | Chave da operação de crédito. |
| `amortization_type` | string | sempre | Tipo de amortização. |
| `reference_date` | string | sempre | Data base para cálculo do valor presente (D+1). |
| `proposal_due_date` | string | sempre | Data de vencimento do boleto / Pix gerado. |
| `payment_type` | string | sempre | Instrumento de cobrança. |
| `installments` | array | `installment_payment`, `overdue_installment_payment` | Parcelas a quitar, identificadas por `installment_key`. |
| `number_of_installments` | int | `first_installments`¹ | Número exato de parcelas a quitar a partir da primeira em aberto. |
| `payment_amount` | float | `last_installments`, `equal_amount`, `full_settle`; opcional em `first_installments`¹ | Valor total a pagar. |
| `discount_percentage` | float | um dos três modos² | Percentual de desconto sobre o `present_amount`. |
| `discount_amount` | float | um dos três modos² | Valor fixo de desconto distribuído proporcionalmente. |
| `request_control_key` | UUID | não | Chave de idempotência — reenviar o mesmo valor retorna a proposta original sem criar duplicata. |
| `include_matured_installment` | bool | não | `last_installments` apenas: inclui parcela vencida na `reference_date`. Padrão: `false`. |

¹ `first_installments` exige exatamente um entre `number_of_installments` e `payment_amount`.  
² `discount_percentage`, `discount_amount` e `paid_amount` por parcela são mutuamente exclusivos — exatamente um é obrigatório para `installment_payment` e `overdue_installment_payment`.

### Installments object

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `installment_key` | UUID | sempre | Chave da parcela a quitar. |
| `paid_amount` | float | um dos três modos² | Valor exato a cobrar por esta parcela — substitui o `present_amount`. |

## Response

**201 — proposta criada**

```json
{
  "contract_number": "0001232093/ABC",
  "proposal_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.2,
  "payment_amount": 300,
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "32990001031000700298993000000203110340000004618",
    "qr_code_url": "mockurl.com.br",
    "qr_code_key": "f02c201d-314e-42be-968c-a48776d98fbf",
    "bank_slip_key": "931a989d-66e9-4631-abaa-b413610afb85",
    "paid_method_type": null
  },
  "affected_installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
      "due_date": "2023-01-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    }
  ],
  "remaining_installments": [
    {
      "installment_key": "03b4d86a-9dba-40fc-a4db-33e8772b7be8",
      "due_date": "2022-08-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    }
  ]
}
```

**`payment`**

| Campo | Descrição |
|---|---|
| `digitable_line` | Linha digitável do boleto. Vazio se `payment_type` não for `bank_slip`. |
| `qr_code_url` | URL do QR code Pix. Presente para `bank_slip` e `pix`. |
| `qr_code_key` | Chave do QR code Pix. |
| `bank_slip_key` | Chave do boleto gerado. |
| `paid_method_type` | Método pelo qual o pagamento foi confirmado. `null` enquanto `proposal_status` for `pending_payment`. |

**`affected_installments`** — parcelas incluídas nesta proposta

| Campo | Descrição |
|---|---|
| `total_amount` | Valor de face da parcela (principal + juros + multa). |
| `present_amount` | Valor descontado para a `reference_date` (base de cálculo do `installment_payment`). |
| `paid_amount` | Valor efetivamente cobrado nesta proposta após desconto aplicado. |

**`remaining_installments`** — parcelas não incluídas, para referência do saldo devedor restante.

**400 — requisição inválida**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"code\": \"LEG000069\"}"
}
```

---

# Listar renegociações

URL: /documentation/renegociacao/listar_renegociacoes

## Request

ENDPOINT /renegotiation/proposal
MÉTODO GET

### Query Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `proposal_status`  | string | Status da proposta. | 10 |
| `contract_number` | string | Numero do contrato. | 10 |
| `issuer_document_number` | string | Numero de documento do tomador. | 10 |

 ## Response

STATUS 200

Response Body

```json
{
  "data": [],
  "pagination": {
    "current_page": 1,
    "next_page": 2,
    "rows_per_page": 30,
    "total_pages": 5,
    "total_rows": 140
  }
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Pagamento de renegociação

URL: /documentation/renegociacao/pagamento_renegociacao

## Webhooks:

WEBHOOK_TYPE renegotiation.proposal
STATUS paid

#### Enumeradores paid_method_type

| Enumerador                   | Descrição                                     |
|------------------------------|-----------------------------------------------|
| **bank_slip**                | Pagamento por boleto                          |
| **pix**                      | Pagamento por pix                             |

#### Exemplo de webhook de pagamento da renegociação

Webhook Body

```json
{
	"webhook_type": "renegotiation.proposal",
	"key": "\<PROPOSAL-KEY\>",
	"event_datetime": "\<DATA E HORA DO ENVIO DO WEBHOOK\>",
	"status": "paid",
    "data": {
        "paid_method_type": "<METODO DE PAGAMENTO>",
        "paid_in": {
            "code_number": "<CODIGO DO BANCO LIQUIDANTE>", 
            "ispb": "<ISPB DO BANCO LIQUIDANTE>", 
            "name": "<NOME DO BANCO LIQUIDANTE>"
        }
    }
}
```

#### Payment data da installment paga através de renegociação

Webhook Body

```json
{
    "renegotiation_proposal_key": "806fa827-d1c4-4e5d-bf24-7b317fbbff15",
    "paid_in": {
        "ispb": "18236120",
        "name": "NU PAGAMENTOS - IP",
        "code_number": 260
    },
    "resource_account_key": "8517eb4e-ddce-457b-9e39-194213e53691"
}
```

---

# Renegociação em lote

URL: /documentation/renegociacao/renegociacao_em_lote

:::caution ATENÇÃO
A renegociação em lote só pode ser criada com operações de um mesmo emitente e mesma chave de integração. 
:::

:::caution ATENÇÃO
Há um limite de 50 operações para cada renegociação em lote.
:::

## 1. Simular uma renegociação em lote

### Request

ENDPOINT /renegotiation/batch_proposal_simulation
MÉTODO POST

Request Body

```json
{
    "amortization_type": "installment_payment",
    "reference_date": "2022-07-20",
    "discount_percentage": 0.0,
    "operations": [
      {
        "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
        "installments": [{
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88"
        }]
      },
      {
        "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
        "installments": [{
          "installment_key": "2ef25ed8-7124-44f5-9e3d-1d1a7196166e"
        }]
      }
  ]
}
```

### Response

Response Body

```json
{
  "amortization_type": "installment_payment",
  "discount_percentage": 0.0,
  "discount_amount": 0.0,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "operations": [
    {
      "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
      "payment_amount": 100,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125,
          "present_amount": 100,
          "paid_amount": 100
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "7ac54a3e-fd11-46b2-b811-4c7d6d158fd5",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    },
     {
      "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
      "payment_amount": 140,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "2ef25ed8-7124-44f5-9e3d-1d1a7196166e",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 200,
          "present_amount": 140,
          "paid_amount": 140
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18907",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    }
  ]
}
```

### Campos de desconto

Adicionar um destes campos na requisição permite definir um valor de desconto percentual ou absoluto na criação ou simulação da proposta de renegociação.

Desconto percentual

```json
{
  "discount_percentage": 0.5
}
```

Desconto absoluto

```json
{
  "discount_amount": 200
}
```

## 2. Criar uma renegociação em lote

:::caution ATENÇÃO
O Campo 'request_control_key' é livre e opcional e possui a finalidade de garantir a unicidade das requisições.
:::

### Request

ENDPOINT /renegotiation/batch_proposal
MÉTODO POST

Request Body

```json
{
    "amortization_type": "installment_payment",
    "reference_date": "2022-07-20",
    "proposal_due_date": "2022-07-20",
    "discount_percentage": 0.0,
    "payment_type": "bank_slip",
    "request_control_key": "4f75374c-e02f-4459-bddc-b9a7a0c9b0f3",
    "operations": [
      {
        "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
        "installments": [{
          "installment_key": "767f6ce0-add7-4334-a843-0e82cd1e7360"
        }]
      },
      {
        "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
        "installments": [{
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e89"
        }]
      }
  ]
}
```

:::warning Atenção
 Os campos `discount_amount` e `discount_percentage` **NÃO** podem ser enviados juntos no mesmo payload.
:::

### Body Params

| Campo                 | Tipo | Descrição                                                                                                                         | Caracteres                                                            |
|-----------------------|---|-----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|  
| `debt_key`            | string | Chave única da operação de crédito dentro da QI.                                                                                  | UUID                                                                  |
| `amortization_type`   | string | Tipo de amortização.                                                                                                              | **[Enumeradores Amortization Type](#enumeradores-amortization-type)** |
| `reference_date`      | string | Data referencia a qual valor presente será calculado da renegociação (precisa ser D+1).                                           | 10                                                                    |
| `proposal_due_date`   | string | Data de vencimento da proposta de renegociação.                                                                                   | 10                                                                    |
| `payment_type`        | string | Tipo de pagamento.                                                                                                                | **[Enumeradores Payment Type](#enumeradores-payment-type)**           |
| `discount_percentage` | float | Percentual de desconto que será calculado sobre o valor presente da renegociação ((1 - percentual de desconto) * Valor Presente). | 10                                                                    |
| `discount_amount`     | float | Valor de desconto que será aplicado sobre o valor presente da renegociação (Valor Presente - Valor Bruto Descontado).             | 10                                                                    |
| `installments`        | array of objects | Parcelas renegociadas.                                                                                                            | **[Installments Object](#installments-object)**                       |

### Enumeradores Amortization Type

| Campo                           | Descrição                                                                                |
|---------------------------------|------------------------------------------------------------------------------------------| 
| **installment_payment**         | Será criada uma renegociação para o pagamento de parcelas distintas enviadas no payload. <br/><br/> Para a utilização deste amortization type, é necessário passar a `installment_key` da parcela. |
| **overdue_installment_payment** | Será criada uma renegociação direcionado para o pagamento de parcelas em atraso.<br/><br/> Para a utilização deste amortization type, é necessário passar a `installment_key` da parcela.          |

### Enumeradores Payment Type

| Campo    | Descrição                                                     | 
|----------|---------------------------------------------------------------|
| bankslip | Pagamento via boleto bancário (gera pagamento boleto e o Pix) | 
| pix      | Pagamento via Pix (gera apenas Pix)     |
| manual   | Pagamento feito de forma manual (não gera forma de pagamento) | 

### Installments Object

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `installment_key` | string | key da parcela a ser renegociada | chave uuid |

### Response

Response Body

```json
{
  "batch_proposal_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "batch_proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.0,
  "discount_amount": 0.0,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "0193d113-9abd-4a13-8edb-2d94c2fdb70b",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "request_control_key": "4f75374c-e02f-4459-bddc-b9a7a0c9b0f3",
  "payment": {
    "digitable_line": "",
    "qr_code_url": "",
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "operations": [
    {
      "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
      "payment_amount": 100,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "767f6ce0-add7-4334-a843-0e82cd1e7360",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125,
          "present_amount": 100,
          "paid_amount": 100
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "6807c8ee-8deb-40da-9b39-653d64ee8db7",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    },
     {
      "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
      "payment_amount": 140,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e89",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 200,
          "present_amount": 140,
          "paid_amount": 140
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18907",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    }
  ]
}
```

## 3. Listar renegociações em lote

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `batch_proposal_status` * | string |  Status proposta de renegociação em lote. | - |
| `issuer_document_number` * | string |  Número de documento do emitente | - |
| `request_control_key` * | string |  Chave de identificação do solicitante | - |
 

### Request

ENDPOINT /renegotiation/batch_proposal
MÉTODO GET

Response Body

```json
{
    "data": [
        {
            "batch_proposal_key": "7eba74fb-e893-40ac-91bb-9a9d8f8108d7",
            "request_control_key": "cb55f099-d7cf-4b0a-9ddb-8e3ac3fefe8e",
            "batch_proposal_status": "pending_payment",
            "amortization_type": "installment_payment",
            "discount_percentage": 0,
            "discount_amount": 0.0,
            "payment_amount": 240,
            "requester_name": "Requester",
            "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
            "issuer_name": "issuer",
            "reference_date": "2022-07-25",
            "proposal_due_date": "2022-07-25",
            "issuer_document_number": "98765432100",
            "payment_type": "bank_slip"
        },
        {
            "batch_proposal_key": "272d1b0f-c06d-47c0-943b-812609ff2e6f",
            "request_control_key": "2ef25ed8-7124-44f5-9e3d-1d1a7196166e",
            "batch_proposal_status": "pending_payment",
            "amortization_type": "installment_payment",
            "discount_percentage": 0,
            "discount_amount": 0.0,
            "payment_amount": 240,
            "requester_name": "Requester",
            "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
            "issuer_name": "issuer",
            "reference_date": "2022-07-20",
            "proposal_due_date": "2022-07-20",
            "issuer_document_number": "98765432100",
            "payment_type": "bank_slip"
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": 2,
        "rows_per_page": 2,
        "total_pages": 5,
        "total_rows": 140
    }
}
```

## 4. Consultar uma renegociação em lote

### Request

ENDPOINT /renegotiation/batch_proposal/BATCH-PROPOSAL-KEY
MÉTODO GET

Response Body

```json
{
  "batch_proposal_key": "7ac54a3e-fd11-46b2-b811-4c7d6d158fd5",
  "request_control_key": "61905b8b-3ed2-46bc-8e9c-a5e99ceaea37",
  "batch_proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.0,
  "discount_amount": 0.0,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "",
    "qr_code_url": "",
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "operations": [
    {
      "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
      "payment_amount": 100,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18903",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125,
          "present_amount": 100,
          "paid_amount": 100
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "34f81236-e24a-4788-88e0-86cd697c36b7",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    },
     {
      "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
      "payment_amount": 140,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e89",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 200,
          "present_amount": 140,
          "paid_amount": 140
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "44cad2ae-60e9-4eb8-bb2a-b37e9557873f",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    }
  ]
}
```

### Request

ENDPOINT /renegotiation/batch_proposal/request_control_key/REQUEST-CONTROL-KEY
MÉTODO GET

Response Body

```json
{
  "batch_proposal_key": "7ac54a3e-fd11-46b2-b811-4c7d6d158fd5",
  "request_control_key": "61905b8b-3ed2-46bc-8e9c-a5e99ceaea37",
  "batch_proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.0,
  "discount_amount": 0.0,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "",
    "qr_code_url": "",
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "operations": [
    {
      "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
      "payment_amount": 100,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18903",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125,
          "present_amount": 100,
          "paid_amount": 100
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "34f81236-e24a-4788-88e0-86cd697c36b7",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    },
     {
      "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
      "payment_amount": 140,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e89",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 200,
          "present_amount": 140,
          "paid_amount": 140
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "44cad2ae-60e9-4eb8-bb2a-b37e9557873f",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    }
  ]
}
```

## 5. Cancelamento de uma renegociação em lote

ENDPOINT /renegotiation/batch_proposal/BATCH-PROPOSAL-KEY
MÉTODO DELETE

### Response

ENDPOINT /renegotiation/batch_proposal/BATCH-PROPOSAL-KEY
MÉTODO DELETE
HTTP STATUS 204

Response Body

```json
    {}
```

## 6. Webhooks

## 6.1. Webhook de pagamento de renegociação em lote

Webhook Body

```json
{
    "webhook_type": "renegotiation.batch_proposal",
    "key": "\<BATCH-PROPOSAL-KEY\>",
    "event_datetime": "\<DATA E HORA DO ENVIO DO WEBHOOK\>",
    "status": "paid",
    "data": {
        "paid_method_type": "<METODO DE PAGAMENTO>",
        "paid_in": {
            "code_number": "<CODIGO DO BANCO LIQUIDANTE>",
            "ispb": "<ISPB DO BANCO LIQUIDANTE>",
            "name": "<NOME DO BANCO LIQUIDANTE>"
        }
    }
}
```

## 6.2. Webhook de rejeição de renegociação em lote

:::caution ATENÇÃO
Uma renegociação em lote pode ser rejeitada pelo decurso de prazo do pagamento ou por um pagamento de parcela por fora da renegociação.
:::

Webhook Body

```json
{
    "webhook_type": "renegotiation.batch_proposal",
    "key": "\<BATCH-PROPOSAL-KEY\>",
    "event_datetime": "\<DATA E HORA DO ENVIO DO WEBHOOK\>",
    "status": "rejected",
    "data": {}
}
```

## 6.3. Exemplo de payment data da installment paga através de renegociação em lote

Webhook Body

```json
{
    "batch_renegotiation_proposal_key": "f9addba2-ec91-41bf-a150-c59eb1c3fbef",
    "paid_in": {
        "ispb": "18236120",
        "name": "NU PAGAMENTOS - IP",
        "code_number": 260
    },
    "resource_account_key": "ea44b9f2-ad00-4896-b8a3-b1a3da28a72f"
}
```

---

# Simulação de uma renegociação

URL: /documentation/renegociacao/simulacao_de_uma_renegociacao

## Request

ENDPOINT /renegotiation/simulation
MÉTODO POST

Request Body

 Exemplos de payloads utilizando amortization_types diferentes

**Usando chaves de parcelas**

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "amortization_type": "installment_payment",
  "reference_date": "2022-07-20",
  "discount_amount": 100,
  "installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88"
    },
    {
      "installment_key": "0ff87136-b084-44fb-8fc2-d2e3beed483b"
    },
    {
      "installment_key": "e4101c6a-51b3-435f-a2b7-4a65a005cc15"
    }
  ]
}
```

**Usando número de parcelas**

```json
{ 
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "amortization_type": "first_installments",
  "reference_date": "2022-07-20",
  "discount_percentage": 0.2,
  "discount_amount": 100,
  "number_of_installments": 4
}
```

**Usando valor de amortização**

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "amortization_type": "first_installments",
  "reference_date": "2022-07-20",
  "payment_amount": 900
}
```

:::warning Atenção
Os campos `discount_amount`, `discount_percentage` e `paid_amount` (por parcela) são mutuamente exclusivos — envie exatamente um deles.
:::

:::info `total_amount` vs `present_amount` no response
O response retorna ambos por parcela: `present_amount` é o valor descontado para hoje (base do `installment_payment` sem `paid_amount`); `total_amount` é o valor de face. Para cobrar sem desconto de antecipação, use `total_amount` como `paid_amount` na criação da proposta.
:::

### Body Params 

| Campo | Tipo | Descrição                                                                                                                         | Caracteres                                                            |
|---|---|-----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|  
| `debt_key`            | string | Chave única da operação de crédito dentro da QI.                                                                                  | UUID                                                                  |
| `amortization_type` | string | Tipo de amortização.                                                                                                              | **[Enumeradores Amortization Type](#enumeradores-amortization-type)** |
| `reference_date` | string | Data referencia a qual valor presente será calculado da renegociação (precisa ser D+1).                                           | 10                                                                    |
| `proposal_due_date` | string | Data de vencimento da proposta de renegociação.                                                                                   | 10                                                                    |
| `payment_type` | string | Tipo de pagamento.                                                                                                                | **[Enumeradores Payment Type](#enumeradores-payment-type)**           |
| `payment_amount` | float | Valor final renegociado na proposta.                                                                                              | -                                                                     |
| `number_of_installments` | int | Número de Parcelas renegociadas na proposta.                                                                                      | 10                                                                    |
| `discount_percentage` | float | Percentual de desconto que será calculado sobre o valor presente da renegociação ((1 - percentual de desconto) * Valor Presente). | 10                                                                    |
| `discount_amount` | float | Valor de desconto que será aplicado sobre o valor presente da renegociação (Valor Presente - Valor Bruto Descontado).             | 10                                                                    |
| `installments` | array of objects | Parcelas renegociadas.                                                                                                            | **[Installments Object](#installments-object)**                       |

### Installments array of objects

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---| 
| `installment_key` | string | key da parcela a ser renegociada | chave uuid |

### Enumeradores Amortization Type
 Campo                           | Descrição                                                                                                                                                                                                                                   |
|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 
| **installment_payment**         | Será criada uma renegociação para o pagamento de parcelas distintas enviadas no payload. <br/><br/> Para a utilização deste amortization type, é necessário passar a `installment_key` da parcela.                                                |
| **overdue_installment_payment** | Será criada uma renegociação direcionado para o pagamento de parcelas em atraso.<br/><br/> Para a utilização deste amortization type, é necessário passar a `installment_key` da parcela.                                                     |
| **first_installments**          | Será criada uma renegociação que pagará as primeiras parcelas, em status aberto. <br/><br/> Este amortization type pode ser utilizado passando tanto a quantidade de parcelas que deseja quitar (`number_of_installments`), quanto o valor que o tomador deseja pagar `payment_amount`). 

## Response

STATUS 201

Response Body

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "discount_percentage": 0.2,
  "payment_amount": 240,
  "origin_key": "76912b4b-508a-4b10-9485-0e87f1316b35",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "requester_name": "Requester Name",
  "amortization_type": "installment_payment",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "issuer_document_number": "98765432100",
  "affected_installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
      "due_date": "2023-01-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "0ff87136-b084-44fb-8fc2-d2e3beed483b",
      "due_date": "2022-12-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "e4101c6a-51b3-435f-a2b7-4a65a005cc15",
      "due_date": "2022-11-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    }
  ],
  "remaining_installments": [
    {
      "installment_key": "03b4d86a-9dba-40fc-a4db-33e8772b7be8",
      "due_date": "2022-08-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "c622efa6-8731-464b-a563-a7a26c19279d",
      "due_date": "2022-09-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18905",
      "due_date": "2022-10-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    }
  ]
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Consulta de documentos

URL: /documentation/upload_de_documentos/consulta_documents

A consulta do documento poderá ser feita a partir da requisição:

### Request

ENDPOINT /document/[document_key]/url
MÉTODO GET

### Path Params

| Campo          | Descrição                              |
|--------------- |----------------------------------------|
| `document_key` | Chave única do documento               |

:::caution Atenção
A url do documento será gerada com um prazo de expiração de 10 minutos.
:::

### Response

STATUS 200

Response Body

```json
{
	"document_key": "8a1e62f3-7add-4240-a51d-e0f1a2f421fa",
	"document_url": "url_expirável",
	"signed_document_url": "url_expirável",
	"expiration_datetime": "2024-05-01T01:00:00.000Z"
}
```

| Campo 				| Tipo   | Descrição                                                                                               | 
|-----------------------|--------|---------------------------------------------------------------------------------------------------------|
| `document_url`* 		| string | URL expirável do documento original.                                                                    |
| `signed_document_url` | string | URL expirável do documento assinado se houver. Em caso de não existência não iremos retornar esse campo.|
| `expiration_datetime`*| string | Data e hora do momento em que ocorrerá a expiração das urls.                                            |

---

# Upload de documentos

URL: /documentation/upload_de_documentos/

---

A chamada deve ser autenticada seguindo o padrão descrito na seção [1.1.3. Teste de Autenticação](../primeiros_passos/teste_de_autenticacao). Com as seguintes ressalvas:

- O valor da variável **md5_hash** (**md5_body** para a v1 da nossa autenticação) enviada na assinatura do header deverá ser o MD5 do binário do arquivo que está sendo enviado
- O binário do arquivo deve ser enviado no corpo da request como um FormData utilizando como chave a string "file" e no valor o arquivo a ser enviado. (Este conteúdo não é encriptado)
- No body de resposta dessa chamada será enviado um GUID que é o identificador do documento (chamado de DOCUMENT_KEY daqui para frente) e deve ser armazenado para uso futuro.

---

## Request

ENDPOINT /upload
MÉTODO POST

Response Body

```json
{
  "document_key": "cfbc8469-89ea-4a80-9f64-ba7b1566c68b",
  "document_md5": "cd451103fa512frc98ce684d3896698c"
}
```

:::caution Atenção
Lembrar de salvar a **document_key**, chave essa necessária para a consulta do documento.
:::

## Exemplo de chamada

Exemplo para upload de uma imagem a partir de uma URL.

**Python**

```python

import jwt
import hashlib
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
import json
from datetime import datetime

BASE_URL = "https://api-auth.sandbox.qitech.app"
API_KEY = "4c268c0a-53ff-429b-92b6-47ef98a6d89a" # Esta chave é um exemplo, por favor utilize sua própria chave
CLIENT_PRIVATE_KEY = ''''
-----BEGIN EC PRIVATE KEY-----
MIHbAgEBBEHh1hIeOPE5XNNhn6bxRAmVswsPZ0wZCmzVvP8Tl/LZK9ofVmRVGzll
srU1uezJEyHKYdOHrE2p52xUj+pHzjJvb6AHBgUrgQQAI6GBiQOBhgAEAAofUz1J
hBSOyGHLsnV9Sz0DSWmhl7U+ljqbfa8PKVFWSV3w16I1v2zME5/UzUhHn1gWsjnv
7/ekcLLAQbvqMPNXAfjIhFXLAPzqbB9iCuVua1v0Vgy52rBemOWrJka/Ws2bnKR8
h1N1OxOYeYr6C2jqMygBLktKMAs+282CEiEb4bIv
-----END EC PRIVATE KEY----- 
''' # Esta chave é um exemplo, por favor utilize sua própria chave

def get_document(url):
    try:
        response = requests.get(url)
        return response.content
    except Exception as error:
        print("Error fetching document:", error)
        raise

def upload_document(array_buffer):
    endpoint = "/upload"
    method = "POST"
    timestamp = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + "Z"
    md5_hash = hashlib.md5(array_buffer).hexdigest()

    jwt_header = {
        "typ": "JWT",
        "alg": "ES512",
    }

    jwt_body = {
        "payload_md5": md5_hash,
        "timestamp": timestamp,
        "method": method,
        "uri": endpoint,
    }

    encoded_header_token = jwt.encode(jwt_body, CLIENT_PRIVATE_KEY, algorithm="ES512", headers=jwt_header)

    signed_header = {
        "Authorization": encoded_header_token,
        "API-CLIENT-KEY": API_KEY,
        "Content-Type": "multipart/form-data",
    }

    url = f"{BASE_URL}{endpoint}"
    multipart_data = MultipartEncoder(
        fields={'file': ('image.jpeg', array_buffer, 'image/jpeg')}
    )
    signed_header['Content-Type'] = multipart_data.content_type

    try:
        response = requests.post(url, headers=signed_header, data=multipart_data)
        response_data = response.json()
        document_key = response_data.get('document_key')
        print(f'Response data is: {response_data} and document_key is: {document_key}')
        return document_key
    except Exception as error:
        print('Error:', error)
        raise

def main():
    file_url = "{FILE_URL}"

    document_buffer = get_document(file_url)

    document_key = upload_document(document_buffer)

    print("document_key is", document_key)

if __name__ == "__main__":
    main()

```
  

**Node.js**

```js
const jwt = require('jsonwebtoken')
const crypto = require('crypto')
const axios = require('axios')
const FormData = require('form-data')
const fs = require('fs')
const fetch = require('node-fetch')

async function getDocument(url) {
  try {
    const response = await axios.get(url, { responseType: 'arraybuffer' })
    return response.data
  } catch (error) {
    console.error('Error fetching document:', error)
    throw error
  }
}

async function uploadDocument(arrayBuffer) {
  const base_url = "[https://api-auth.sandbox.qitech.app](https://api-auth.sandbox.qitech.app)"
  const endpoint = '/upload'
  const method = 'POST'
  const timestamp = new Date().toISOString()
  const md5_hash = crypto.createHash('md5').update(arrayBuffer).digest('hex')
  const client_private_key = `-----BEGIN EC PRIVATE KEY-----
    MIHbAgEBBEHh1hIeOPE5XNNhn6bxRAmVswsPZ0wZCmzVvP8Tl/LZK9ofVmRVGzll
    srU1uezJEyHKYdOHrE2p52xUj+pHzjJvb6AHBgUrgQQAI6GBiQOBhgAEAAofUz1J
    hBSOyGHLsnV9Sz0DSWmhl7U+ljqbfa8PKVFWSV3w16I1v2zME5/UzUhHn1gWsjnv
    7/ekcLLAQbvqMPNXAfjIhFXLAPzqbB9iCuVua1v0Vgy52rBemOWrJka/Ws2bnKR8
    h1N1OxOYeYr6C2jqMygBLktKMAs+282CEiEb4bIv
    -----END EC PRIVATE KEY-----`; // This key is an example, please use your own
  const api_key = '4c268c0a-53ff-429b-92b6-47ef98a6d89a' // This key is an example, please use your own

  try {
    const jwt_header = {
      typ: 'JWT',
      alg: 'ES512',
    }

    const jwt_body = {
      payload_md5: md5_hash,
      timestamp: timestamp,
      method: method,
      uri: endpoint,
    }

    const encoded_header_token = jwt.sign(jwt_body, client_private_key, {
      algorithm: 'ES512',
      header: jwt_header,
    })

    const signed_header = {
      AUTHORIZATION: encoded_header_token,
      'API-CLIENT-KEY': api_key,
    }

    const url = `${base_url}${endpoint}`
    const formData = new FormData()
    formData.append('file', Buffer.from(arrayBuffer), {
      filename: 'image.jpeg',
    })

    const response = await fetch(url, {
      method: 'POST',
      headers: {
        ...signed_header,
        ...formData.getHeaders(),
      },
      body: formData,
    })

    if (!response.ok) {
      const errorText = await response.text()
      console.log(`Error: ${response.status} ${response.statusText}`, errorText)
      return
    }

    const data = await response.json()
    console.log('Response data is: ', data)
    return data.document_key
    
  } catch (error) {
    console.error('Error:', error)
  }
}

async function main() {
  const fileUrl = '<URL_LINK_TO_DOCUMENT_IMAGE>'
  const documentBuffer = await getDocument(fileUrl)
  const documentKey = await uploadDocument(documentBuffer)

  console.log('Document key is: ' + documentKey)
}

main()
```

- OBS: O exemplo acima utiliza a biblioteca [node-fetch](https://www.npmjs.com/package/node-fetch) para realizar a chamada, mas você pode utilizar a biblioteca de sua preferência. O importante é que a chamada seja feita com o método POST, com o header `Content-Type` com o valor `multipart/form-data` e o body seja um FormData com a chave `file` e o valor o binário do arquivo a ser enviado.

:::warning Aviso
A blibioteca 'Axios' está com um bug que faz com que o FormData seja enviado vazio. A issue pode ser vista no [repositório no GitHub](https://github.com/axios/axios/issues/5986). Caso este problema ainda não tenha sido resolvido no momento de sua integração, sugerimos a utilização da biblioteca 'node-fetch' para realizar esta chamada.
:::

---

# Webhooks de dívida

URL: /documentation/webhooks/dividas

:::info Informação
O timeout para resposta de nosso webhooks é de 5 segundos.
:::

:::danger Atenção!
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.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Webhook de assinatura finalizada

Response Body

```json
{
    "key": "ebe12ca1-ec34-4674-bd62-24c0bc204e81",
    "status": "signature_finished",
    "webhook_type": "debt",
    "event_datetime": "2024-09-02 18:39:49",
    "signed_contract_url": "https://storage.googleapis.com/live-doc-api/documents/6099edd7-1c83-4890-998e-ce60e218523cb/S_signed.pdf"
}

```

## Webhook de desembolso.

Response Body

```json
{
    "key": "bb81d525s-aa4b-4ddf-81d6-aa4b41fd04nb",
    "data": {
        "installments": [
        {
            "due_date": "2025-11-24",
            "total_amount": 8304.16,
            "installment_key": "7ec2f4d-b21e-4bd5-ahs6-60e998267249",
            "pre_fixed_amount": 2475.77421509,
            "installment_number": 1,
            "principal_amortization_amount": 5828.23857532
        },
        {
            "due_date": "2025-12-22",
            "total_amount": 8304.16,
            "installment_key": "54g37d78-a9a9-bf82-9f8e-fd3ba123797a",
            "pre_fixed_amount": 2001.06342502,
            "installment_number": 2,
            "principal_amortization_amount": 6303.43346322
        }
        ],
        "ted_receipt_list": [
        {
            "fee": 0,
            "url": "https://storage.storage.com/sandbox-doc-api/documents/f9as9329-22bd-4dbg-91a2-f2sdgeth4h04/fheth459-bhrf-4hrt-9hra-fdsfsgehth42.pdf",
            "amount": 123456.0,
            "origin": {
            "name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
            "type": "payment_account",
            "branch": "0001",
            "document": "32402502000777",
            "bank_code": "329",
            "account_key": "5d068423-7774-49e4-b15b-7741238df5a8",
            "branch_digit": null,
            "account_digit": "5",
            "account_branch": "0001",
            "account_number": "00002",
            "financial_institution_name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A."
            },
            "timestamp": "2025-10-26T17:00:51",
            "description": "60701190 8615 22110-2 96969879003 - Alan Mathison Turing",
            "destination": {
            "name": "Alan Mathison Turing",
            "type": "checking_account",
            "branch": "8612",
            "purpose": "Crédito PIX em Conta",
            "document": "96972379003",
            "bank_ispb": "60111190",
            "branch_digit": null,
            "account_digit": "2",
            "account_number": "44110",
            "financial_institution_name": "BANCO S.A."
            },
            "end_to_end_id": "E32402402200510221300gNgeefVNtVr",
            "transaction_key": "25044504-1902-412a-a445-23b813bee6c1",
            "origin_transaction_key": "542224ea-b5ea-49ff-b7b7-673b81af387b"
        }
        ],
        "requester_identifier_key": null
    },
    "status": "disbursed",
    "webhook_type": "debt",
    "event_datetime": "2025-10-26 17:00:52"
    }
```

:::info Importante
    Quando os boletos de uma dívida são gerados, é enviado outro webhook: [Webhook de parcelas](/documentation/webhooks/parcelas)
:::

## Webhook de cancelamento.

Response Body

```json
{
     "webhook_type": "debt",
     "key":"27a099df-4688-43cb-87fa-515b1cf343a5",
     "event_datetime": "2022-09-27 07:03:49",
    "data": {
        "cancel_reason": "Operacao cancelada manualmente",
        "cancel_reason_enumerator": "manual"
    },
     "status":"canceled "
  }

```

## Webhook de contrato quitado:

Response Body

```json
{
    "key": "27a099df-4688-43cb-87fa-515b1cf343a5",
    "data": {
        "settlement_amount": 3429.38
    },
    "status": "settled",
    "webhook_type": "debt",
    "event_datetime": "2022-09-27 07:03:49"
}
```

----

### Motivos de cancelamento

| cancel_reason_enumerator | Descrição | 
|---|---|
|disbursing_error|Operação cancelada por erro no momento do desembolso.
|waiting_signature |	Operação cancelada por falta de assinatura.
|is_portability|A operação foi cancelada pois é uma portabilidade que não foi concluída.
|not_collateral_constituted	| A operação foi cancelada pois as garantias não foram constituídas.
|entry_not_paid| A operação foi cancelada pois a entrada não foi paga.
|not_assigned |Operação foi cancelada porque o processo de cessão não foi realizado.
|pix_max_retry|Operação cancelada pois o banco recebedor não conseguiu receber o desembolso.
|lack_of_resource |Operação cancelada por falta de recurso.
|manual|Operação cancelada manualmente.
|kyc_not_accepted|Operação cancelada pois não foi aprovada no compliance.
|not_collateral_fgts|Operação cancelada por erro com FTGS.
|agencia_conta_invalida	|Agência ou Conta Destinatária do Crédito Inválida.
|not_assigned	|Operação foi cancelada porque o processo de cessão não foi realizado.
|invalid_account|	Número da conta de destino é inexistente ou inválido.
|invalid_document_number	|CPF/CNPJ da conta de destino está incorreto.
|unsupported_transaction	|A conta de destino não suporta este tipo de transação.
|bank_slip_payment	|Operação cancelada por erro no pagamento do boleto.
|bank_slip_paid	|Operação cancelada pois o boleto já está pago.
|bank_slip_written_off	|Operação cancelada pois o boleto já está baixado.
|invalid_ispb	|Número ISPB é inválido ou inexistente.
|rejected_payment|	Ordem de pagamento foi rejeitada pelo banco recebedor.
|disbursed_amount_refunded| Operação cancelada devido a devolução do valor de desembolso|

---

# Webhooks de gestão de risco

URL: /documentation/webhooks/gestao_de_risco

O `risk_amount` corresponde ao saldo devedor das operações ainda **não cedidas** — ou seja, a exposição em aberto da carteira que permanece sob risco e que consome o limite (`limit_amount`) disponível para novos desembolsos. Conforme as operações são cedidas ou quitadas, elas deixam de compor o `risk_amount` e liberam limite para novos desembolsos.

:::danger Regra de desembolso
Se `risk_amount + issue_amount > limit_amount`, a operação não será desembolsada.
:::

:::tip Habilitação
Entre em contato com o time da QI Tech para configurarmos o envio!
:::

## Webhook de atualização de risco

Enviado periodicamente, **a cada hora**, com a atualização do valor de risco acumulado do cliente.

Response Body

```json
{
    "key": "b3a7e2c4-9d1f-4e8a-a456-2c3d4e5f6a7b",
    "data": {
        "risk_amount": 1500000,
        "limit_amount": 9000000,
        "reconciled_at": "2025-09-15T20:24:41"
    },
    "status": "completed",
    "webhook_type": "risk_management.risk_updated",
    "event_datetime": "2025-09-15T20:24:41Z"
}
```

## Webhook de atualização de limite

Enviado quando o limite de emissão de dívidas do cliente é atualizado.

Response Body

```json
{
    "key": "c4b8f3d5-0e2a-5f9b-b567-3d4e5f6a7b8c",
    "data": {
        "risk_amount": 0,
        "limit_amount": 9000000,
        "reconciled_at": "2025-09-15T18:03:54"
    },
    "status": "completed",
    "webhook_type": "risk_management.limit_updated",
    "event_datetime": "2025-09-15T18:03:54Z"
}
```

## Definições

### Objeto callback

| Campo | Tipo | Descrição | Obrigatório |
|-------|------|-----------|-------------|
| **event_datetime** | string | Data e hora do evento no formato ISO 8601 UTC | Sim |
| **key** | string | Chave única do evento | Sim |
| **status** | string | Status do evento | Sim |
| **webhook_type** | string | Tipo do webhook (`risk_management.risk_updated` ou `risk_management.limit_updated`) | Sim |
| **data** | object | Dados específicos do evento de gestão de risco | Sim |

### Objeto data

| Campo | Tipo | Descrição | Obrigatório |
|-------|------|-----------|-------------|
| **risk_amount** | number | Saldo devedor das operações ainda não cedidas — exposição em aberto da carteira que consome o limite disponível | Sim |
| **limit_amount** | number | Limite total disponível para emissão de novas dívidas | Sim |
| **reconciled_at** | string | Data e hora da última reconciliação no formato ISO 8601 | Sim |

---

# Webhooks de indevidos

URL: /documentation/webhooks/indevidos

:::info Informação
O timeout para resposta de nossos webhooks é de 5 segundos.
:::

:::danger Atenção!
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.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Introdução

Estes webhooks são disparados automaticamente quando a QI Tech identifica e processa a devolução de um valor indevido.

## Webhook de sucesso na devolução de indevidos

Response Body

```json
{
    {
        "event_datetime": "2024-01-15T14:30:00.000Z",
        "key": "fb34e0ac-2c98-47e7-9040-406b8c3d80e7",
        "status": "refunded",
        "webhook_type": "laas.devolution.refund_receipt",
        "data": {
            "origin_key":"b41c63e4-6912-4217-9111-a47dd4da9588",
            "devolution_key": "336f0e15-e7b8-45a4-8986-5411434be76a",
            "devolution_amount": 150.75,
            "devolution_status": "refunded",
            "devolution_reason_description": "The payment arrived earlier than expected. The difference between the paid amount and the present value should be refund",
            "receipt_url": "https://storage.googleapis.com/receipts/devolution_receipt_12345.pdf",
            "document_key": "cd27a0c3-630d-4682-81b2-71b5b325bcde",
            "transacted_at": "2024-01-15T14:25:30.000Z",
            "devolution_origin_type":"social_security"
        }
    }
}
```

## Webhook de falha na devolução de indevidos

Response Body

```json
{
    {
        "event_datetime": "2024-01-15T14:30:00.000Z",
        "key": "fb34e0ac-2c98-47e7-9040-406b8c3d80e7",
        "status": "error",
        "webhook_type": "laas.devolution.refund_failed",
        "data": {
            "origin_key":"b41c63e4-6912-4217-9111-a47dd4da9588",
            "devolution_key": "336f0e15-e7b8-45a4-8986-5411434be76a",
            "devolution_amount": 150.75,
            "devolution_status": "error",
            "devolution_reason_description": "The payment arrived earlier than expected. The difference between the paid amount and the present value should be refund",
            "devolution_origin_type":"social_security"
        }
    }
}
```

# Retentativa de devolução

No caso de falha na devolução, é possível realizar uma chamada para retentar a transferência. 

Enviando os dados bancários, será feita a retentativa inicialmente por pix na conta informada, no caso de falha, será realizada uma segunda tentativa através de chave pix cpf. 
É possível realizar a retentativa diretamente por chave pix cpf.

PATCH
/devolution/devolution/DEVOLUTION-KEY/retry

**Request Body**

**Informando dados bancários**

```json
{
    "issuer_name":"John Doe",
    "document_number": "14471835092",
    "bank_account": {
      "account_branch":"0001",
      "account_number":"12345",
      "account_digit":"9",
      "bank_code":"001",
      "ispb":"00000000",
      "account_type":"checking"
    },
}
```

**Por chave pix cpf**

```json
{ 
    "use_only_document_number_pix_key": true
}
```

# Consulta de devolução

### Query Parameters

| Parâmetro             | Tipo      | Obrigatório | Descrição                                       | Valor Padrão |
|-----------------      |---------  |-------------|-------------------------------------------      |--------------|
| document_number       | string    | Não         | documento do tomador da dívida                  |               |
| credit_operation_key  | uuid      | Não         | Chave única da operação de crédito              |               |
| origin_key            | uuid      | Não         | Chave de referência do recurso devolvido        |               |
| status                | sring     | Não         | Status da devolução                             |               |
| start_date            | date      | Não         | Data de criação da devolução (YYYY-mm-dd)       |               |
| end_date              | date      | Não         | Data de criação da devolução (YYYY-mm-dd)       |               |
| page                  | integer   | Não         | Número da página a ser retornada                | 1             |
| page_size             | integer   | Não         | Quantidade de registros por página              | 25            |

:::info
A paginação é baseada em um, portanto a primeira página é a página 1.
:::

GET
/devolutions

**Request Body**

```json
{
    "data": [
        {
            "devolution_key": "336f0e15-e7b8-45a4-8986-5411434be76a",
            "document_number": "03047465096",
            "devolution_amount": 150.75,
            "status": "refunded",
            "origin_type": "social_security",
            "devolution_reason": "The payment arrived earlier than expected. The difference between the paid amount and the present value should be refund",
            "receipt_url":"https://storage.googleapis.com/receipts/devolution_receipt_12345.pdf",
            "credit_operation_key": "fb34e0ac-2c98-47e7-9040-406b8c3d80e7",
            "origin_key": "b41c63e4-6912-4217-9111-a47dd4da9588",
            "created_at": "2024-01-15T14:30:00.000Z",
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": 2,
        "rows_per_page": 100,
    }
}
```

## Definições

### Objeto callback

| Campo | Tipo | Descrição | Obrigatório |
|-------|------|-----------|-------------|
| **event_datetime** | string | Data e hora do evento no formato ISO 8601 UTC | Sim |
| **key** | string | Chave única da operação de crédito | Sim |
| **status** | string | Status da devolução | Sim |
| **webhook_type** | string | Tipo do webhook | Sim |
| **data** | object | Dados específicos da devolução | Sim |

### Objeto data

| Campo | Tipo | Descrição | Obrigatório |
|-------|------|-----------|-------------|
| **origin_key** | string | Chave de referência do recurso devolvido | Sim |
| **devolution_key** | string | Chave única da devolução | Sim |
| **devolution_amount** | number | Valor da devolução em reais | Sim |
| **devolution_status** | string | Status atual da devolução | Sim |
| **devolution_reason_description** | string | Descrição do motivo da devolução | Sim |
| **receipt_url** | string | URL do comprovante da devolução | Sim |
| **document_key** | string | Chave do documento relacionado | Sim |
| **transacted_at** | string | Data e hora da transação no formato ISO 8601 UTC | Sim |
| **devolution_origin_type** | string | Origem do recurso da devolução, consulte os possíveis enumeradores na tabela [Possíveis enumeradores de devolution_origin_type](#devolution_origin_type) | Sim |

## Possíveis enumeradores de devolution_origin_type {#devolution_origin_type}

| Status | Descrição |
|--------|-----------|
| **fgts_conciliation**             | Desconto indevido associado ao repasse de FGTS |
| **ss_conciliation**               | Desconto indevido associado ao repasse de INSS |
| **private_payroll_conciliation**  | Desconto indevido associado ao repasse de Consignado Privado |
| **military_payroll_conciliation** | Desconto indevido associado ao repasse de Exército |
| **federal_payroll_conciliation**  | Desconto indevido associado ao repasse de SIAPE |
| **payroll_card_discount**         | Desconto indevido associado ao repasse de Cartão Consignado |
| **renegotiation**                 | Desconto indevido associado a renegociação |

## Status possíveis

| Status                    | Descrição |
|--------                   |-----------|
| **refunded**              | Devolução processada com sucesso      |
| **error**                 | Devolução processada sem sucesso      |
| **pending**               | Devolução ainda não processada        |
| **refund_reversed**       | Devolução estornada                   |

---

# Webhooks de pagamento de parcelas

URL: /documentation/webhooks/pagamento_de_parcela

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

:::danger Atenção!
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.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

----
### Exemplo de webhook de parcela paga

```json
{
    "key": "4219cb7b-32b9-45d1-b19c-24fbca04ca02",
    "webhook_type": "laas.credit_operation.installment.payment",
    "event_datetime": "2026-01-14 04:08:30",
    "data": {
        "installment_key":"1234cb7b-3329-12d1-429c-24f84975ca02",
        "reference_date":"2026-02-13",
        "paid_at":"2026-02-13 20:38:07",
        "paid_method_type":"pix",
        "installment_status":"paid_early",
        "installment_payment_key":"2accee19-ed22-43f9-9573-3b6232658337",
        "paid_amount":567.73,
        "total_amount":567.73,
        "present_total_amount":567.73,
        "prefixed_interest_payment_amount":556.73948769,
        "principal_amortization_payment_amount":10.99051231,
        "resource_account_key":"422cee19-ed22-43f9-9573-3b6111658337",
        "batch_renegotiation_proposal_key":null,
        "renegotiation_proposal_key":null,
        "received_portability_key":null,
        "refinancing_credit_operation_key":null,
        "bank_slip_key":null,
        "pix_qrcode_key":"3b61ee19-ed22-6119-9573-3b6119573337",
        "paid_in":{
                "name": "ITAÚ UNIBANCO S.A.",
                "code_number": 341,
                "ispb": 60701190
            }
    },
}
```

## Anexo

### Descritivo dos campos {#paid_method}

|Campo                                  | Tipo              | Descrição     |
|-------------------------------------- |------             |-----          |
|key                                    |UUID               |chave identificadora da dívida (credit_operation_key ou DEBT_KEY)|
|installment_key                        |UUID               |chave identificadora da parcela|
|reference_date                         |Date               |Data de referência para o cálculo do saldo devedor da parcela|            
|paid_at                                |DateTime           |Data do pagamento|        
|paid_method_type                       |string             |Método de pagamento, consulte os possíveis enumeradores na tabela [Enumeradores para paid_method_type](#paid_method)|                
|installment_status                     |string             |Status da parcela, consulte os possíveis enumeradores na tabela [Enumeradores para installment_status](#installment_status)|
|installment_payment_key                |UUID               |Chave única do pagamento|                        
|paid_amount                            |decimal            |Valor pago|            
|total_amount                           |decimal            |Valor total da parcela, em caso de pagamento parcial é atualizado com o valor em aberto|            
|present_total_amount                   |decimal            |Valor presente na data de referência (reference_date)|                    
|prefixed_interest_payment_amount       |decimal            |Valor do pagamento referente à amortização de juros|                    
|principal_amortization_payment_amount  |decimal            |Valor do pagamento referente à amortização de principal|                    
|resource_account_key                   |UUID               |Conta de origem do saldo utilizado na liquidação|                    
|batch_renegotiation_proposal_key       |UUID               |Chave da renegociação em lote, se aplicável|                                
|renegotiation_proposal_key             |UUID               |Chave da renegociação, se aplicável|                        
|refinancing_credit_operation_key       |UUID               |Chave da operação de refinanciamento, se aplicável|                        
|received_portability_key               |UUID               |Chave da portabilidade recebida, se aplicável|                        
|bank_slip_key                          |UUID               |Chave do boleto registrado com a parcela, se aplicável|                        
|pix_qrcode_key                         |UUID               |Chave da pix qr code registrado com a parcela, se aplicável|                        
|paid_in                                |objeto             |Informações do banco pagador, aplicável nos casos de pagamento por pix ou boleto|                        

:::warning Valor de multa e mora do pagamento
O valor de multa+mora (fine_amount) do pagamento pode ser identificado através da fórmula:

fine_amount = paid_amount - prefixed_interest_payment_amount - principal_amortization_payment_amount.
:::

### Enumeradores para paid_method_type {#paid_method}

| Enumerador            | Descrição         |
|-----------------------|--------           |
|bankslip               | Boleto            |
|ted                    | ted               |
|pix                    | pix               |
|refinancing            | refinanciamento   |
|portability            | portabilidade     |
|unmonitored            | baixa manual      |
|collateral             | colateral         |

### Enumeradores para installment_status {#installment_status}

| Enumerador                            | Descrição   |
|-----------------------                |--------     |
|created                                | aberta    |      
|opened                                 | aberta    |  
|waiting_payment                        | aberta aguardando pagamento na data de vencimento |              
|paid_partial                           | paga parcialmente |          
|paid                                   | paga |  
|paid_early                             | paga adiantada |      
|overdue                                | atrasada |      
|paid_partial_overdue                   | paga parcialmente atrasada |                  
|paid_overdue                           | paga atrasada |          
|canceled                               | cancelada |      
|unmonitored                            | aberta |          
|waiting_payment_confirmation           | aguardando liquidação de refinanciamento |                          

:::warning Pago parcialmente adiantado
Repare que não existe o status de pago adiantado parcialmente, caso haja uma baixa parcial com data de referência anterior ao vencimento da parcela, o status anterior se mantém (unmonitored ou opened).
:::

---

# Webhooks de parcelas

URL: /documentation/webhooks/parcelas

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

:::danger Atenção!
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.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

Essa configuração pode ser habilitada quando a QI Tech é o agente de cobrança da operação, com ela você receberá as mudanças de status nas parcelas da operação.

Os status que podem ser configurados são:

- **opened** (aberto)
- **paid** (pago)
- **waiting_payment** (aguardando pagamento)
- **paid_early** (pago antecipadamente)
- **paid_partial** (pago parcialmente)
- **overdue** (vencido)
- **paid_partial_overdue** (pago parcialmente após o vencimento)
- **paid_overdue** (pago após o vencimento)

----
### Exemplo de webhook de parcela paga

Body.json

```json
{
    "key": "92a05d9c-e457-4f28-9fa8-86be638ee2d0",
    "data": {
        "status": "paid",
        "installment": {
            "events": [{
                "amount": 1009.68,
                "created_at": "2022-09-27T07:03:35",
                "event_date": "2022-09-27T07:03:34",
                "old_due_date": null,
                "installment_event_type": {
                    "enumerator": "payment",
                    "translation_path": "co.InstallmentEventType.payment"
                },
                "installment_old_status": {
                    "enumerator": "opened",
                    "translation_path": "co.InstallmentStatus.opened"
                }
            }],
            "paid_at": "2022-09-27T07:03:34",
            "due_date": "2022-10-28",
            "workdays": 21,
            "created_at": "2022-08-27T10:54:18",
            "tax_amount": 5.11785875,
            "updated_at": "2022-09-27T07:03:35",
            "fine_amount": null,
            "paid_amount": 1009.68,
            "qr_code_key": "92a05d9c-e457-4f28-9fa8-86be638ee2d0",
            "qr_code_url": "https://qitech.com.br/",
            "due_interest": 0,
            "has_interest": true,
            "payment_type": {
                "enumerator": "bankslip",
                "translation_path": "co.PaymentType.bankslip"
            },
            "total_amount": 1009.68,
            "bank_slip_key": "92a05d9c-e457-4f28-9fa8-86be638ee2d0",
            "calendar_days": 30,
            "due_principal": 1006.66428708,
            "digitable_line": "32990001031000699917042000000200291520000100968",
            "installment_key": "92a05d9c-e457-4f28-9fa8-86be638ee2d0",
            "additional_costs": [],
            "installment_type": {
                "enumerator": "principal",
                "translation_path": "co.InstallmentType.principal"
            },
            "pre_fixed_amount": 3.02013568,
            "business_due_date": "2022-10-31",
            "cetip_settlements": [],
            "post_fixed_amount": 0,
            "total_paid_amount": 0,
            "installment_number": 3,
            "installment_status": {
                "enumerator": "paid",
                "translation_path": "co.InstallmentStatus.paid"
            },
            "installment_payment": [{
                "created_at": "2022-09-27T07:03:35",
                "installment_payment_key": "f03e1fbc-6d7a-456b-bd6a-db0faac1b481",
                "paid_at": "2026-02-10T11:39:07",
                "paid_amount": 1009.68,
                "total_amount": 1009.68,
                "due_principal": 1006.66428708,
                "reference_date": "2022-09-27",
                "paid_method_type": {
                    "enumerator": "pix",
                    "translation_path": "co.PaymentType.pix"
                },
                "payment_data":{
                    "resource_account_key": "0fcc076f-f5e4-422c-aabd-67dbb63b7fb0",
                    "paid_in":{
                        "name": "ITAÚ UNIBANCO S.A.",
                        "code_number": 341,
                        "ispb": 60701190
                    }
                },
                "pre_fixed_amount": 3.02013568,
                "advanced_paid_amount": 0,
                "present_total_amount": 1009.68,
                "renegotiation_proposal_key": null,
                "principal_amortization_amount": 1006.65986432,
                "prefixed_interest_payment_amount": 3.02013568,
                "principal_amortization_payment_amount": 1006.65986432
            }],
            "advanced_paid_amount": 0,
            "total_accrual_amount": 0,
            "original_total_amount": 1009.68,
            "accrual_reference_date": "2022-09-27",
            "original_due_principal": 1006.66428708,
            "original_pre_fixed_amount": 3.02013568,
            "renegotiation_proposal_key": null,
            "principal_amortization_amount": 1006.65986432,
            "original_principal_amortization_amount": 1006.65986432
        },
        "is_finished": true
    },
    "webhook_type": "installment.status_change"
}

```

### Exemplo de webhook de criação de boletos para pagamento de parcelas
Body.json

```json
{
    "key": "96015228-4905-42fc-bda6-e70e0e552b6b",
    "webhook_type": "installment.status_change",
    "data": {
        "status": "update",
        "installments": [
            {
                "installment_key": "bc60ad8e-4dc1-4edc-8c5b-6df1b5c9415d",
                "digitable_line": "32990001455000000000503007797909797660000100000",
                "qr_code_key": "7d20015e-c4ed-4290-b255-33c1c5b56362",
                "qr_code_url": "00020126580014br.gov.bcb.pix0136dc4a27db-2fe1-474d-aa02-88d6fffb8d0d5204000053039865802BR5921NeymarSportEMarketing6008saopaulo62070503***63040EB2",
                "principal_amortization_amount": 141.07452576,
                "pre_fixed_amount": 72.89547424,
                "bank_slip_key": "5f25e9fd-f612-47a3-acff-be9f29d87f6c",
                "due_date": "2024-07-17",
                "total_amount": 216.97
            },
            {
                "principal_amortization_amount": 144.84483469,
                "pre_fixed_amount": 65.12516531,
                "due_date": "2024-08-19",
                "digitable_line": "32990001454000000000627007797908997530000500000",
                "installment_key": "be3f0fde-24ac-42d2-82e9-4b0aa15bf01e",
                "qr_code_key": "4d696847-73a2-4dba-be9f-218084dff8e7",
                "qr_code_url": "00020126580014br.gov.bcb.pix0136dc4a27db-2fe1-474d-aa02-88d6fffb8d0d5204000053039865802BR5921NeymarSportEMarketing6008saopaulo62070503***63040EB2",
                "total_amount": 216.97,
                "bank_slip_key": "bc1cc18f-2db5-470d-8541-b944e53cb699"
            },
            {
                "qr_code_url": "00020126580014br.gov.bcb.pix0136dc4a27db-2fe1-474d-aa02-88d6fffb8d0d5204000053039865802BR5921NeymarSportEMarketing6008saopaulo62070503***63040EB2",
                "digitable_line": "32990001454000000000623007797907697530000500000",
                "bank_slip_key": "8a00a520-7d49-4f51-9293-9ea26e241338",
                "principal_amortization_amount": 164.37001228,
                "installment_key": "3d4b5f21-c0a3-4075-bac2-9086cd90b77e",
                "due_date": "2024-09-17",
                "qr_code_key": "4d47528a-167d-41aa-b9da-246d2030af75",
                "total_amount": 216.97,
                "pre_fixed_amount": 52.59998772
            }
        ]
    }
}

```

## Definições

### Objeto Request Body
| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **key** *                  | object | DEBT-KEY da operação de crédito da referida parcela.                                                                                                                                     | -            | 
| **data** * | object | Dados do webhook.                                                                                | -            |
| **webhook_type** *                 | object | Tipo do webhook enviado. | -            |

### Objeto data
| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **status** *                  | object | Status da parcela                                                                                                                                     | -            | 
| **installment** * | object | Dados da parcela                                                                                | -            |
| **is_finished** *                 | booleano | Campo booleano indicando se existem novos status para a parcela ou se já esta finalizada. | -            |

### Objeto installment
| Campo                           | Tipo   | Descrição                                                                                                                                                                                                        | Máx. Caract. | 
|---------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| **events** *                  | object | Status da parcela                                                                                                                                     | -            | 
| **paid_at** * | object | Dados da parcela                                                                                | -            |
| **due_date** *                 | booleano | Campo booleano indicando se existem novos status para a parcela ou se já esta finalizada. | -            |
| **workdays** *                 | booleano | Campo booleano indicando se existem novos status para a parcela ou se já esta finalizada. | -            |
| **created_at** *                 | booleano | Campo booleano indicando se existem novos status para a parcela ou se já esta finalizada. | -            |
| **tax_amount** *                 | booleano | Campo booleano indicando se existem novos status para a parcela ou se já esta finalizada. | -            |
| **updated_at** *                 | booleano | Campo booleano indicando se existem novos status para a parcela ou se já esta finalizada. | -            |