Assinaturas

Cancelar Item

Remove um item da assinatura sem cancelar a assinatura inteira.

Envie apenas old.itemIdnã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/:subscriptionId
Base URL Produção:https://api.validapay.com.br
Base URL Sandbox:https://sandbox.validapay.com.br

Authorizations

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

NameTypeRequiredDescription
subscriptionIdstringRequiredID da assinatura (ex: sub_xxx) - required

Body

application/json

Content-Type:application/json
{
  "old": {
    "itemId": "item_xxx"
  }
}

Schema

oldobjectRequired
const 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"
    }
}