Maneja tus suscripciones

Actualiza los datos de una suscripción, aplica descuentos o cancela los cobros automáticos

Kushki te permite manejar las suscripciones existentes de tus clientes sin necesidad de crearlas nuevamente. Esto te ayudará a mantener el mismo ID de suscripción luego de los cambios. Las acciones más comunes son:

Obtén los datos de una suscripción

Puedes consultar los datos disponibles de una suscripción que ya fue creada para que luego los muestres en pantalla a tus clientes. La información que devolvemos también la puedes guardar en tus bases de datos, no tendrás problemas ya que no te daremos datos sensibles de la tarjeta.

Primero deberás identificar el ID de suscripción que quieres consultar los datos. Luego, realiza una llamada a nuestro endpoint de consulta de suscripciones desde tu backend e incluye el ID de suscripción como path parameter.

  • Javascript
  • Python
  • PHP
var request = require("request");
var options = {
method: 'GET',
headers: [
'Private-Merchant-Id': '0c0b08cd92fc491fb37365170164f7e9', // Reemplaza esto por tu Private Key
'Content-Type': 'application/json'
]
url: 'https://api-uat.kushkipagos.com/subscriptions/v1/card/search/1591842658589000', // Ambiente de prueba
headers: {'content-type': 'application/json'}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
import requests
url = "https://api-uat.kushkipagos.com/subscriptions/v1/card/search/1591842658589000"
payload = {}
headers = {'Content-Type': 'application/json',
'Private-Merchant-Id': '0c0b08cd92fc491fb37365170164f7e9' // Reemplaza esto por tu Private Key
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api-uat.kushkipagos.com/subscriptions/v1/card/search/1591842658589000');
$request->setRequestMethod('GET');
$request->setHeaders(array(
'Private-Merchant-Id' => '0c0b08cd92fc491fb37365170164f7e9', // Reemplaza esto por tu Private Key
'Content-Type' => 'application/json'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();

De acuerdo a la respuesta, muestra en pantalla la información que necesites o guárdala en tus bases de datos.

Actualiza la información de la suscripción

Cuando tienes un cambio en el plan recurrente de tus clientes, puedes actualizar la información de una suscripción que ya está creada sin necesidad de pedir nuevamente los datos de la tarjeta.

Los datos que puedes actualizar son:

  • Nombre del plan
  • Recurrencia con la que se ejecutan los cobros (periodicity)
  • Datos de contacto
  • Monto a cobrar
  • Fecha en la que se cobra (startDate)
  • Fecha de cancelación de la suscripción (endDate)
  • Lógica de reintentos de cobro

Primero deberás identificar el ID de suscripción que quieres actualizar. Luego, realiza una llamada a nuestro endpoint de actualización de suscripciones desde tu backend e incluye el ID de suscripción como path parameter.

Asegúrate de enviar solo la información que necesitas cambiar para que el resto de datos de la suscripción se mantengan. Por ejemplo, cuando uno de tus clientes que tiene el plan Básico de 10 USD mensuales quiere cambiarse al plan Profesional por 35 USD mensuales, solamente deberás enviar el valor y el nombre del nuevo plan en el llamado a nuestro endpoint.

  • Javascript
  • Python
  • PHP
var request = require("request");
var options = {
method: 'PATCH',
headers: [
'Private-Merchant-Id': '0c0b08cd92fc491fb37365170164f7e9', // Reemplaza esto por tu Private Key
'Content-Type': 'application/json'
]
url: 'https://api-uat.kushkipagos.com/subscriptions/v1/card/1591842658589000', // Ambiente de prueba
headers: {'content-type': 'application/json'}
body: {
amount: {subtotalIva: 0, subtotalIva0: 35, ice: 0, iva: 0, currency: 'USD'},
planName: 'Profesional'
},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
import requests
url = "https://api-uat.kushkipagos.com/subscriptions/v1/card/1591842658589000"
payload = "{\"amount\":{\"subtotalIva\":0,\"subtotalIva0\":35,\"ice\":0,\"iva\":0,\"currency\":\"USD\"},\"planName\":\"Profesional\"}"
headers = {'Content-Type': 'application/json',
'Private-Merchant-Id': '0c0b08cd92fc491fb37365170164f7e9' // Reemplaza esto por tu Private Key
}
response = requests.request("PATCH", url, headers=headers, data=payload)
print(response.text)
$client = new http\Client;
$request = new http\Client\Request;
$body = new http\Message\Body;
$body->append('{"amount":{"subtotalIva":0,"subtotalIva0":35,"ice":0,"iva":0,"currency":"USD"},"planName": "Profesional"}');
$request->setRequestUrl('https://api-uat.kushkipagos.com/subscriptions/v1/card/1591842658589000');
$request->setRequestMethod('PATCH');
$request->setHeaders(array(
'Private-Merchant-Id' => '0c0b08cd92fc491fb37365170164f7e9', // Reemplaza esto por tu Private Key
'Content-Type' => 'application/json'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();

De acuerdo a la respuesta, redirecciona al usuario a una página de éxito o fracaso para informar al cliente si la suscripción se actualizó correctamente o si hubo un error.

Aplica un descuento temporal

Kushki te permite ofrecer períodos con descuentos a tus clientes. Una vez que se cumpla el período que especificas, automáticamente cobraremos a la tarjeta el valor original con el que se creó la suscripción.

Primero deberás identificar el ID de suscripción a la que se aplicará el descuento. Luego, realiza una llamada a nuestro endpoint de descuentos temporales en suscripciones desde tu backend e incluye el ID de suscripción como path parameter.

El valor que especifiques será el monto que Kushki cobrará a la tarjeta durante el número de períodos indicado. Por ejemplo, tu cliente inscribió su tarjeta con una suscripción por 30 USD mensuales; para que Kushki cobre 20 USD durante dos meses, envía el monto y el número 2 en la cantidad de períodos.

  • Javascript
  • Python
  • PHP
var request = require("request");
var options = {
method: 'PUT',
headers: [
'Private-Merchant-Id': '0c0b08cd92fc491fb37365170164f7e9', // Reemplaza esto por tu Private Key
'Content-Type': 'application/json'
]
url: 'https://api-uat.kushkipagos.com/subscriptions/v1/card/1591842658589000', // Ambiente de prueba
headers: {'content-type': 'application/json'}
body: {
amount: {subtotalIva: 0, subtotalIva0: 20, ice: 0, iva: 0, currency: 'USD'},
periods: 2
},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
import requests
url = "https://api-uat.kushkipagos.com/subscriptions/v1/card/1591842658589000"
payload = "{\"amount\":{\"subtotalIva\":0,\"subtotalIva0\":20,\"ice\":0,\"iva\":0,\"currency\":\"USD\"},\"periods\":2}"
headers = {'Content-Type': 'application/json',
'Private-Merchant-Id': '0c0b08cd92fc491fb37365170164f7e9' // Reemplaza esto por tu Private Key
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text)
$client = new http\Client;
$request = new http\Client\Request;
$body = new http\Message\Body;
$body->append('{"amount":{"subtotalIva":0,"subtotalIva0":20,"ice":0,"iva":0,"currency":"USD"},"periods":20}');
$request->setRequestUrl('https://api-uat.kushkipagos.com/subscriptions/v1/card/1591842658589000');
$request->setRequestMethod('PUT');
$request->setHeaders(array(
'Private-Merchant-Id' => '0c0b08cd92fc491fb37365170164f7e9', // Reemplaza esto por tu Private Key
'Content-Type' => 'application/json'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();

De acuerdo a la respuesta, redirecciona al usuario a una página de éxito o fracaso para informar al cliente si el descuento se aplicó correctamente o si hubo un error.

Cancela los cobros recurrentes

Cuando tu cliente decida cancelar su suscripción, asegúrate de cancelarla también con Kushki para que los cobros calendarizados ya no se ejecuten. Esta acción es inmediata; una vez que la ejecutes, la suscripción quedará automáticamente cancelada.

Primero deberás identificar el ID de suscripción que quieres cancelar. Luego, realiza una llamada a nuestro endpoint de cancelación de suscripciones desde tu backend e incluye el ID de suscripción como path parameter.

  • Javascript
  • Python
  • PHP
var request = require("request");
var options = {
method: 'DELETE',
headers: [
'Private-Merchant-Id': '0c0b08cd92fc491fb37365170164f7e9', // Reemplaza esto por tu Private Key
'Content-Type': 'application/json'
]
url: 'https://api-uat.kushkipagos.com/subscriptions/v1/card/1591842658589000', // Ambiente de prueba
headers: {'content-type': 'application/json'}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
import requests
url = "https://api-uat.kushkipagos.com/subscriptions/v1/card/1591842658589000"
payload = {}
headers = {'Content-Type': 'application/json',
'Private-Merchant-Id': '0c0b08cd92fc491fb37365170164f7e9' // Reemplaza esto por tu Private Key
}
response = requests.request("DELETE", url, headers=headers, data=payload)
print(response.text)
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api-uat.kushkipagos.com/subscriptions/v1/card/1591842658589000');
$request->setRequestMethod('DELETE');
$request->setHeaders(array(
'Private-Merchant-Id' => '0c0b08cd92fc491fb37365170164f7e9', // Reemplaza esto por tu Private Key
'Content-Type' => 'application/json'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();

De acuerdo a la respuesta, redirecciona al usuario a una página de éxito o fracaso para informar al cliente si la suscripción se canceló correctamente o si hubo un error.