Desfazer a troca de plano agendada
curl --request DELETE \
--url https://api.sandbox.z2pay.com/v1/subscriptions/{id}/change-plan \
--header 'x-api-key: <api-key>'const options = {method: 'DELETE', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sandbox.z2pay.com/v1/subscriptions/{id}/change-plan', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.z2pay.com/v1/subscriptions/{id}/change-plan"
headers = {"x-api-key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text){
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Subscription not found"
}
}{
"error": "A request with this idempotency key is already being processed"
}{
"error": "Idempotency key already used with a different request body"
}Troca de plano
Desfazer a troca de plano agendada
Apaga uma troca de plano marcada para a virada do ciclo, mantendo a assinatura no plano atual.
DELETE
/
subscriptions
/
{id}
/
change-plan
Desfazer a troca de plano agendada
curl --request DELETE \
--url https://api.sandbox.z2pay.com/v1/subscriptions/{id}/change-plan \
--header 'x-api-key: <api-key>'const options = {method: 'DELETE', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sandbox.z2pay.com/v1/subscriptions/{id}/change-plan', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.z2pay.com/v1/subscriptions/{id}/change-plan"
headers = {"x-api-key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text){
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Subscription not found"
}
}{
"error": "A request with this idempotency key is already being processed"
}{
"error": "Idempotency key already used with a different request body"
}DELETE /subscriptions/:id/change-plan
Faz parte do recurso Assinaturas — o conceito e os dez estados estão lá.
Apaga uma troca de plano marcada para a virada do ciclo. A assinatura continua no plano atual, e a próxima fatura sai com o preço vigente. A resposta é a assinatura atualizada.
Como saber se há o que desfazer. O campo
scheduledPlanChange da assinatura traz { planId, effectiveDate } enquanto existir troca marcada, e null quando não existir. Ele vem no GET /subscriptions/{id} e no corpo desta rota — é por ele que se confirma que a chamada fez efeito.Sem agendamento, a rota responde
200 do mesmo jeito. Desfazer duas vezes tem o mesmo efeito de desfazer uma vez, e não é preciso consultar antes.Troca que já entrou em vigor não volta por aqui. Esta rota alcança apenas o que está agendado. Quando a troca já valeu — o caso de um plano mais caro, que passa a valer na hora —, o caminho de volta é uma nova troca para o plano anterior, com as regras normais: sendo ela um rebaixamento, será agendada para a virada.