curl -X POST https://api.llmgenerator.com/api/v1/subscriptions/checkout \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"planId": "professional",
"successUrl": "https://yourapp.com/subscription/success",
"cancelUrl": "https://yourapp.com/pricing"
}'
const response = await fetch('https://api.llmgenerator.com/api/v1/subscriptions/checkout', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
planId: 'professional',
successUrl: 'https://yourapp.com/subscription/success',
cancelUrl: 'https://yourapp.com/pricing'
})
});
const data = await response.json();
// Redirect user to Stripe checkout
window.location.href = data.url;
import requests
response = requests.post(
'https://api.llmgenerator.com/api/v1/subscriptions/checkout',
headers={
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
json={
'planId': 'professional',
'successUrl': 'https://yourapp.com/subscription/success',
'cancelUrl': 'https://yourapp.com/pricing'
}
)
data = response.json()
print(f"Redirect to: {data['url']}")
{
"sessionId": "cs_test_a1b2c3d4e5f6g7h8i9j0",
"url": "https://checkout.stripe.com/c/pay/cs_test_a1b2c3d4...",
"plan": {
"id": "professional",
"name": "Professional",
"monthlyCredits": 3000,
"priceCents": 1299
}
}
Assinaturas
Checkout de assinatura
Cria uma sessão Stripe Checkout para assinar um plano.
POST
/
subscriptions
/
checkout
curl -X POST https://api.llmgenerator.com/api/v1/subscriptions/checkout \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"planId": "professional",
"successUrl": "https://yourapp.com/subscription/success",
"cancelUrl": "https://yourapp.com/pricing"
}'
const response = await fetch('https://api.llmgenerator.com/api/v1/subscriptions/checkout', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
planId: 'professional',
successUrl: 'https://yourapp.com/subscription/success',
cancelUrl: 'https://yourapp.com/pricing'
})
});
const data = await response.json();
// Redirect user to Stripe checkout
window.location.href = data.url;
import requests
response = requests.post(
'https://api.llmgenerator.com/api/v1/subscriptions/checkout',
headers={
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
json={
'planId': 'professional',
'successUrl': 'https://yourapp.com/subscription/success',
'cancelUrl': 'https://yourapp.com/pricing'
}
)
data = response.json()
print(f"Redirect to: {data['url']}")
{
"sessionId": "cs_test_a1b2c3d4e5f6g7h8i9j0",
"url": "https://checkout.stripe.com/c/pay/cs_test_a1b2c3d4...",
"plan": {
"id": "professional",
"name": "Professional",
"monthlyCredits": 3000,
"priceCents": 1299
}
}
Visão geral
Cria uma sessão Stripe Checkout para assinatura de um plano. Retorna uma URL para redirecionar o usuário ao pagamento. Exige autenticação por sessão (JWT de acesso).Para integrações de terceiros: use
POST /subscriptions/checkout/api com autenticação por chave de API.Autenticação
string
obrigatório
Seu JWT de acesso. Formato:
Bearer YOUR_ACCESS_TOKENCorpo da requisição
string
obrigatório
Identificador do plano:
starter, professional, business ou agency.string
padrão:"monthly"
Periodicidade de cobrança:
monthly ou yearly.string
URL após pagamento bem-sucedido. Por padrão, dashboard do aplicativo.
string
URL se o usuário cancelar. Por padrão, página de preços.
curl -X POST https://api.llmgenerator.com/api/v1/subscriptions/checkout \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"planId": "professional",
"successUrl": "https://yourapp.com/subscription/success",
"cancelUrl": "https://yourapp.com/pricing"
}'
const response = await fetch('https://api.llmgenerator.com/api/v1/subscriptions/checkout', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
planId: 'professional',
successUrl: 'https://yourapp.com/subscription/success',
cancelUrl: 'https://yourapp.com/pricing'
})
});
const data = await response.json();
// Redirect user to Stripe checkout
window.location.href = data.url;
import requests
response = requests.post(
'https://api.llmgenerator.com/api/v1/subscriptions/checkout',
headers={
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
json={
'planId': 'professional',
'successUrl': 'https://yourapp.com/subscription/success',
'cancelUrl': 'https://yourapp.com/pricing'
}
)
data = response.json()
print(f"Redirect to: {data['url']}")
{
"sessionId": "cs_test_a1b2c3d4e5f6g7h8i9j0",
"url": "https://checkout.stripe.com/c/pay/cs_test_a1b2c3d4...",
"plan": {
"id": "professional",
"name": "Professional",
"monthlyCredits": 3000,
"priceCents": 1299
}
}
Campos da resposta
string
ID da sessão Stripe Checkout. Pode ser usado para verificação posterior.
string
URL para redirecionar o usuário ao checkout hospedado pela Stripe.
object
Detalhes do plano selecionado.
Fluxo de checkout
- Criar sessão: chame este endpoint com o plano desejado
- Redirecionar: envie o usuário para a
urlretornada - Pagamento: o usuário conclui na Stripe
- Webhook: a Stripe notifica seu endpoint de webhook
- Sucesso: redirecionamento para
successUrl - Verificação (opcional): estado em
/subscriptions/current
Respostas de erro
Requisição inválida — plano inválido ou usuário já possui assinatura ativa.
Não autorizado — token ausente ou inválido.
Se já existir assinatura ativa, use o portal de cobrança (
/subscriptions/portal) para alterar plano.POST /subscriptions/checkout/api
Cria sessão Stripe Checkout com chave de API. Indicado para integrações externas.Autenticação
Authorization: Bearer llmgen_your_api_key_here
Corpo da requisição
Igual ao de/subscriptions/checkout, acima.
Resposta
Igual ao de/subscriptions/checkout, acima.
curl -X POST https://api.llmgenerator.com/api/v1/subscriptions/checkout/api \
-H "Authorization: Bearer llmgen_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"planId": "professional",
"successUrl": "https://yourapp.com/subscription/success",
"cancelUrl": "https://yourapp.com/pricing"
}'
const response = await fetch('https://api.llmgenerator.com/api/v1/subscriptions/checkout/api', {
method: 'POST',
headers: {
'Authorization': 'Bearer llmgen_your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
planId: 'professional',
successUrl: 'https://yourapp.com/subscription/success',
cancelUrl: 'https://yourapp.com/pricing'
})
});
const data = await response.json();
// Redirect user to Stripe checkout
window.location.href = data.url;
import requests
response = requests.post(
'https://api.llmgenerator.com/api/v1/subscriptions/checkout/api',
headers={
'Authorization': 'Bearer llmgen_your_api_key_here',
'Content-Type': 'application/json'
},
json={
'planId': 'professional',
'successUrl': 'https://yourapp.com/subscription/success',
'cancelUrl': 'https://yourapp.com/pricing'
}
)
data = response.json()
print(f"Redirect to: {data['url']}")
Esta página foi útil?
⌘I