Emissão de boletos
Emissão de boletos
Emite um boleto em nome da conta. É o caminho inverso de pagar um boleto: aqui a conta é o beneficiário e um terceiro paga.
A feature bank_slip_issuance nasce desligada para todos os tenants, inclusive os criados depois do lançamento. Enquanto estiver off, POST e GET em /v1/accounts/{accountId}/bank-slips respondem 403 feature_disabled. A CorpX liga pelo painel administrativo. Desligar depois não cancela boleto já emitido.
Escopo da credencial: bank_slip.manage. É entrada de dinheiro, não cashout.
Primeira emissão por conta
O titular ainda não é beneficiário no banco. O primeiro POST cadastra o beneficiário e responde na hora:
HTTP 202, header Retry-After: 300. Nada foi emitido e não existe bankSlipId. Repita o mesmo corpo em alguns minutos. Se o cadastro ainda estiver pendente, a resposta é a mesma, sem um novo cadastro.
ineligible ou underReview responde 422 bank_slip_beneficiary_ineligible. Falha síncrona no cadastro responde 502 bank_slip_beneficiary_registration_failed e nada é emitido.
Emitir
identifier é a chave de idempotência da conta (se omitido, vale o header Idempotency-Key). dueDate é YYYY-MM-DD. amount.nominal é maior que zero. payer.personType é person ou company.
Resposta 202 com bankSlipId, barcode, digitableLine, ourNumber e registrationCondition: pendingRegistration. O registro na base centralizada chega depois, nos eventos bank_slip.registered ou bank_slip.registration_failed.
Repetir o mesmo identifier devolve 200 com o boleto ao vivo, sem emitir outro.
Consultar
Tudo é lido ao vivo no liquidante. Não há espelho local do boleto.
GET /v1/accounts/{accountId}/bank-slips— filtrosbarcode,payer,dueDate,status,page,pageSize(até 200).GET /v1/accounts/{accountId}/bank-slips/{bankSlipId}—bankSlipIdé o id devolvido na emissão.GET /v1/accounts/{accountId}/bank-slips/beneficiary— 404bank_slip_beneficiary_not_foundquando a conta nunca foi cadastrada.
Baixa
Não há como pedir a baixa de um boleto em aberto. DELETE /v1/accounts/{accountId}/bank-slips/{bankSlipId} responde 501 bank_slip_write_off_unavailable. Quando a validade precisar ser previsível, envie expirationPolicy.paymentLimitDate na emissão.
Eventos
bank_slip.registered, bank_slip.registration_failed, bank_slip.settled, bank_slip.overdue, bank_slip.written_off, bank_slip.cancelled, bank_slip.expired. A liquidação também aparece no extrato como BOLETO. bank_slip.failed está no catálogo e não é enviado nesta versão.