Criar uma Assinatura
curl --request POST \
--url https://api.billing.upag.io/v1/subscriptions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer": "<string>",
"paymentMethod": "<string>",
"items": [
{}
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer: '<string>', paymentMethod: '<string>', items: [{}]})
};
fetch('https://api.billing.upag.io/v1/subscriptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.billing.upag.io/v1/subscriptions';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer: '<string>', paymentMethod: '<string>', items: [{}]})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Assinaturas
Criar uma Assinatura
Crie uma nova assinatura recorrente para um cliente
POST
https://api.billing.upag.io
/
v1
/
subscriptions
Criar uma Assinatura
curl --request POST \
--url https://api.billing.upag.io/v1/subscriptions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer": "<string>",
"paymentMethod": "<string>",
"items": [
{}
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer: '<string>', paymentMethod: '<string>', items: [{}]})
};
fetch('https://api.billing.upag.io/v1/subscriptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.billing.upag.io/v1/subscriptions';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer: '<string>', paymentMethod: '<string>', items: [{}]})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Cria uma nova assinatura recorrente para um cliente. Moeda e intervalo de cobrança vêm dos preços dos itens (todos os preços devem ser recorrentes e compartilhar o mesmo intervalo e moeda). Se
trialEnd for informado, a assinatura entra em trialing e a cobrança inicial não é processada; caso contrário, a primeira fatura é gerada e o pagamento é tentado na hora.
Endpoint
cURL
curl -X POST https://api.billing.upag.io/v1/subscriptions \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"customer": "cus_ahwDXrgYvur89iPs",
"paymentMethod": "pm_abc123xyz",
"items": [
{
"price": "price_def456ghi",
"quantity": 1
}
]
}'
Parâmetros
string
required
ID do cliente (
cus_...) para quem a assinatura será criada.string
required
ID do método de pagamento (
pm_...) usado nas cobranças.array
required
Lista de itens. Cada item deve conter
price (ID do preço recorrente) e quantity (inteiro, mínimo 1).integer
Opcional. Timestamp numérico inteiro positivo indicando o fim do período de teste. Quando presente, a assinatura é criada como
trialing e não há cobrança inicial neste request.Resposta
Response
{
"id": "sub_abc123xyz",
"livemode": false,
"customerId": "cus_ahwDXrgYvur89iPs",
"paymentMethodId": "pm_abc123xyz",
"status": "active",
"currency": "BRL",
"interval": "month",
"intervalCount": 1,
"cancelAtPeriodEnd": false,
"startDate": "2024-11-15T10:00:00.000Z",
"endDate": null,
"trialStartDate": null,
"trialEndDate": null,
"currentPeriodStart": "2024-11-15T10:00:00.000Z",
"currentPeriodEnd": "2024-12-15T10:00:00.000Z",
"canceledAt": null,
"cancellationReason": null,
"items": [
{
"id": "si_abc123xyz",
"subscriptionId": "sub_abc123xyz",
"productId": "prod_xyz789abc",
"priceId": "price_def456ghi",
"name": "Plano Pro",
"amount": 9900,
"quantity": 1,
"createdAt": "2024-11-15T10:00:00.000Z",
"updatedAt": "2024-11-15T10:00:00.000Z"
}
],
"createdAt": "2024-11-15T10:00:00.000Z",
"updatedAt": "2024-11-15T10:00:00.000Z"
}