Pagando um boleto
Este endpoint permite iniciar o pagamento de um boleto.
Obs: O boleto só poderá ser pago das 08:00 até às 20:00.
📍 Endpoint
POST https://api.etherglobalassets.com.br/boletos/pay
🧾 Cabeçalhos obrigatórios (Headers)
|
Cabeçalho |
Valor |
Descrição |
|---|---|---|
|
Authorization |
Bearer <token> |
Token JWT de autenticação |
|
Content-Type |
application/json |
Formato do corpo da requisição |
🧰 Corpo da Requisição (JSON)
{
"barcode": "85890000001097802702003248545820001312019037",
"amount": 10978
}
OU
{
"typeableLine": "85890000000109780270200324854582000131201903700",
"amount": 10978
}
Explicação dos campos:
|
Campo |
Tipo |
Obrigatório |
Descrição |
|---|---|---|---|
|
barcode |
string |
⚠️ |
Código de barras do boleto |
|
typeableLine |
string |
⚠️ |
Linha digitável do boleto |
|
amount |
number |
❌ |
Valor a ser pago em centavos (opcional se boleto não permitir valor divergente) |
⚠️ Nota: Você deve fornecer apenas um dos campos: barcode OU typeableLine. O campo amount é opcional e só deve ser usado quando o boleto permite pagamento com valor divergente.
Formatos Aceitos:
|
Campo |
Formato |
Exemplo |
|---|---|---|
|
barcode |
Código de barras |
|
|
typeableLine |
Linha digitável |
|
|
amount |
Centavos |
|
📌 Exemplo com curl
curl https://api.etherglobalassets.com.br/boletos/pay \
--request POST \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"barcode": "85890000001097802702003248545820001312019037",
"amount": 10978
}'
✅ Dica: Substitua <token> pelo seu JWT de autenticação válido e use o código de barras ou linha digitável do boleto. O valor em amount deve ser em centavos.
✅ Resposta esperada (HTTP 202 - Accepted)
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"userId": "f9e8d7c6-b5a4-3210-9876-543210fedcba",
"barcode": null,
"typeableLine": "85890000000109780270200324854582000131201903700",
"assignor": "BANCO EXEMPLO S.A.",
"dueDate": "2024-12-31",
"type": "COMPENSATIONFORM",
"baseAmount": 10000,
"feeAmount": 250,
"internalFees": 150,
"totalFeeAmount": 400,
"providerNetAmount": 9750,
"netAmount": 9600,
"status": "PENDING",
"provider": "FOURALL",
"providerReferenceId": "123456",
"senderInfo": {
"name": "ETHER GLOBAL ASSETS LTDA",
"document": {
"type": "CNPJ",
"number": "47114408000158"
}
},
"receiverInfo": {
"name": "BANCO EXEMPLO S.A.",
"document": {
"type": "CNPJ",
"number": "00416968000101"
}
},
"providerData": {
"id": "123456",
"bank": {
"code": "001",
"name": null
},
"type": "COMPENSATIONFORM",
"payer": {
"name": "ETHER GLOBAL ASSETS LTDA",
"document": {
"type": "CNPJ",
"number": "47114408000158"
}
},
"status": "CREATED",
"barcode": null,
"dueDate": "2024-12-31",
"assignor": "BANCO EXEMPLO S.A.",
"feeAmount": 250,
"paidAmount": null,
"beneficiary": {
"name": "BANCO EXEMPLO S.A.",
"document": {
"type": "CNPJ",
"number": "00416968000101"
}
},
"nextWorkday": null,
"payerRecord": {
"name": "JOÃO DA SILVA SANTOS",
"document": {
"type": "CPF",
"number": "12345678901"
}
},
"typeableLine": "85890000000109780270200324854582000131201903700",
"maximumAmount": 10000,
"minimumAmount": 10000,
"nominalAmount": 10000,
"rejectionDate": null,
"scheduledDate": null,
"updatedAmount": 10000,
"paymentDateTime": null,
"confirmationDate": null,
"creationDateTime": "2024-12-15T10:30:00.000Z",
"rejectionReasonCode": null,
"allowDifferentAmount": true,
"cancellationDateTime": null,
"regulatoryInformation": "Este estabelecimento é um Correspondente prestador de serviços bancários nos termos da Resolução 4.935/2021, do Conselho Monetário Nacional, e está autorizado a realizar os serviços de pagamentos de boletos, faturas de concessionárias e tributos municipais e estaduais com código de barras."
},
"feeBatchId": null,
"feeDistributionCompletedAt": null,
"feeDistributionMetadata": null,
"createdAt": "2024-12-15T10:30:00.000Z",
"updatedAt": "2024-12-15T10:30:00.000Z"
}
Explicação da resposta:
Campos principais:
|
Campo |
Tipo |
Descrição |
Exemplo |
|---|---|---|---|
|
id |
string |
ID único do boleto no sistema |
“a1b2c3d4-e5f6-7890-abcd-ef1234567890” |
|
userId |
string |
ID do usuário |
“f9e8d7c6-b5a4-3210-9876-543210fedcba” |
|
barcode |
string/null |
Código de barras do boleto |
null |
|
typeableLine |
string |
Linha digitável do boleto |
“85890000000109780270200324854582000131201903700” |
|
assignor |
string |
Cedente do boleto |
“BANCO EXEMPLO S.A.” |
|
dueDate |
string |
Data de vencimento |
“2024-12-31” |
|
type |
string |
Tipo do boleto |
“COMPENSATIONFORM” |
|
baseAmount |
number |
Valor base do boleto em centavos |
10000 |
|
feeAmount |
number |
Taxa externa do provedor |
250 |
|
internalFees |
number |
Taxas internas do sistema |
150 |
|
totalFeeAmount |
number |
Total de todas as taxas |
400 |
|
providerNetAmount |
number |
Valor líquido do provedor |
9750 |
|
netAmount |
number |
Valor final a ser pago |
9600 |
|
status |
string |
Status do pagamento |
“PENDING” |
|
provider |
string |
Provedor do serviço |
“FOURALL” |
|
providerReferenceId |
string |
ID da operação no provedor |
“123456” |
|
createdAt |
string |
Data de criação |
“2024-12-15T10:30:00.000Z” |
|
updatedAt |
string |
Data de atualização |
“2024-12-15T10:30:00.000Z” |
Estrutura senderInfo:
|
Campo |
Tipo |
Descrição |
Exemplo |
|---|---|---|---|
|
name |
string |
Nome do remetente |
“ETHER GLOBAL ASSETS LTDA” |
|
document.type |
string |
Tipo do documento |
“CNPJ” |
|
document.number |
string |
Número do documento |
“47114408000158” |
Estrutura receiverInfo:
|
Campo |
Tipo |
Descrição |
Exemplo |
|---|---|---|---|
|
name |
string |
Nome do destinatário |
“BANCO EXEMPLO S.A.” |
|
document.type |
string |
Tipo do documento |
“CNPJ” |
|
document.number |
string |
Número do documento |
“00416968000101” |
Estrutura providerData:
|
Campo |
Tipo |
Descrição |
Exemplo |
|---|---|---|---|
|
id |
string |
ID no provedor |
“123456” |
|
bank.code |
string |
Código do banco |
“001” |
|
string/null |
Nome do banco |
null |
|
|
type |
string |
Tipo do boleto |
“COMPENSATIONFORM” |
|
string |
Nome do pagador |
“ETHER GLOBAL ASSETS LTDA” |
|
|
payer.document.type |
string |
Tipo do documento do pagador |
“CNPJ” |
|
payer.document.number |
string |
Número do documento do pagador |
“47114408000158” |
|
status |
string |
Status no provedor |
“CREATED” |
|
barcode |
string/null |
Código de barras |
null |
|
dueDate |
string |
Data de vencimento |
“2024-12-31” |
|
assignor |
string |
Cedente |
“BANCO EXEMPLO S.A.” |
|
feeAmount |
number |
Taxa do provedor |
250 |
|
paidAmount |
number/null |
Valor pago |
null |
|
string |
Nome do beneficiário |
“BANCO EXEMPLO S.A.” |
|
|
beneficiary.document.type |
string |
Tipo do documento do beneficiário |
“CNPJ” |
|
beneficiary.document.number |
string |
Número do documento do beneficiário |
“00416968000101” |
|
nextWorkday |
string/null |
Próximo dia útil |
null |
|
string |
Nome no registro do pagador |
“JOÃO DA SILVA SANTOS” |
|
|
payerRecord.document.type |
string |
Tipo do documento no registro |
“CPF” |
|
payerRecord.document.number |
string |
Número do documento no registro |
“12345678901” |
|
typeableLine |
string |
Linha digitável |
“85890000000109780270200324854582000131201903700” |
|
maximumAmount |
number |
Valor máximo permitido |
10000 |
|
minimumAmount |
number |
Valor mínimo permitido |
10000 |
|
nominalAmount |
number |
Valor nominal |
10000 |
|
rejectionDate |
string/null |
Data de rejeição |
null |
|
scheduledDate |
string/null |
Data agendada |
null |
|
updatedAmount |
number |
Valor atualizado |
10000 |
|
paymentDateTime |
string/null |
Data/hora do pagamento |
null |
|
confirmationDate |
string/null |
Data de confirmação |
null |
|
creationDateTime |
string |
Data/hora de criação |
“2024-12-15T10:30:00.000Z” |
|
rejectionReasonCode |
string/null |
Código do motivo da rejeição |
null |
|
allowDifferentAmount |
boolean |
Permite valor divergente |
true |
|
cancellationDateTime |
string/null |
Data/hora de cancelamento |
null |
|
regulatoryInformation |
string |
Informações regulatórias |
“Este estabelecimento é um Correspondente…” |
Campos de distribuição de taxas:
|
Campo |
Tipo |
Descrição |
Exemplo |
|---|---|---|---|
|
feeBatchId |
string/null |
ID do lote de taxas |
null |
|
feeDistributionCompletedAt |
string/null |
Data de conclusão da distribuição |
null |
|
feeDistributionMetadata |
object/null |
Metadados da distribuição |
null |
Status possíveis:
|
Status |
Descrição |
|---|---|
|
PENDING |
Pagamento iniciado, aguardando processamento |
|
CONFIRMED |
Pagamento confirmado |
|
FAILED |
Pagamento falhou |
|
CANCELED |
Pagamento cancelado |
Tipos de boleto:
|
Tipo |
Descrição |
|---|---|
|
COMPENSATIONFORM |
Boleto de compensação bancária (exemplo do schema) |
Códigos de banco (exemplos do schema):
|
Código |
Banco |
ISPB |
|---|---|---|
|
021 |
Nubank |
0001190 |
|
023 |
Banco do Brasil |
60744444 |
⚠️ Possíveis erros
Erros HTTP:
|
Código |
Erro |
Causa comum |
Solução |
|---|---|---|---|
|
400 |
Bad Request |
Requisição de pagamento inválida ou saldo insuficiente |
Verifique os dados enviados e o saldo da conta |
|
401 |
Unauthorized |
Token inválido ou ausente |
Faça uma nova autenticação |
|
404 |
Not Found |
Boleto não encontrado - execute o endpoint de pré-visualização primeiro |
Execute |
|
500 |
Internal Server Error |
Erro interno do serviço |
Tente novamente ou entre em contato com suporte |
Erros específicos de boleto:
|
Erro |
Descrição |
Solução |
|---|---|---|
|
Boleto vencido |
Boleto está fora da data de vencimento |
Verifique a data de vencimento |
|
Boleto já pago |
Boleto já foi liquidado |
Consulte o status do boleto |
|
Valor divergente não permitido |
Boleto não aceita pagamento com valor diferente |
Use o valor exato do boleto |
|
Saldo insuficiente |
Conta não possui saldo suficiente |
Verifique o saldo disponível |
|
Horário não permitido |
Pagamento fora do horário (08:00-20:00) |
Tente novamente no horário permitido |
|
Boleto bloqueado |
Boleto está bloqueado para pagamento |
Entre em contato com o banco emissor |
🎯 Como usar o pagamento
Fluxo completo de pagamento:
-
Pré-visualizar: Execute
/boletos/previewpara obter detalhes do boleto -
Confirmar valores: Verifique taxas e valor final antes do pagamento
-
Executar pagamento: Use
/boletos/paycom os dados confirmados -
Rastrear operação: Use o
providerReferenceIdpara acompanhar o status -
Consultar status: Use
/boletos/{identifier}para verificar o progresso -
Notificar usuário: Informe sobre o status do pagamento
Campos importantes para monitoramento:
|
Campo |
Uso |
Descrição |
|---|---|---|
|
|
Rastreamento |
ID da operação no provedor para consultas externas |
|
|
Status atual |
Estado atual do pagamento (PENDING, PROCESSING, etc.) |
|
|
Consulta |
ID do boleto para usar no endpoint de consulta |
|
|
Validação |
Valor final que será debitado da conta |
|
|
Transparência |
Total de taxas cobradas na operação |
|
|
Auditoria |
Data/hora de criação do pagamento |
|
|
Auditoria |
Data/hora da última atualização |
Integração com outros endpoints:
-
Consulta: Use
GET /boletos/{id}com oidretornado -
Histórico: Consulte transações relacionadas usando o
userId -
Auditoria: Use
providerDatapara informações detalhadas do provedor
💰 Cálculo de valores
Estrutura de valores:
|
Campo |
Descrição |
Exemplo |
|---|---|---|
|
|
Valor original do boleto |
10000 (R$ 100,00) |
|
|
Taxa externa do provedor |
250 (R$ 2,50) |
|
|
Taxas internas do sistema |
150 (R$ 1,50) |
|
|
Soma de todas as taxas |
400 (R$ 4,00) |
|
|
Valor líquido do provedor |
9750 (R$ 97,50) |
|
|
Valor final debitado da conta |
9600 (R$ 96,00) |
Fórmula de cálculo:
Valor Final = Valor Base - Taxas Totais
netAmount = baseAmount - totalFeeAmount
Regras importantes:
-
Formato: Todos os valores são em centavos (ex: R$ 100,00 = 10000 centavos)
-
Valor padrão: Use o
baseAmountdo boleto original -
Valor divergente: Só permitido quando
allowDifferentAmount: true -
Saldo: Verifique se há saldo suficiente antes do pagamento
-
Taxas: Sempre transparentes e calculadas automaticamente
Exemplo prático:
{
"baseAmount": 10000, // R$ 100,00 (valor do boleto)
"feeAmount": 250, // R$ 2,50 (taxa do provedor)
"internalFees": 150, // R$ 1,50 (taxa interna)
"totalFeeAmount": 400, // R$ 4,00 (total de taxas)
"netAmount": 9600 // R$ 96,00 (valor final debitado)
}
🛡️ Limitações e restrições
Horário de funcionamento:
|
Período |
Status |
|---|---|
|
08:00 - 20:00 (dias úteis) |
✅ Pagamentos permitidos |
Limites de valor:
|
Tipo |
Limite |
Descrição |
|---|---|---|
|
Valor mínimo |
R$ 0,01 |
Valor mínimo para pagamento |
|
Valor máximo |
R$ 999.999,99 |
Valor máximo por transação |
|
Saldo |
Disponível |
Deve haver saldo suficiente na conta |
Restrições de boleto:
|
Restrição |
Descrição |
|---|---|
|
Boleto vencido |
Não é possível pagar boletos vencidos |
|
Boleto já pago |
Não é possível pagar boletos já liquidados |
|
Boleto bloqueado |
Boletos bloqueados não podem ser pagos |
|
Valor divergente |
Só permitido quando |
Boas práticas:
✅ FAÇA:
-
Execute a pré-visualização antes do pagamento
-
Use o
providerReferenceIdpara rastreamento -
Verifique o horário de funcionamento (08:00-20:00)
-
Confirme se há saldo suficiente
-
Monitore o campo
statuspara acompanhar o progresso -
Valide todos os campos antes de processar
-
Mantenha logs das operações para auditoria
❌ NÃO FAÇA:
-
Tentar pagar fora do horário permitido
-
Ignorar a pré-visualização
-
Usar valores incorretos
-
Tentar pagar sem saldo suficiente
-
Processar pagamentos sem validação
-
Ignorar mensagens de erro
-
Tentar pagar boletos inválidos
🆘 Problemas comuns
Erros de validação:
“Estou recebendo erro 400!”
-
Verifique se executou a pré-visualização primeiro
-
Confirme se há saldo suficiente na conta
-
Verifique se o valor está correto
-
Valide se o código de barras/linha digitável está correto
-
Confirme se todos os campos obrigatórios estão preenchidos
“Erro 404 - Boleto não encontrado!”
-
Execute o endpoint de pré-visualização primeiro
-
Verifique se o boleto existe
-
Confirme se o código está correto
-
Teste com outro boleto para verificar se o problema persiste
Erros de pagamento:
“Pagamento rejeitado!”
-
Verifique se está dentro do horário permitido (08:00-20:00)
-
Confirme se é dia útil
-
Verifique se o boleto não está vencido
-
Confirme se o boleto não foi bloqueado
-
Verifique se o valor não excede os limites
“Status não está atualizando!”
-
Aguarde alguns minutos para o processamento
-
Use o endpoint de consulta para verificar o status
-
Verifique se o pagamento foi realmente processado
-
Entre em contato com suporte se persistir
Erros de autenticação:
“Erro 401!”
-
Verifique se o token de autenticação é válido
-
Faça uma nova autenticação se necessário
-
Confirme se o token não expirou
-
Verifique se o header Authorization está correto
“Erro 403!”
-
Verifique se o usuário tem permissão para pagar boletos
-
Confirme se a conta está ativa
-
Entre em contato com suporte se necessário
Problemas de integração:
“Resposta não está no formato esperado!”
-
Verifique se está usando a versão correta da API
-
Confirme se o Content-Type está como application/json
-
Valide se a resposta está sendo parseada corretamente
“Campos obrigatórios ausentes!”
-
Verifique se todos os campos necessários estão sendo enviados
-
Confirme se a estrutura do JSON está correta
-
Valide se os tipos de dados estão corretos
📞 Suporte
Antes de entrar em contato:
-
Verifique o horário de funcionamento (08:00-20:00)
-
Confirme a pré-visualização foi executada
-
Valide os dados enviados na requisição
-
Teste com outro boleto para isolar o problema
-
Verifique os logs da aplicação para erros específicos
Mais Informações sobre esse endpoint:
Acesse aqui