Visão Geral
Crie um preço de assinatura para definir quanto e com que frequência os clientes serão cobrados. Um produto pode ter múltiplos preços (ex: mensal, anual).
Parâmetros
Campos Obrigatórios
UUID do produto pai (ex: prod_abc123xyz). O produto deve ser do tipo subscription.
Nome do plano exibido ao cliente (ex: “Plano Mensal”).
Valor em Reais (ex: 49.90).
Intervalo de cobrança: daily, weekly, monthly, annually.
Campos Opcionais
Dias de teste gratuito antes da primeira cobrança.
Se o plano está disponível para novos assinantes.
A moeda padrão é BRL (Real Brasileiro). Não é necessário enviar o campo currency na requisição.
Exemplo de Requisição
curl -X POST https://garu.com.br/api/subscription-prices \
-H "Authorization: Bearer sk_test_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"productId": "prod_abc123xyz",
"name": "Plano Mensal",
"amount": 49.90,
"billingInterval": "monthly",
"trialDays": 7
}'
Resposta de Sucesso
Identificador único usado no link de checkout.
Exemplo de Resposta (201 Created)
{
"id" : "price_def456uvw" ,
"productId" : "prod_abc123xyz" ,
"sellerId" : 1 ,
"name" : "Plano Mensal" ,
"amount" : 49.90 ,
"currency" : "BRL" ,
"billingInterval" : "monthly" ,
"trialDays" : 7 ,
"isActive" : true ,
"createdAt" : "2024-01-15T10:35:00.000Z" ,
"updatedAt" : "2024-01-15T10:35:00.000Z"
}
Intervalos de Cobrança
Intervalo Valor Descrição Diário dailyCobrança a cada dia Semanal weeklyCobrança a cada 7 dias Mensal monthlyCobrança no mesmo dia todo mês Anual annuallyCobrança uma vez por ano
Link de Pagamento
Após criar o preço de assinatura, você pode gerar o link de pagamento combinando o UUID do produto com o ID do preço.
https://garu.com.br/pay/{product_uuid}?priceId={price_id}
Parâmetro Origem Descrição product_uuidResposta de POST /api/products UUID do produto (campo uuid) price_idResposta de POST /api/subscription-prices ID do preço (campo id)
Exemplo
Considerando:
Produto criado com uuid: c69c63d2-4207-4613-ad69-28e7e902544b
Preço criado com id: price_gNgQVRrG5goab0Ql
O link de pagamento será:
https://garu.com.br/pay/c69c63d2-4207-4613-ad69-28e7e902544b?priceId=price_gNgQVRrG5goab0Ql
Exemplo Completo em Código
// 1. Criar produto de assinatura
const produto = await fetch ( 'https://garu.com.br/api/products' , {
method: 'POST' ,
headers: {
'Authorization' : `Bearer ${ process . env . GARU_API_KEY } ` ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
name: 'Plano Premium' ,
isSubscription: true
})
}). then ( r => r . json ());
// 2. Criar preço de assinatura
const preco = await fetch ( 'https://garu.com.br/api/subscription-prices' , {
method: 'POST' ,
headers: {
'Authorization' : `Bearer ${ process . env . GARU_API_KEY } ` ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
productId: produto . uuid ,
name: 'Mensal' ,
amount: 49.90 ,
billingInterval: 'monthly'
})
}). then ( r => r . json ());
// 3. Gerar link de pagamento
const linkPagamento = `https://garu.com.br/pay/ ${ produto . uuid } ?priceId= ${ preco . id } ` ;
console . log ( linkPagamento );
// https://garu.com.br/pay/c69c63d2-4207-4613-ad69-28e7e902544b?priceId=price_gNgQVRrG5goab0Ql
Salve o uuid do produto e o id do preço no seu banco de dados para poder gerar links de pagamento a qualquer momento.
Múltiplos Planos
Crie diferentes planos para o mesmo produto:
// Plano Básico - Mensal
await criarPreco ({
productId: 'prod_abc123xyz' ,
name: 'Básico Mensal' ,
amount: 29.90 ,
billingInterval: 'monthly'
});
// Plano Pro - Mensal
await criarPreco ({
productId: 'prod_abc123xyz' ,
name: 'Pro Mensal' ,
amount: 49.90 ,
billingInterval: 'monthly' ,
trialDays: 7
});
// Plano Pro - Anual (com desconto de 20%)
await criarPreco ({
productId: 'prod_abc123xyz' ,
name: 'Pro Anual' ,
amount: 479.00 , // 12 meses com 20% de desconto
billingInterval: 'annually' ,
trialDays: 14
});
Próximos Passos
Listar Preços Consulte todos os preços cadastrados
Listar Assinaturas Consulte as assinaturas ativas