Emissão de boleto registrado

Gere um boleto registrado através desta API

154
Importante para Integração Direta Para você conseguir efetuar essa integração é obrigatória a leitura sobre "Utilização das APIs" e recomendada a leitura sobre "Instruções Iniciais" e "Client Credentials e Client ID"

O que é um boleto registrado?

É um boleto que permite que a Cora saiba para quem a sua empresa está emitindo esta cobrança e com isso podemos acompanhar todo o ciclo de vida deste boleto.

Quem pode usar esta API?

Clientes Cora que estão cadastrados em Integração Direta ou Parceria Cora

Quais são requisitos para a utilização desta API?

Integração Direta: Ter finalizado a etapa de autorização

Parceria Cora: Já ter feito a etapa de autorização e autenticação

Escopo: para a modalidade Parceria Cora, é necessário ter ativado o escopo correto ao solicitar autorização e gerar token de acesso para que sua aplicação possa acessar e interagir com as informações da conta de forma segura e autorizada. É possível consultar mais detalhes sobre o escopo e autorização no tópico Redirecionamento.

Nome do escopoDescrição
invoiceAPI de boleto

O que é possível configurar?

  • Juros: para cobrar após a data de vencimento
  • Multa: para cobrar após a data de vencimento
  • Desconto: aplicado até o dia anterior a data de vencimento
  • Notificação de cobrança: para lembrar o cliente sobre o pagamento

Bora pro código?

383

Parâmetros da requisição

ParâmetroTipoDescrição
code opcionalStringCódigo definido por você, pode ser um id do recurso no seu sistema. Nós iremos retornar esse código sempre que você consultar uma fatura.
customer\ obrigatórioCustomerObjeto Customer
services\ obrigatórioLista de ServicesLista de Objetos Services. Utilize este campo para descrever o que está sendo cobrado. Atenção: O nó services agrupa itens dentro de uma única invoice. Para emitir múltiplos boletos, realize chamadas separadas para o endpoint.
payment_terms\ obrigatórioPaymentTermsObjeto PaymentTerms
notification\ opcionalNotificationObjeto Notification

Parâmetros da resposta

ParâmetroTipoDescrição
id obrigatórioStringIdentificador da fatura na Cora. Esse id poderá ser usado para consultar os detalhes da fatura.
status\ obrigatórioStringIndica qual é o estado do boleto. Os status possíveis estão na Tabela de Estados dos Boletos.
created_at\ obrigatórioStringData de criação da fatura.
total_amount\ obrigatórioIntValor total em centavos da fatura. Esse valor é a soma dos valores informados no parâmetro Services.
total_paid\ obrigatórioIntValor total pago (em centavos), caso o boleto ainda não tenha sido pago, ele será zerado.
occurrence_date\ opcionalStringData que o cliente efetuou o pagamento do boleto junto ao banco.
code\ obrigatórioStringCódigo definido por você, pode ser um id do recurso no seu sistema. Nós iremos retornar esse código sempre que você consultar uma fatura.
customer\ obrigatórioCustomerObjeto Customer
services\ obrigatórioLista de ServicesLista de Objetos Services
payment_terms\ obrigatórioPaymentTermsObjeto PaymentTerms
payment_options\ obrigatórioPaymentOptionsObjeto PaymentOptions
payments\ obrigatórioPaymentsLista de Objetos Payments. Caso o pagamento ainda não tenha sido feito o array será vazio.
pix\ obrigatórioPixObjeto Pix

Dicas de implementação

188

Premissas

Os parâmetros que tratam de valores são tipos primitivos inteiros com os centavos sendo representados pelos dois dígitos iniciais (unidade e dezena). Como exemplo, temos o valor de R$ 10,01 que é representado por 1001 dentro do valor total_amount. Veja o json abaixo:
{  
    "total_amount": 1001
}

Problemas conhecidos

  • Quando enviado um e-mail ou documentos inválidos a Cora está retornando erros genéricos ao invés de retornar erro 400 (Bad Request)

Erros Comuns

Código de erro

Descrição

401 (Unauthorized)

O token de acesso está inválido ou expirado. Erro comum no momento de trocas de ambientes (Stage/Production).

400 (Bad Request)

Requisição mal formatada. Alguns exemplos comuns:

  • Idempotency-Key que não está no formato correto (uuid)

  • Chave payment_term escrito no singular ao invés de payment_terms que é o correto.

  • Valor do boleto menor do que o mínimo de R$5 (amount: 500)

  • Campo valor (amount) mal formatado. Ex: 20,00 ao invés de 2000.
- Data de vencimento do boleto anterior ao dia atual de emissão.

415 (Unsupported Media Type)

Falta do Content-Type application/json no header da requisição.

Tipos de Objetos

Objeto Customer

ParâmetroTipoDescrição
name obrigatórioStringNome do seu cliente (máximo 60 caracteres)
email\ opcionalStringE-mail do seu cliente (máximo 60 caracteres)
document\ obrigatórioDocumentObjeto Document
address\ opcionalAddressObjeto Address

Objeto Document

ParâmetroTipoDescrição
identity obrigatórioStringNúmero do documento do seu cliente (apenas números, sem traços e pontos). Deve ser enviado como uma string.
type\ obrigatórioStringTipo de documento, os valores possíveis são "CPF" e "CNPJ". Caso não informado, iremos inferir pela quantidade de caracteres informado no parâmetro identity.

Objeto Address

ParâmetroTipoDescrição
street obrigatórioStringNome da rua do seu cliente.
number\ obrigatórioStringNúmero da rua do seu cliente.
district\ obrigatórioStringBairro do seu cliente.
city\ obrigatórioStringCidade do seu cliente.
state\ obrigatórioStringEstado do seu cliente no formato AA. Exemplos: SP, AC, GO, RJ.
complement\ obrigatórioStringComplemento do endereço do seu cliente.
country\ opcionalStringPaís do seu cliente.
zip_code\ obrigatórioStringCEP do seu cliente. Formatos possíveis: 00111222 e 00111-222. O tamanho máximo de caracters é de 8.

Objeto Services

ParâmetroTipoDescrição
name obrigatórioStringNome do serviço prestado.
description\ obrigatórioStringDescrição do serviço prestado. Máximo de 100 caracteres.
amount\ obrigatórioIntValor do serviço prestado.

Objeto PaymentTerms

ParâmetroTipoDescrição
due_date obrigatórioStringData de vencimento do boleto. Deve ser igual ou posterior à data de emissão e seguir o formato AAAA-MM-DD.
fine\ opcionalFineObjeto Fine
interest\ opcionalInterestObjeto Interest
discount\ opcionalDiscountObjeto Discount

Objeto Fine

Parâmetro

Tipo

Descrição

date opcional

String

Data a partir da qual será aplicada multa mensal. Essa data é facultativa, caso não informada, o padrão é data de vencimento +1.

amount\ opcional

Int

Valor em centavos da multa a ser cobrada.

Atenção
O parâmetro amount tem precedência sobre o parâmetro rate. Portanto, se for informado os dois parâmetros no objeto fine, apenas o atributo amount será considerado.


rate\ opcional

Double

Valor percentual da multa a ser cobrada.

Atenção
Esse parâmetro tem menor prioridade em relação ao parâmetro amount. Portanto, só será considerado caso o valor amount seja nulo. Valores possíveis: de 0 a 100 (com duas casas decimais).


Objeto Interest

ParâmetroTipoDescrição
rate obrigatórioDoubleTaxa de juros a ser cobrada. Valores possíveis: de 0 a 100 (com duas casas decimais).

Objeto Discount

ParâmetroTipoDescrição
type obrigatórioStringTipo de desconto aplicado. Valor fixo FIXED ou percentual PERCENT .
value\ obrigatórioDoubleValor do desconto a ser aplicado. Apesar do campo ser Double, caso o tipo seja FIXED o valor decimal será truncado, mantendo o padrão de envio de valores fixos com centavos. Ex: R$ 20,50 é representado como 2050.

Objeto DiscountResponse

ParâmetroTipoDescrição
percent opcionalDoubleValor definido no Objeto Discount como tipo PERCENT.
amount\ opcionalIntValor definido no Objeto Discount como tipo FIXED.

Objeto Notification

ParâmetroTipoDescrição
name obrigatórioStringNome do contato para quem será enviada a notificação de cobrança (máximo 60 caracteres).
channels\ obrigatórioLista de NotificationChannelObjeto NotificationChannel

Objeto NotificationChannel

Parâmetro

Tipo

Descrição

contact obrigatório

String

Contato para qual será enviada a notificação de cobrança (máximo 60 caracteres). Deve ser um endereço de e-mail válido para notificações do tipo EMAIL ([email protected]), e um número de telefone para notificações do tipo SMS (+5511999999999) - o código de pais +55 é obrigatório no envio da requisição

channel\ obrigatório

String

String que representa o canal de comunicação escolhido. Hoje o parâmetro aceita os canais "EMAIL" e "SMS".

Atenção
Notificações de cobrança via SMS fazem parte de uma funcionalidade do plano Cora Pro.


rules\ obrigatório

Lista de strings

Strings que representam as regras das notificações. As possíveis Strings estão detalhadas no Enum de Tipos de Notificação .

Objeto PaymentOptions

ParâmetroTipoDescrição
bank_slip obrigatórioBankSlipObjeto BankSlip

Objeto BankSlip

ParâmetroTipoDescrição
barcode obrigatórioStringCódigo de barras do boleto.
digitable\ obrigatórioStringLinha digitável do boleto. Número que deverá ser utilizado para pagamento.
registered\ obrigatórioStringInforma se o boleto foi registrado ou não.
url\ obrigatórioStringURL do PDF do boleto (os boletos são disponibilizados apenas em PDF, não há versão HTML).
our_number\ obrigatórioStringNosso número. Número do convênio concatenado com a sequência do documento.

Objeto Payments

Parâmetro

Tipo

Descrição

id obrigatório

String

ID do pagamento atrelado Código de barras do boleto.

status\ obrigatório

String

Status do pagamento.

created_at\ obrigatório

String

Status do pagamento.

finalized_at\ obrigatório

String

Data do pagamento.

total_paid\ obrigatório

Int

Valor total pago em centavos.

method\ obrigatório

String

Método de pagamento.
"BANK_SLIP" indica pagamento realizado por código de barras. "PIX" indica pagamento via Pix.

interest\ obrigatório

Int

Valor total em centavos dos juros pagos.

fine\ obrigatório

Int

Valor total em centavos da multa paga.

Objeto PixResponse

ParâmetroTipoDescrição
emv obrigatórioStringQuando um QR code é gerado esse campo virá preenchido. Código do Pix Copia e Cola, o mesmo que é utilizado para gerar o QR code.

Emitir um boleto com QR-code Pix

Objeto Payment_forms

ParâmetroTipoDescrição
payment_forms obrigatórioStringPara criar um boleto com opção de pagamento por QR code basta inserir as duas opções de "BANK_SLIP" e "PIX".

Cancelamento

Ao realizar o pagamento pelo QR Code Pix, o boleto com código de barras é cancelado automaticamente em nossos sistemas e na Câmara Interbancária de Pagamentos, evitando assim o pagamento em duplicidade.

Importante

Para gerar um QR Code Pix no boleto é preciso que o cliente tenha cadastrada ao menos uma chave Pix.

Veja aqui como cadastrar uma chave Pix. Caso o cliente não tenha uma chave Pix cadastrada o boleto será gerado sem o QR code, apenas com o código de barras padrão.


Tipos de Enumeradores

Enum de Estados dos Boletos

ParâmetroDescrição
CANCELLEDBoletos cancelados
DRAFTBoletos em rascunho, um estado intermediário entre criação e registro
IN_PAYMENTBoletos em processo de pagamento
LATEBoletos com pagamento em atraso, ou seja, após a data de vencimento
OPENBoletos registrados, mas ainda não pagos
PAIDBoletos que foram pagos com sucesso

Enum de Tipos de Notificação

ParâmetroDescrição
NOTIFY_FIFTEEN_DAYS_BEFORE_DUE_DATENotifica quinze dias antes da data de vencimento.
NOTIFY_TEN_DAYS_BEFORE_DUE_DATENotifica dez dias antes da data de vencimento.
NOTIFY_SEVEN_DAYS_BEFORE_DUE_DATENotifica sete dias antes da data de vencimento.
NOTIFY_FIVE_DAYS_BEFORE_DUE_DATENotifica cinco dias antes da data de vencimento.
NOTIFY_TWO_DAYS_BEFORE_DUE_DATENotifica dois dias antes da data de vencimento.
NOTIFY_ON_DUE_DATENotifica no dia do vencimento.
NOTIFY_TWO_DAYS_AFTER_DUE_DATENotifica dois dias depois da data de vencimento.
NOTIFY_FIVE_DAYS_AFTER_DUE_DATENotifica cinco dias depois da data de vencimento.
NOTIFY_SEVEN_DAYS_AFTER_DUE_DATENotifica sete dias depois da data de vencimento.
NOTIFY_TEN_DAYS_AFTER_DUE_DATENotifica dez dias depois da data de vencimento.
NOTIFY_FIFTEEN_DAYS_AFTER_DUE_DATENotifica quinze dias depois da data de vencimento.
NOTIFY_WHEN_PAIDNotifica quando o boleto é pago.

Body Params
string
Defaults to meu_id
customer
object
required
services
array of objects
required

Objeto para descrição do serviço prestado ao pagador do boleto

services*
payment_terms
object
required
notification
object

Objeto que representa a configuração das notificações de cobrança.

payment_forms
array of strings
Defaults to BANK_SLIP,PIX

Para criar um boleto com opção de pagamento por QR code é preciso inserir as opções de "BANK_SLIP" e "PIX".

payment_forms
Headers
string
required
Defaults to dd61d5b9-c9fb-4116-b5e0-1f8436993ac4

UUID aleatório gerado por você. Nós utilizamos esse header para evitar duplicidade de registros, ou seja, caso você não tenha recebido a resposta de alguma requisição e mandar o mesmo UUID, nós não duplicaremos o registro.

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
OAuth2
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json