Assinaturas
Cancelar Assinatura
Cancela uma assinatura ativa, interrompendo todas as cobranças futuras. Rota recomendada para cancelamento (preferir em relação ao PATCH com action: "cancel").
A assinatura é marcada como CANCELED imediatamente. Ciclos futuros pendentes (PENDING, AWAITING_PAYMENT) são cancelados.
O campo reason é opcional e pode ser usado para registrar o motivo do cancelamento.
Case de uso:
Como SaaS, quero cancelar a assinatura de um cliente que solicitou encerramento do serviço.
DELETE
/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
{
"reason": "Cliente solicitou"
}Schema
reasonstringOptionalMotivo do cancelamento
const url = 'https://sandbox.validapay.com.br/v1/subscriptions/:subscriptionId';
const options = {
method: 'DELETE',
headers: {
'Authorization': 'Bearer {{token}}'
},
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Response Examples
200200
{
"success": true,
"message": "Assinatura cancelada com sucesso",
"status": "CANCELED",
"canceledCycles": 2
}400400
{
"error": {
"message": "Assinatura já está cancelada",
"code": "SUBSCRIPTION_ALREADY_CANCELED",
"details": null,
"timestamp": "2026-07-14T21:39:36.322Z"
}
}404404
{
"error": {
"message": "Assinatura não encontrada",
"code": "SUBSCRIPTION_NOT_FOUND",
"details": null,
"timestamp": "2026-07-14T21:39:36.322Z"
}
}