Mudanças agendadas
curl --request GET \
--url https://api.upag.io/v1/subscriptions/{subscriptionId}/scheduled-changes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"subscription": "<string>",
"operation": "<string>",
"item": {},
"price": {},
"quantity": {},
"createdAt": "<string>"
}
'const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
subscription: '<string>',
operation: '<string>',
item: {},
price: {},
quantity: {},
createdAt: '<string>'
})
};
fetch('https://api.upag.io/v1/subscriptions/{subscriptionId}/scheduled-changes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.upag.io/v1/subscriptions/{subscriptionId}/scheduled-changes';
const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
subscription: '<string>',
operation: '<string>',
item: {},
price: {},
quantity: {},
createdAt: '<string>'
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Assinaturas
Mudanças agendadas
Lista as mudanças de itens que serão aplicadas na próxima renovação
GET
https://api.upag.io
/
v1
/
subscriptions
/
{subscriptionId}
/
scheduled-changes
Mudanças agendadas
curl --request GET \
--url https://api.upag.io/v1/subscriptions/{subscriptionId}/scheduled-changes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"subscription": "<string>",
"operation": "<string>",
"item": {},
"price": {},
"quantity": {},
"createdAt": "<string>"
}
'const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
subscription: '<string>',
operation: '<string>',
item: {},
price: {},
quantity: {},
createdAt: '<string>'
})
};
fetch('https://api.upag.io/v1/subscriptions/{subscriptionId}/scheduled-changes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.upag.io/v1/subscriptions/{subscriptionId}/scheduled-changes';
const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
subscription: '<string>',
operation: '<string>',
item: {},
price: {},
quantity: {},
createdAt: '<string>'
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Lista as mudanças de itens pendentes de uma assinatura: as criadas com
A lista não é paginada.
applyAt: "period_end" em Adicionar item, Atualizar item e Remover item. Elas são aplicadas na renovação, antes de a nova fatura ser gerada (veja Próxima fatura), e depois removidas da lista. Para descartar uma, use Cancelar mudança agendada.
Permissão: subscription.read. Apenas chave secreta (sk_…).
Os exemplos usam o sandbox (
https://api.upag.dev/v1). Em produção use https://api.upag.io/v1 com sk_live_….Endpoint
curl https://api.upag.dev/v1/subscriptions/9a3c6e1f-0d58-4b72-a4e9-7c2f8b5d1e36/scheduled-changes \
-H "Authorization: Bearer sk_test_your_api_key"
import { Upag } from 'upag';
const upag = new Upag('sk_test_your_api_key');
const { data, count } = await upag.subscriptions.listScheduledChanges(
'9a3c6e1f-0d58-4b72-a4e9-7c2f8b5d1e36',
);
Parâmetros
string (uuid)
required
ID da assinatura.
Resposta
200 OK
Response
{
"data": [
{
"id": "6e3b9d07-1c52-4a84-b0f6-9d2a7c4e1b58",
"subscription": "9a3c6e1f-0d58-4b72-a4e9-7c2f8b5d1e36",
"operation": "add",
"item": null,
"price": "b2e7a05c-9d41-4c38-8f6a-1e0d5c3b7a92",
"quantity": 2,
"createdAt": "2026-10-12T14:20:00.000Z"
},
{
"id": "2b7d4f91-8e06-4c53-a1d8-5f3c9e0a6b72",
"subscription": "9a3c6e1f-0d58-4b72-a4e9-7c2f8b5d1e36",
"operation": "update",
"item": "c6d2f9a4-7e18-4b35-9a60-3f1e8d5b2c07",
"price": null,
"quantity": 3,
"createdAt": "2026-10-12T14:25:00.000Z"
}
],
"count": 2
}
Atributos
string
UUID da mudança.
string
UUID da assinatura.
string
add, update ou remove.string | null
UUID do item afetado.
null em add, pois o item ainda não existe.string | null
UUID do preço a adicionar (
add) ou o novo preço (update). null em remove, ou em update que só muda a quantidade.integer | null
Quantidade a adicionar (
add) ou a nova quantidade (update). null em remove, ou em update que só muda o preço.string
ISO 8601 do agendamento.
Erros
| Status | Código | Quando |
|---|---|---|
404 | SUBSCRIPTION_NOT_FOUND | A assinatura não existe ou é de outra conta |