Introdução

A API do BravoPay é uma REST API que aceita JSON e usa códigos HTTP padrão. Você consegue criar produtos, checkouts e ler transações programaticamente.

Base URL: https://bravopay.solutions/api/v1

bash
curl https://bravopay.solutions/api/v1/me \
  -H "Authorization: Bearer bp_live_..."

Autenticação

Toda requisição precisa de uma API Key passada no header Authorization com o esquema Bearer.

Gere uma chave em Configurações → API Keys. A chave aparece uma única vez; guarde com segurança no seu backend (nunca exponha no frontend).

bash
curl https://bravopay.solutions/api/v1/products \
  -H "Authorization: Bearer bp_live_xyz..."

Erros

A API retorna códigos HTTP padrão. Erros vêm com um corpo JSON contendo error.code e error.message.

json
{
  "error": {
    "code": "validation_error",
    "message": "Some fields are invalid.",
    "details": {
      "price_cents": ["Number must be greater than 0"]
    }
  }
}
  • 200/201/204 — sucesso
  • 400 — corpo inválido
  • 401 — API key ausente ou inválida
  • 404 — recurso não encontrado
  • 422 — validação falhou
  • 5xx — erro interno

Produtos

O objeto Product representa algo que você vende.

GET/products

Lista os produtos da conta autenticada.

bash
curl https://bravopay.solutions/api/v1/products?limit=20 \
  -H "Authorization: Bearer bp_live_..."
POST/products

Cria um novo produto.

json
{
  "name": "Curso de tráfego pago",
  "description": "Conteúdo + mentoria 30 dias",
  "type": "DIGITAL",
  "price_cents": 19900,
  "currency": "BRL",
  "active": true
}
GET/products/{id}

Recupera um produto específico.

PATCH/products/{id}

Atualiza campos do produto (parcial).

json
{ "active": false, "price_cents": 24900 }
DELETE/products/{id}

Exclui o produto. Checkouts vinculados também são removidos.

Checkouts

Um Checkout é uma página pública de pagamento para um produto.

GET/checkouts

Lista os checkouts.

POST/checkouts

Cria um checkout.

json
{
  "product_id": "ckl_abc123",
  "slug": "trafego-pago",
  "payment_methods": ["pix", "card"],
  "active": true
}
GET/checkouts/{id}

Recupera um checkout. O campo url contém a página pública.

PATCH/checkouts/{id}

Atualiza o checkout.

DELETE/checkouts/{id}

Exclui o checkout.

Transações

Transações são criadas automaticamente quando um cliente paga em um checkout. Por enquanto só leitura via API.

GET/transactions

Lista as transações. Aceita filtros ?status=PAID&method=PIX.

json
{
  "data": [
    {
      "id": "txn_...",
      "object": "transaction",
      "amount_cents": 19900,
      "method": "PIX",
      "status": "PAID",
      "customer": { "email": "comprador@email.com" },
      "tracking": { "utm_source": "facebook", "fbclid": "..." },
      "paid_at": "2026-05-22T21:53:30Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Conta

Consulta dados da conta + saldo atual.

GET/me

Retorna informações do dono da API key.

json
{
  "object": "account",
  "id": "usr_...",
  "email": "voce@email.com",
  "name": "Seu Nome",
  "balance_cents": 0,
  "pending_balance_cents": 0,
  "currency": "BRL"
}

Webhooks

Em breve. O BravoPay vai enviar webhooks pra você quando uma transação for paga, expirar, ser reembolsada ou virar chargeback. Configure URL e eventos em Integrações.

  • transaction.paid
  • transaction.expired
  • transaction.refunded
  • transaction.chargeback