Reativar assinatura
curl --request POST \
--url https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/reactivate \
--header 'client-id: <api-key>' \
--header 'client-secret: <api-key>'import requests
url = "https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/reactivate"
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}/reactivate', 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}/reactivate",
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}/reactivate"
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}/reactivate")
.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}/reactivate")
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": "ACTIVE",
"invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Assinaturas
Reativar assinatura
Reativa uma assinatura cancelada.
POST
/
v1
/
subscriptions
/
{subscriptionId}
/
reactivate
Reativar assinatura
curl --request POST \
--url https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/reactivate \
--header 'client-id: <api-key>' \
--header 'client-secret: <api-key>'import requests
url = "https://api.uvvipay.com.br/v1/subscriptions/{subscriptionId}/reactivate"
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}/reactivate', 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}/reactivate",
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}/reactivate"
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}/reactivate")
.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}/reactivate")
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": "ACTIVE",
"invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Reativa uma assinatura que o cliente cancelou (
Erros comuns:
cancellation_reason: USER_ACTION). Se o cancelamento foi por falha de pagamento, a API não reativa.
A resposta traz ACTIVE quando o ciclo ainda vale. Traz PENDING quando há cobrança.
Para cartão e PIX imediato, a API enfileira a cobrança. A cobrança não acontece neste request. A resposta traz pix.qrcode como null. A resposta da reativação não traz o resultado dessa cobrança.
Fatura
No cancelamento, faturasopen passam a void. Na reativação, o que acontece depende da fatura e do ciclo:
- Se a fatura mais recente for
voidedue_atainda estiver no futuro, ela volta aopen. - Se
due_atjá passou ou for nulo, a API responde422(semcodepúblico). A assinatura continuaCANCELLED. - Se não houver fatura
voide o ciclo já venceu, a API cria uma faturaopene a assinatura ficaPENDING. - Se não houver fatura
voide o ciclo ainda vale, a assinatura volta aACTIVE. Ninguém é cobrado agora.
Pix Automático
Se a API retomar o Pix Automático existente, a resposta trazpix_type: "automatic" e pix.qrcode.
Se não for possível retomar, a API responde 422 / UVV154673. A assinatura continua CANCELLED. Nesse caso, crie uma nova assinatura.
{
"code": "UVV154673",
"message": "Nao foi possivel reativar a assinatura Pix Automatico."
}
401/403 (credenciais ou produto Recorrência), 404 (não encontrada), 422 (status inválido, vencimento passado ou Pix Automático).Headers
ID público da credencial do merchant
Secret da credencial do merchant
Path Parameters
Response
Assinatura reativada
Identificador da assinatura reativada.
Status resultante: ACTIVE ou PENDING (se o ciclo estiver vencido).
Available options:
ACTIVE, PENDING, TRIAL, PAST_DUE, CANCELLED Invoice gerada quando a reativação exige nova cobrança. Nulo caso contrário.

