Cancelar assinatura
curl --request POST \
--url https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel \
--header 'client-id: <api-key>' \
--header 'client-secret: <api-key>'import requests
url = "https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel"
headers = {
"client-id": "<api-key>",
"client-secret": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'client-id': '<api-key>', 'client-secret': '<api-key>'}
};
fetch('https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"client-id: <api-key>",
"client-secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("client-id", "<api-key>")
req.Header.Add("client-secret", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel")
.header("client-id", "<api-key>")
.header("client-secret", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["client-id"] = '<api-key>'
request["client-secret"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"subscription_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subscription_status": "CANCELLED",
"cancellation_reason": "USER_ACTION",
"cancelled_at": "2023-11-07T05:31:56Z"
}Assinaturas
Cancelar assinatura
Cancela uma assinatura.
POST
/
v1
/
subscriptions
/
{subscriptionId}
/
cancel
Cancelar assinatura
curl --request POST \
--url https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel \
--header 'client-id: <api-key>' \
--header 'client-secret: <api-key>'import requests
url = "https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel"
headers = {
"client-id": "<api-key>",
"client-secret": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'client-id': '<api-key>', 'client-secret': '<api-key>'}
};
fetch('https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"client-id: <api-key>",
"client-secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("client-id", "<api-key>")
req.Header.Add("client-secret", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel")
.header("client-id", "<api-key>")
.header("client-secret", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["client-id"] = '<api-key>'
request["client-secret"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"subscription_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subscription_status": "CANCELLED",
"cancellation_reason": "USER_ACTION",
"cancelled_at": "2023-11-07T05:31:56Z"
}Cancela uma assinatura. Use quando o cliente pede para parar de ser cobrado.
A assinatura fica
CANCELLED com cancellation_reason: USER_ACTION. Faturas open passam a void.
Funciona em TRIAL, PENDING, ACTIVE ou PAST_DUE.
Se o cliente já cancelou, a API devolve o mesmo resultado. Se o cancelamento foi por falha de pagamento, responde 409. Se o status não permitir cancelamento, responde 422.
Erros comuns: 401/403 (credenciais ou produto Recorrência), 404 (não encontrada), 409 (já cancelada por falha de pagamento), 422 (status não permite cancelamento).Headers
ID público da credencial do merchant
Secret da credencial do merchant

