Documentação para Desenvolvedores

CNAB (Retorno)

Recurso Descrição
POST /api/v1/discharges Enviar CNAB
GET /api/v1/discharges/:id Informações do CNAB
GET /api/v1/discharges Listar CNABs
PUT /api/v1/discharges/:id/pay_off Quitar boletos

Modelo de Dados

Parâmetro Obr. Tipo Tamanho Descrição
id N/A Integer   ID do CNAB
file Sim     Arquivo
content Sim     Conteúdo do arquivo
filename Não String 255 Nome do arquivo
status N/A String 20 Situação do arquivo (possíveis valores)
processed_at N/A Time   Data de Processamento
created_via_api N/A Boolean   Enviado pela API
bank_billet_account_id Não Integer   ID da Carteira de Cobrança
created_via_integration Não Date   Data de recebimento automático do banco
bank_billet_discharges N/A Array   Retornos bancários
bank_billets_with_transactions N/A Array   IDs de boletos com informações detalhadas do retorno

Dicionário de Dados

status

unprocessed Pendente
processed Processado

Enviar CNAB

POST /api/v1/discharges

Exemplo de requisição inválida

Requisição:
curl -i \
-u $BOLETOSIMPLES_TOKEN:x \
-H 'Content-Type: multipart/form-data' \
-H 'User-Agent: MyApp (myapp@example.com)' \
-X POST 'https://sandbox.boletosimples.com.br/api/v1/discharges'
Resposta:
HTTP/1.1 422 Unprocessable Entity
Server: Cowboy
Connection: keep-alive
Strict-Transport-Security: max-age=2592000
Content-Type: application/json; charset=utf-8
...

{"errors":{"discharge":["não pode ficar em branco"]}}

Exemplo de requisição válida

Requisição:
curl -i \
-u $BOLETOSIMPLES_TOKEN:x \
-H 'Content-Type: multipart/form-data' \
-H 'User-Agent: MyApp (myapp@example.com)' \
-F "discharge[file]=@cnab240.ret" \
-X POST 'https://sandbox.boletosimples.com.br/api/v1/discharges'
Resposta:
HTTP/1.1 201 Created
Server: Cowboy
Connection: keep-alive
Strict-Transport-Security: max-age=2592000
Location: https://sandbox.boletosimples.com.br/api/v1/discharges/1
Content-Type: application/json; charset=utf-8
...

{
  "id":1,
  "filename":"cnab240.ret",
  "processed_at":"2015-06-11T10:41:41.916-03:00",
  "created_via_api":true,
  "status":"unprocessed"
}

Informações do CNAB

GET /api/v1/discharges/:id

Exemplo

Requisição:
curl -i \
-u $BOLETOSIMPLES_TOKEN:x \
-H 'Content-Type: application/json' \
-H 'User-Agent: MyApp (myapp@example.com)' \
-X GET 'https://sandbox.boletosimples.com.br/api/v1/discharges/1'
Resposta:
HTTP/1.1 200 OK
Server: Cowboy
Connection: keep-alive
Strict-Transport-Security: max-age=2592000
Content-Type: application/json; charset=utf-8
...

{
  "id":1,
  "filename":"cnab240.ret",
  "processed_at":"2015-06-11T10:41:41.916-03:00",
  "created_via_api":true,
  "status":"processed"
}

Listar CNABs

GET /api/v1/discharges

Parâmetro Obr. Tipo Descrição
page Não Number Número da Página
per_page Não Number Quantidade de registros por página (Maximo de 250)

Exemplo

Requisição:
curl -i \
-u $BOLETOSIMPLES_TOKEN:x \
-H 'Content-Type: application/json' \
-H 'User-Agent: MyApp (myapp@example.com)' \
-X GET "https://sandbox.boletosimples.com.br/api/v1/discharges?page=1&per_page=50"
Resposta:
HTTP/1.1 200 OK
Server: Cowboy
Connection: keep-alive
Strict-Transport-Security: max-age=2592000
Total: 1
Content-Type: application/json; charset=utf-8
...

[
  {
    "id":1,
    "filename":"cnab240.ret",
    "processed_at":"2015-06-11T10:41:41.916-03:00",
    "created_via_api":true,
    "status":"processed"
  }
]

Quitar Boletos

PUT /api/v1/discharges/:id/pay_off ou PATCH /api/v1/discharges/:id/pay_off

É necessário já ter enviado o CNAB. Todos os boletos que forem identificados dentro do CNAB serão marcados como PAGO e os Webhooks serão disparados.

Exemplo

Requisição:
curl -i \
-u $BOLETOSIMPLES_TOKEN:x \
-H 'Content-Type: application/json' \
-H 'User-Agent: MyApp (myapp@example.com)' \
-X PUT 'https://sandbox.boletosimples.com.br/api/v1/discharges/1/pay_off'
Resposta:
HTTP/1.1 204 OK
Server: Cowboy
Connection: keep-alive
Strict-Transport-Security: max-age=2592000
Content-Type: application/json; charset=utf-8
...

{
  "id":1,
  "filename":"cnab240.ret",
  "processed_at":"2015-06-11T10:41:41.916-03:00",
  "created_via_api":true,
  "status":"processed"
}