VersellAPI

Pagar por Código do Boleto

Inicie o pagamento de um boleto informando o código do boleto (linha digitável ou código de barras), indicado para boletos previamente consultados.

*
Fluxo recomendado: consulte o boleto via POST /billets/info para obter o valor atualizado (totalUpdated) e validar os dados do beneficiário, e então pague via POST /billets/pay usando o mesmo billetCode.
!
A API retorna erro 422 quando o boleto está vencido ou quando a requisição é feita fora do horário limite de liquidação diária.
i
O valor liquidado é sempre o valor atualizado do boleto, incluindo juros e multas calculados na data de liquidação.
POST/api/v2/billets/pay

Inicia o pagamento de um boleto a partir do código do boleto. Requer o escopo billets.write e o header x-idempotency-key.

Base URL: https://pagamentos.basspago.com.br

Headers

HeaderValorDescricao
Content-Typeapplication/jsonTipo do conteúdo da requisição
AuthorizationBearer {access_token}Token de acesso obtido via OAuth2 (escopo billets.write)
x-idempotency-keybillet-req-id-001Obrigatório. Chave única alfanumérica (1 a 50 caracteres, [a-zA-Z0-9]) para evitar pagamentos duplicados.

Parametros do Body

NomeTipoObrigatorioDescricao
billetCodestringObrigatorioLinha digitável ou código de barras do boleto, apenas números, com até 50 caracteres. Use o mesmo código consultado em /billets/info.
descriptionstringObrigatorioDescrição do pagamento.
paymentFlowstringOpcional"INSTANT" (padrão, processa imediatamente) ou "APPROVAL_REQUIRED" (retém o pagamento para aprovação manual no painel).
paymentobjectOpcionalObjeto com currency ("BRL") e amount (valor em reais com decimais). Ex: { "currency": "BRL", "amount": 150.75 }
payment.currencystringOpcionalMoeda do pagamento. Sempre "BRL".
payment.amountnumberOpcionalValor em reais com decimais. Ex: 150.75 = R$ 150,75.

Exemplo de Request

{
  "billetCode": "00190000090267490000732810452179696530000015075",
  "description": "Pagamento Fornecedor Infra",
  "paymentFlow": "INSTANT",
  "payment": {
    "currency": "BRL",
    "amount": 150.75
  }
}

Exemplo de Response

{
  "id": 776543210,
  "idempotencyKey": "billet-req-id-001",
  "eventDate": "2026-06-12T16: 45:22Z",
  "digitableCode": "00190000090267490000732810452179696530000015075",
  "description": "Pagamento Fornecedor Infra",
  "paymentFlow": "INSTANT",
  "status": "ON_QUEUE",
  "transactionType": "BILLET",
  "creditDebitType": "DEBIT",
  "payment": {
    "currency": "BRL",
    "amount": 150.75
  }
}

Exemplos de Codigo

curl -X POST https://pagamentos.basspago.com.br/api/v2/billets/pay \
  --cert ./client.crt \
  --key ./client.key \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-idempotency-key: billet-req-id-001" \
  -d '{
    "billetCode": "00190000090267490000732810452179696530000015075",
    "description": "Pagamento Fornecedor Infra",
    "paymentFlow": "INSTANT",
    "payment": {
      "currency": "BRL",
      "amount": 150.75
    }
  }'

Erros

Os erros seguem o formato RFC 7807 (application/problem+json).

CódigoDescrição
400Código do boleto inválido ou requisição malformada.
401Token de acesso inválido ou expirado.
403Sem permissão para executar a operação (escopo billets.write ausente).
412x-idempotency-key já utilizada em outra requisição.
422Boleto vencido ou fora do horário limite de liquidação diária.
429Limite de requisições excedido (rate limit).
500 / 503 / 504Falha técnica no processamento. Tente novamente mais tarde.