curl -X POST https://api.kavropay.com.br/v1/charges \
-H "Authorization: Bearer kvk_live_SUA_CHAVE_AQUI" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ped_84920" \
-d '{
"amount": "149.90",
"description": "Curso Fullstack - Matrícula #84920",
"expiresInMinutes": 60,
"customer": {
"name": "Mariana Costa Ribeiro",
"document": "52998224725",
"email": "mariana.ribeiro@email.com",
"phone": "11987654321"
},
"metadata": {
"order_id": "ped_84920"
}
}'
const res = await fetch('https://api.kavropay.com.br/v1/charges', {
method: 'POST',
headers: {
'Authorization': 'Bearer kvk_live_SUA_CHAVE_AQUI',
'Content-Type': 'application/json',
'Idempotency-Key': 'ped_84920'
},
body: JSON.stringify({
amount: "149.90", // ou amountCents: 14990
description: "Curso Fullstack - Matrícula #84920",
expiresInMinutes: 60,
customer: {
name: "Mariana Costa Ribeiro",
document: "52998224725",
email: "mariana.ribeiro@email.com",
phone: "11987654321"
},
metadata: {
order_id: "ped_84920"
}
})
});
const data = await res.json();
console.log('ID:', data.id);
console.log('Pix Copia e Cola:', data.pix_copy_paste);
import requests
payload = {
"amount": "149.90",
"description": "Curso Fullstack - Matrícula #84920",
"expiresInMinutes": 60,
"customer": {
"name": "Mariana Costa Ribeiro",
"document": "52998224725",
"email": "mariana.ribeiro@email.com",
"phone": "11987654321"
},
"metadata": {
"order_id": "ped_84920"
}
}
res = requests.post(
"https://api.kavropay.com.br/v1/charges",
headers={
"Authorization": "Bearer kvk_live_SUA_CHAVE_AQUI",
"Content-Type": "application/json",
"Idempotency-Key": "ped_84920"
},
json=payload
)
print(res.json())
{
"id": "PAY8829F1A4BC",
"status": "waiting_payment",
"amount": 149.90,
"fee": 0.50,
"net": 149.40,
"environment": "live",
"livemode": true,
"pix_copy_paste": "00020126580014br.gov.bcb.pix0136PAY8829F1A4BC5204000053039865406149.905802BR5916KavroPay Gateway6009Sao Paulo62070503***6304ABCD",
"qr_code_base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADw...",
"expires_at": "2026-10-15T22:30:00.000Z",
"created_at": "2026-10-15T21:30:00.000Z"
}
Cobranças PIX
Criar cobrança PIX
Gera QR Code dinâmico, código Pix Copia e Cola instantâneo e link de pagamento público opcional.
POST
/
v1
/
charges
curl -X POST https://api.kavropay.com.br/v1/charges \
-H "Authorization: Bearer kvk_live_SUA_CHAVE_AQUI" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ped_84920" \
-d '{
"amount": "149.90",
"description": "Curso Fullstack - Matrícula #84920",
"expiresInMinutes": 60,
"customer": {
"name": "Mariana Costa Ribeiro",
"document": "52998224725",
"email": "mariana.ribeiro@email.com",
"phone": "11987654321"
},
"metadata": {
"order_id": "ped_84920"
}
}'
const res = await fetch('https://api.kavropay.com.br/v1/charges', {
method: 'POST',
headers: {
'Authorization': 'Bearer kvk_live_SUA_CHAVE_AQUI',
'Content-Type': 'application/json',
'Idempotency-Key': 'ped_84920'
},
body: JSON.stringify({
amount: "149.90", // ou amountCents: 14990
description: "Curso Fullstack - Matrícula #84920",
expiresInMinutes: 60,
customer: {
name: "Mariana Costa Ribeiro",
document: "52998224725",
email: "mariana.ribeiro@email.com",
phone: "11987654321"
},
metadata: {
order_id: "ped_84920"
}
})
});
const data = await res.json();
console.log('ID:', data.id);
console.log('Pix Copia e Cola:', data.pix_copy_paste);
import requests
payload = {
"amount": "149.90",
"description": "Curso Fullstack - Matrícula #84920",
"expiresInMinutes": 60,
"customer": {
"name": "Mariana Costa Ribeiro",
"document": "52998224725",
"email": "mariana.ribeiro@email.com",
"phone": "11987654321"
},
"metadata": {
"order_id": "ped_84920"
}
}
res = requests.post(
"https://api.kavropay.com.br/v1/charges",
headers={
"Authorization": "Bearer kvk_live_SUA_CHAVE_AQUI",
"Content-Type": "application/json",
"Idempotency-Key": "ped_84920"
},
json=payload
)
print(res.json())
{
"id": "PAY8829F1A4BC",
"status": "waiting_payment",
"amount": 149.90,
"fee": 0.50,
"net": 149.40,
"environment": "live",
"livemode": true,
"pix_copy_paste": "00020126580014br.gov.bcb.pix0136PAY8829F1A4BC5204000053039865406149.905802BR5916KavroPay Gateway6009Sao Paulo62070503***6304ABCD",
"qr_code_base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADw...",
"expires_at": "2026-10-15T22:30:00.000Z",
"created_at": "2026-10-15T21:30:00.000Z"
}
[LLM CONTEXT DIRECTIVE]: Documentação oficial da API KavroPay para agentes de IA e desenvolvedores. Acesse a especificação completa em Markdown diretamente em: https://api.kavropay.com.br/llms.txt
Gera um QR Code dinâmico com código Pix Copia e Cola em sub-segundo (< 800ms) com conciliação automática, suporte a idempotência e opção de checkout público hospedado.
A API também aceita a rota equivalente
POST /v1/payments.Parâmetros da Requisição
Valor da cobrança em Reais com duas casas decimais (ex:
"149.90" ou "0.50"). Também aceita valor numérico. Obrigatório se amountCents não for informado. Mínimo de R$ 0,05.Valor da cobrança em centavos inteiros (ex:
14990 para R$ 149,90). Alternativa direta ao campo amount.Identificador único da transação no seu sistema interno para reconciliação automática (também aceito como
external_reference).Tempo de validade do QR Code em minutos (padrão: 30 minutos). Alternativamente, use
expiration_seconds para definir em segundos.Quando definido como
true, a KavroPay gera automaticamente uma página de checkout pública hospedada para o cliente realizar o pagamento.URL de redirecionamento para onde o cliente será enviado após concluir o pagamento na página pública.
URL de webhook HTTPS específica para receber as notificações desta cobrança (escopo isolado
tx:<id>). Não sobrescreve nem interfere nos webhooks globais da empresa.Opcional. Segredo personalizado para assinar as notificações desta cobrança. Se não informado, a KavroPay gera automaticamente um segredo seguro de 32 bytes (
whsec_...).Objeto JSON livre com pares chave-valor para armazenamento de dados customizados (ex: ID de carrinho, UTMs, SKU). Devolvido intacto nas consultas e webhooks.
Cabeçalhos de Idempotência
Para prevenir cobranças duplicadas em caso de instabilidade de rede ou retry automático, envie o cabeçalho:Idempotency-Key: ped_84920_tentativa1
x-idempotency-key de forma intercambiável).
Resposta de Sucesso
Chave secreta criptográfica (formato
whsec_...) gerada para validar as assinaturas HMAC (X-KavroPay-Signature) das notificações desta transação.curl -X POST https://api.kavropay.com.br/v1/charges \
-H "Authorization: Bearer kvk_live_SUA_CHAVE_AQUI" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ped_84920" \
-d '{
"amount": "149.90",
"description": "Curso Fullstack - Matrícula #84920",
"expiresInMinutes": 60,
"customer": {
"name": "Mariana Costa Ribeiro",
"document": "52998224725",
"email": "mariana.ribeiro@email.com",
"phone": "11987654321"
},
"metadata": {
"order_id": "ped_84920"
}
}'
const res = await fetch('https://api.kavropay.com.br/v1/charges', {
method: 'POST',
headers: {
'Authorization': 'Bearer kvk_live_SUA_CHAVE_AQUI',
'Content-Type': 'application/json',
'Idempotency-Key': 'ped_84920'
},
body: JSON.stringify({
amount: "149.90", // ou amountCents: 14990
description: "Curso Fullstack - Matrícula #84920",
expiresInMinutes: 60,
customer: {
name: "Mariana Costa Ribeiro",
document: "52998224725",
email: "mariana.ribeiro@email.com",
phone: "11987654321"
},
metadata: {
order_id: "ped_84920"
}
})
});
const data = await res.json();
console.log('ID:', data.id);
console.log('Pix Copia e Cola:', data.pix_copy_paste);
import requests
payload = {
"amount": "149.90",
"description": "Curso Fullstack - Matrícula #84920",
"expiresInMinutes": 60,
"customer": {
"name": "Mariana Costa Ribeiro",
"document": "52998224725",
"email": "mariana.ribeiro@email.com",
"phone": "11987654321"
},
"metadata": {
"order_id": "ped_84920"
}
}
res = requests.post(
"https://api.kavropay.com.br/v1/charges",
headers={
"Authorization": "Bearer kvk_live_SUA_CHAVE_AQUI",
"Content-Type": "application/json",
"Idempotency-Key": "ped_84920"
},
json=payload
)
print(res.json())
{
"id": "PAY8829F1A4BC",
"status": "waiting_payment",
"amount": 149.90,
"fee": 0.50,
"net": 149.40,
"environment": "live",
"livemode": true,
"pix_copy_paste": "00020126580014br.gov.bcb.pix0136PAY8829F1A4BC5204000053039865406149.905802BR5916KavroPay Gateway6009Sao Paulo62070503***6304ABCD",
"qr_code_base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADw...",
"expires_at": "2026-10-15T22:30:00.000Z",
"created_at": "2026-10-15T21:30:00.000Z"
}
