Skip to content

Billing - Cobranças (Charges)

Gestão de cobranças no módulo Billing. Este módulo permite a criação de cobranças avulsas ou parceladas, suportando Pix, Boleto e Cartão de Crédito.

As rotas de Billing estão disponíveis sob o prefixo billing/.


Listagem de Cobranças

[GET] billing/charges

Retorna uma lista paginada de cobranças da conta autenticada.

Query Params

NomeTipoObrigatórioDescrição
pageintegerNãoPágina atual (padrão 1)
per_pageintegerNãoItens por página (padrão 15)
status_idmixedNãoID ou lista de IDs de status (ex: 1 ou 1,2,3)
created_at_startdateNãoData inicial de criação (Y-m-d)
created_at_enddateNãoData final de criação (Y-m-d)
due_date_startdateNãoData inicial de vencimento (Y-m-d)
due_date_enddateNãoData final de vencimento (Y-m-d)
searchstringNãoBusca por nome, e-mail ou documento do cliente
order_bystringNãoCampo para ordenação
order_dirstringNãoDireção (asc ou desc)
has_distributionbooleanNãoFiltrar cobranças com split

Response (200 OK)

json
{
  "current_page": 1,
  "data": [
    {
      "id": 1001,
      "code": "ch_7a9b...",
      "value": "150.00",
      "amount_paid": "0.00",
      "status_id": 1,
      "status": { "id": 1, "title": "pending", "label": "Pendente" },
      "payment_method": "BOLEPIX",
      "due_date": "2024-12-30",
      "client": {
        "id": 50,
        "name": "Cliente Exemplo",
        "email": "cliente@email.com",
        "document": "12345678901"
      }
    }
  ],
  "total": 125
}

Criar Cobrança

[POST] billing/charges

Cria uma nova cobrança. Pode gerar Pix, Boleto ou ambos (Bolepix), ou processar Cartão de Crédito.

Request Body

NomeTipoObrigatórioDescrição
valuenumericSim*Valor da cobrança (ou amount)
due_datedateSimData de vencimento (Y-m-d)
payment_methodstringSimPIX, BOLETO, BOLEPIX ou CREDIT_CARD
namestringSim**Nome do cliente
emailstringSim**E-mail do cliente
documentstringSim**CPF/CNPJ do cliente (Obrigatório para Boleto/Cartão)
phonestringNãoTelefone do cliente
addressobjectNãoObjeto com endereço (obrigatório para Cartão)
descriptionstringNãoDescrição da cobrança
charge_group_idintegerNãoID do grupo de cobrança associado
webhookurlNãoURL para notificações de status
splitarrayNãoEstrutura de divisão de valores

* Utilize value ou amount.** Se client_id for fornecido, os dados do cliente são carregados automaticamente.

Exemplo (Pix/Boleto)

json
{
  "value": 100.00,
  "due_date": "2024-12-30",
  "payment_method": "BOLEPIX",
  "name": "Jose Silva",
  "document": "000.000.000-00",
  "email": "jose@email.com"
}

Response (201 Created)

json
{
  "data": {
    "id": 1002,
    "value": 100.0,
    "status": "pending",
    "payment_method": "BOLEPIX",
    "pix": {
      "txid": "...",
      "qrcode": "..."
    },
    "boleto": {
      "barcode": "...",
      "digitableLine": "..."
    }
  }
}

Detalhes da Cobrança

[GET] billing/charges/{id}

Retorna os detalhes completos de uma cobrança, incluindo dados do Pix e Boleto associados. O {id} pode ser o ID numérico ou o código (code) da cobrança.


Atualizar Cobrança

[PUT] billing/charges/{id}

Permite atualizar dados de uma cobrança que ainda esteja com status pending. Se o valor for alterado, o Pix associado será atualizado ou gerado novamente.

Campos Editáveis: value, description, due_date, webhook, payment_method, etc.


Deletar Cobrança

[DELETE] billing/charges/{id}

Marca a cobrança com o status DELETED.


Download do PDF

[GET] billing/charges/{id}/download-pdf

Gera e inicia o download do PDF da fatura/boleto da cobrança.


Simular Pagamento (Ambiente de Teste)

[POST] billing/simulate-payment/{id}/charges

Disponível apenas para contas de teste (IDs 1, 2, 3), esta rota simula a liquidação de uma cobrança, atualizando o status para paid, criando a transação financeira e disparando webhooks.


Notificar Cliente

[POST] billing/charges/notify

[POST] billing/charges/{id}/notify

Envia notificações de uma ou várias cobranças em aberto para os clientes através de múltiplos canais (E-mail, WhatsApp, SMS). O processamento é assíncrono (Job).

Request Body

NomeTipoObrigatórioDescrição
channelsarraySimLista de canais: email, whatsapp, sms
idsarrayNão*Lista de IDs ou Códigos das cobranças para notificação em massa.
idmixedNão*Um único ID ou Código da cobrança.
messagestringNãoMensagem personalizada. Suporta os placeholders: :link (Link de Pagamento), :name (Nome do Cliente), :value (Valor Formatado) e :due_date (Data de Vencimento).

* Opcional se o {id} for passado na URL.

Exemplo (Massa)

json
{
  "ids": [105, "ch_abc123", 110],
  "channels": ["whatsapp"],
  "message": "Olá, sua fatura vence logo. Pague aqui: :link"
}

Mensagens Padrão (Fallback)

  • WhatsApp: Olá [Nome], sua cobrança no valor de R$ [Valor] está disponível. Acesse o link para pagar: [Link]
  • SMS: Sua cobranca de R$ [Valor] vence em [Data]. Pague aqui: [Link]

Tabela de Status (Charges)

IDTítuloLegendaDescrição
1pendingEm AbertoAguardando pagamento
2paidPagoPagamento confirmado
3canceledExpiradoPrazo de pagamento encerrado
4processingEm ProcessamentoPagamento em análise
5failedFalhouErro no processamento do pagamento
6overpaidPago em ExcessoValor pago foi maior que o cobrado
7underpaidPago a MenosValor pago foi menor que o cobrado
8DELETEDDeletadoCobrança removida logicamente

Relatório de Cobranças

[GET] reports/invoices

Gera estatísticas e relatórios de cobranças agrupados por dia ou mês dentro de um período específico. As estatísticas são consolidadas por status.

Query Params

NomeTipoObrigatórioDescrição
group_bystringSimAgrupamento dos dados: days ou months
date_startdateSimData inicial do período (Y-m-d)
date_enddateSimData final do período (Y-m-d)

Lógica de Data de Referência:

  • Se a cobrança estiver paga, utiliza-se a payment_date.
  • Caso contrário, utiliza-se a updated_at.

Response (200 OK)

json
{
 "success": true,
 "message": "Relatório de cobranças gerado com sucesso.",
 "data": [
   {
     "reference_date": "2024-03-01",
     "status_id": 1,
     "total_qtd": 15,
     "total_amount_paid": "0.00",
     "total_value": "1500.00",
     "status": {
       "id": 1,
       "title": "pending",
       "description": "Aguardando pagamento"
     }
   },
   {
     "reference_date": "2024-03-01",
     "status_id": 2,
     "total_qtd": 8,
     "total_amount_paid": "800.00",
     "total_value": "800.00",
     "status": {
       "id": 2,
       "title": "paid",
       "description": "Pagamento confirmado"
     }
   }
 ]
}

Comandos Artisan

Importar Cobrança do Banco

php artisan charge:import {nosso_numero} {account_id}

Este comando busca uma cobrança diretamente na API da instituição bancária vinculada à conta e a sincroniza com o sistema interno. É útil para recuperar pagamentos feitos fora do fluxo normal ou para reconciliação manual.

Funcionalidades:

  • Consulta o banco (Sicoob ou Sicredi) via API.
  • Cria ou atualiza o cliente no sistema.
  • Cria ou atualiza o Boleto e a Charge.
  • Sicoob: Extrai automaticamente o valor pago (paid_amount) e a data de pagamento (payment_date) a partir do histórico de liquidação bancária.

Documentação para Desenvolvedores