Assinaturas
Cancelar Item
Remove um item da assinatura sem cancelar a assinatura inteira.
Envie apenas old.itemId — não informe o campo new. A ausência de new indica cancelamento de item.
Case de uso:
Como SaaS, quero remover um add-on da assinatura do cliente mantendo o plano principal ativo.
PATCH
/v1/subscriptions/:subscriptionIdBase URL Produção:
https://api.validapay.com.brBase URL Sandbox:
https://sandbox.validapay.com.brAuthorizations
bearer
Authorization
string · header · required
Cabeçalho de autenticação Bearer no formato Bearer {{token}} onde {{token}} é o seu token OAuth2.
Escopos requeridos
subscriptions/write
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| subscriptionId | string | Required | ID da assinatura (ex: sub_xxx) - required |
Body
application/json
Content-Type:application/json
{
"old": {
"itemId": "item_xxx"
}
}Schema
oldobjectRequiredconst url = 'https://sandbox.validapay.com.br/v1/subscriptions/:subscriptionId';
const options = {
method: 'PATCH',
headers: {
'Authorization': 'Bearer {{token}}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"old": {
"itemId": "item_xxx"
}
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Response Examples
200200
{
"success": true,
"type": "ITEM_CANCELED",
"itemId": "item_xxx"
}400400
{
"error": {
"message": "old.itemId é obrigatório",
"code": "MISSING_ITEM_ID",
"details": null,
"timestamp": "2026-07-14T21:39:36.322Z"
}
}404404
{
"error": {
"message": "Item não encontrado",
"code": "ITEM_NOT_FOUND",
"details": null,
"timestamp": "2026-07-14T21:39:36.322Z"
}
}