Pular para o conteúdo principal

Criar lote de instruções

Permite o envio, em uma única requisição, de múltiplas instruções de mesmo tipo (baixa, abatimento, prorrogação, protesto etc.) sobre boletos distintos. A QI Tech valida o lote inteiro e, ou todos os itens são aceitos, ou nenhum é processado.

  • Se qualquer item falhar na validação semântica, nenhum item do lote é processado. A resposta de erro detalha, por item rejeitado, o motivo da rejeição.
  • Se todos os itens passarem, as ocorrências são criadas e processadas individualmente, de forma assíncrona. O solicitante é notificado via webhook à medida que cada ocorrência muda de status.
Idempotência

A request_control_key do lote garante idempotência no nível do lote: reenviar a mesma chave retorna o lote já criado, sem duplicação.

Cada item do lote também possui sua própria request_control_key e é idempotente individualmente. Reenviar um item com request_control_key já existente faz o lote inteiro ser rejeitado.

Atenção!

Esta operação está disponível apenas para carteiras registradas na instituição registradora QI SCD.

Request

ENDPOINT
/v2/bank_slip/account/ACCOUNT_KEY/requester_profile/REQUESTER_PROFILE_KEY/occurrence_batches
MÉTODO
POST

Path parameters

CampoTipoDescriçãoCaracteres
account_keyuuidv4Chave única de identificação da conta, no formato uuid v436
requester_profile_keyuuidv4Chave única de identificação da carteira, no formato uuid v436
Request Body
{
"request_control_key": "614a451d-3b82-460e-bcc0-2caf3dde711f",
"occurrence_type": "extension",
"items": [
{
"bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5",
"request_control_key": "c86d8902-a5ae-4d1f-8872-e6fea1268aab",
"new_due_date": "2026-08-15"
},
{
"bank_slip_key": "5e3a1b2c-7d9f-4e88-9012-3a4b5c6d7e8f",
"request_control_key": "b3a428fd-58ee-4d6f-8872-633874ebf5e2",
"new_due_date": "2026-08-20"
}
]
}

Request Body Params

CampoTipoDescriçãoCaracteres
request_control_key *stringChave única do lote, definida pelo cliente. Garante idempotência do lote1–64
occurrence_type *stringTipo de instrução aplicada a todos os itens. Veja Enumeradores occurrence_type-
items *Array de Objeto itemLista de instruções (mínimo 1, máximo 10000)-

Enumeradores occurrence_type

EnumeradorDescrição
extensionProrrogação de vencimento — requer new_due_date no item
rebateConcessão de abatimento — requer rebate_amount no item
cancel_rebateCancelamento de abatimento
write_offBaixa do boleto
protest_requestPedido de protesto
protest_cancel_requestDesistência (sustação) do pedido de protesto
protest_remove_requestRemoção (cancelamento) do protesto

Objeto item

CampoTipoDescriçãoCaracteres
bank_slip_key *uuidv4Chave do boleto sobre o qual a instrução será aplicada36
request_control_key *stringChave única do item, definida pelo cliente. Garante idempotência por item1–64
new_due_datestringNova data de vencimento (YYYY-MM-DD). Obrigatório para occurrence_type=extension10
rebate_amountfloatValor de abatimento. Obrigatório para occurrence_type=rebate-

Response

STATUS
201
Response Body
{
"batch_key": "f2d3e1b9-4a5c-46e7-8f12-9a8b7c6d5e4f",
"occurrence_quantity": 2,
"accepted_quantity": 2,
"semantic_errors": []
}

Response Body Params

CampoTipoDescriçãoCaracteres
batch_key *uuidv4Chave única do lote. Utilize para consultar o detalhe do lote36
occurrence_quantity *integerQuantidade total de itens enviados no lote-
accepted_quantity *integerQuantidade de itens aceitos no lote-
semantic_errors *arrayLista vazia em caso de sucesso. Em caso de rejeição semântica, ver Error Response-

Error Response

STATUS
4xx
Response Body: Error
{
"title": "titulo",
"description": "description in English",
"translation": "descrição em portugues",
"code": "codigo",
"extra_fields": {}
}

Em caso de rejeição semântica (BLP000112), o campo reasons da resposta detalha cada item rejeitado:

Response Body: Rejeição semântica
{
"title": "Unprocessable Entity",
"description": "Rejected Remittance",
"translation": "Remessa Rejeitada",
"code": "BLP000112",
"reasons": [
{
"occurrence_sequence": "0",
"bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5",
"request_control_key": "c86d8902-a5ae-4d1f-8872-e6fea1268aab",
"errors": [
{
"reason_code": "15",
"translation_pt_br": "Boleto não encontrado",
"translation_en_us": "Bank slip not found",
"created_at": "2026-06-09T17:08:33"
}
]
}
]
}

Campos do objeto reasons[]

CampoTipoDescrição
occurrence_sequence *stringPosição do item no array items da requisição (começando em "0")
bank_slip_key *uuidv4Chave do boleto do item rejeitado
request_control_key *stringChave de controle informada pelo cliente para o item
errors *arrayLista de motivos da rejeição (um item pode ter múltiplos motivos)
errors[].reason_code *stringCódigo do motivo de rejeição (padrão Febraban)
errors[].translation_pt_brstringDescrição em português do motivo
errors[].translation_en_usstringDescrição em inglês do motivo
errors[].created_atstringData/hora de cadastro do motivo no catálogo

Códigos de erro

Código HTTP
status
Código QI
code
Título
title
Descrição (eng)
description
Descrição (pt-br)
translation
400QIT000001Bad RequestSchema ErrorSchema Inválido
400BKS000141Bad RequestBank slip registration is restricted to QI SCD.Registro de boleto permitido apenas para QI SCD.
404BKS000013Not FoundRequester profile not foundCarteira não encontrada
409BKS000014ConflictRequest control key already sent or duplicated sent: <request_control_key>Chave de controle da requisição já utilizada ou enviada duplicada: <request_control_key>
422BLP000112Unprocessable EntityRejected RemittanceRemessa Rejeitada