Seção 06
Endpoints
Todos os caminhos abaixo são relativos a https://api.gaudpay.com.br. Escritas (POST, PUT) aceitam o cabeçalho Idempotency-Key.
Visão geral
| Recurso | Método e caminho | Para quê |
|---|---|---|
| Clientes | POST /customers | Cadastrar o pagador |
GET /customers | Listar (busca com q) | |
GET /customers/{id} | Detalhar | |
PUT /customers/{id} | Atualizar | |
| Links de pagamento | POST /payment-links | Criar link (Pix, boleto, cartão) |
GET /payment-links | Listar | |
GET /payment-links/{id} | Detalhar | |
| Cobranças | POST /payments | Criar cobrança avulsa |
GET /payments | Listar com filtros | |
GET /payments/{id} | Detalhar | |
PUT /payments/{id} | Alterar valor ou vencimento (só PENDING) | |
GET /payments/{id}/boleto | Linha digitável, código de barras e PDF | |
GET /payments/{id}/receipt | Comprovante (pago) | |
GET /payments/{id}/transactions | Tentativas de cobrança | |
POST /payments/{id}/refund | Estornar (somente cartão) | |
| Extrato | GET /statements/balance | Saldo |
GET /statements/entries | Lançamentos do período | |
GET /statements/settlements | Repasses | |
GET /statements/future-releases | Valores a receber | |
| Avisos (webhooks) | PUT /webhook-endpoint | Cadastrar/alterar o endereço |
GET /webhook-endpoint | Consultar | |
POST /webhook-endpoint/secret/rotate | Gerar novo segredo | |
POST /webhook-endpoint/test | Enviar um aviso de teste | |
GET /webhook-deliveries | Histórico de envios | |
POST /webhook-deliveries/{id}/retry | Reenviar um aviso |
6.1 Clientes
Toda cobrança avulsa (POST /payments) precisa de um cliente. No link de pagamento, o cliente é opcional: quem paga se identifica na própria página.
POST /customers
{
"first_name": "Maria",
"last_name": "Souza",
"document": "12345678909",
"phone": "51999990000",
"email": "maria@exemplo.com.br",
"street": "Rua das Flores",
"number": "100",
"neighborhood": "Centro",
"city": "Porto Alegre",
"state": "RS",
"zip_code": "90000000"
}
Obrigatórios: first_name, last_name, document (CPF/CNPJ, só números), phone, email. O endereço é opcional para Pix, mas obrigatório e completo (rua, número, bairro, cidade, UF e CEP) para boleto e cartão.
Resposta 201:
{
"id": 4821,
"merchant_id": 77,
"first_name": "Maria",
"last_name": "Souza",
"document": "12345678909",
"phone": "51999990000",
"email": "maria@exemplo.com.br",
"street": "Rua das Flores",
"number": "100",
"complement": null,
"neighborhood": "Centro",
"city": "Porto Alegre",
"state": "RS",
"zip_code": "90000000"
}
6.2 Links de pagamento
Um link de pagamento abre um checkout hospedado. É a forma recomendada de receber por Pix e por cartão: o Gaud Pay exibe o QR Code do Pix, faz a autenticação 3DS e trata os dados do cartão, sem que eles passem pelo seu sistema.
POST /payment-links
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
amount_cents | inteiro | sim | Valor em centavos |
allowed_methods | lista | sim | Qualquer combinação de PIX, BOLETO, CARD |
description | texto | não | Texto exibido ao cliente |
customer_id | inteiro | não | Pré-identifica o pagador |
max_installments | inteiro | não | Parcelas no cartão, de 1 a 12 (padrão 1) |
boleto_config | objeto | se incluir BOLETO | Veja Boleto |
Importante sobre o parcelamento: o pagador não paga juros. O valor da cobrança é sempre o valor cheio, e o custo do parcelamento fica com o lojista.
Resposta 201:
{
"id": 912,
"merchant_id": 77,
"customer_id": null,
"amount_cents": 15990,
"description": "Pedido 1001",
"allowed_methods": ["PIX", "BOLETO", "CARD"],
"max_installments": 3,
"public_token": "k3Hq...Zp9",
"status": "OPEN",
"created_at": "2026-10-10T14:30:00Z"
}
O endereço para o cliente é https://app.gaudpay.com.br/pay/{public_token}.
| Status do link | Significado |
|---|---|
OPEN | Aguardando pagamento |
PAID | Pago |
CANCELED | Cancelado |
6.3 Cobranças
Use POST /payments para cobranças avulsas ligadas a um cliente.
POST /payments
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
customer_id | inteiro | sim | Cliente criado em POST /customers |
amount_cents | inteiro | sim | Valor em centavos |
payment_method | texto | sim | PIX, BOLETO ou CARD |
due_date | data/hora | não | Vencimento |
boleto | objeto | para BOLETO | Veja Boleto |
Resposta 201:
{
"id": 30511,
"merchant_id": 77,
"customer_id": 4821,
"subscription_id": null,
"amount_cents": 15990,
"payment_method": "BOLETO",
"status": "PENDING",
"retry_count": 0,
"due_date": "2026-10-13T00:00:00Z",
"installments": null
}
Importante — qual meio usar por qual caminho:
Meio Pela cobrança avulsa ( POST /payments)Pelo link de pagamento Boleto ✅ Devolve a linha digitável, o código de barras e o PDF ( GET /payments/{id}/boleto)✅ Pix ⚠️ A cobrança é criada, mas a API não devolve o código copia e cola nem o QR Code ✅ Recomendado: o checkout exibe o QR Code Cartão ⚠️ Exige um token de cartão que a API pública não emite ✅ Recomendado: checkout hospedado com 3DS Para Pix e cartão, use o link de pagamento.
Consultar e listar
curl https://api.gaudpay.com.br/payments/30511 \
-H "Authorization: Bearer $GAUDPAY_TOKEN"
GET /payments aceita os filtros descritos em Paginação e Filtros.
Alterar — PUT /payments/{id} com amount_cents e/ou due_date. Só é possível enquanto a cobrança está PENDING e não há tentativa de cobrança em andamento; caso contrário a resposta é 409.
Estornar — POST /payments/{id}/refund. Somente cobranças de cartão podem ser estornadas pela API, e o estorno segue as regras do processador de pagamentos (prazo e dia da liquidação). Pix e boleto não são estornados por aqui.
Comprovante — GET /payments/{id}/receipt:
{
"payment_id": 30511,
"amount_cents": 15990,
"payment_method": "BOLETO",
"paid_at": "2026-10-12T17:02:11Z",
"gateway_transaction_id": "8f3c..."
}
6.4 Boleto
Para BOLETO, envie o objeto de configuração (boleto em POST /payments, boleto_config em POST /payment-links):
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
issue_date | data (AAAA-MM-DD) | sim | Data de emissão |
document_kind | texto | sim | Espécie do documento (ex.: DM, duplicata mercantil) |
days_until_expiration | inteiro | sim | Dias até o vencimento, de 1 a 99 |
iof_percentage | texto | não | IOF (percentual) |
interest_percentage | texto | não | Juros por atraso (percentual) |
messages | lista de texto | não | Instruções impressas no boleto |
discount | objeto | não | { "type": "...", "items": [{ "limit_date": "AAAA-MM-DD", "value": "5.00" }] } |
fine | objeto | não | Multa: { "percentage": "2.00", "quantity_days": 1 } |
{
"issue_date": "2026-10-10",
"document_kind": "DM",
"days_until_expiration": 3,
"interest_percentage": "1.00",
"fine": { "percentage": "2.00", "quantity_days": 1 },
"messages": ["Não receber após o vencimento"]
}
GET /payments/{id}/boleto
{
"payment_id": 30511,
"digitable_line": "23793.38128 60000.000003 00000.000400 1 98765000015990",
"barcode": "23791987650000159903812860000000000000000400",
"pdf_url": "https://..."
}
6.5 Extrato, saldo e repasses
GET /statements/balance — valores em centavos:
{
"total_balance_cents": 150000,
"blocked_balance_cents": 5000,
"available_balance_cents": 145000
}
| Campo | Significado |
|---|---|
total_balance_cents | Saldo total |
blocked_balance_cents | Parte bloqueada |
available_balance_cents | Disponível |
GET /statements/entries?period=2026-10 — lançamentos do mês (AAAA-MM; sem o parâmetro, o mês atual):
{
"period": "2026-10",
"entries": [
{
"type": "CHARGE",
"modality": "PIX",
"occurred_at": "2026-10-03T10:00:00Z",
"description": "Cobrança #30511",
"amount_cents": 15990,
"status": "PAID",
"running_balance_cents": 146500
}
]
}
GET /statements/settlements — repasses (liquidações):
{
"total": 1,
"items": [
{
"id": "s_1",
"amount_cents": 25000,
"transactions_count": 4,
"status": "PAID",
"settled_at": "2026-10-10T15:00:00Z",
"created_at": "2026-10-09T12:00:00Z"
}
]
}
GET /statements/future-releases — valores a receber nos próximos 7, 15 e 30 dias, e por mês.