Crear suscripción

Crear suscripción

Consideraciones

Para utilizar el servicio de suscripciones se deben tomar en cuenta las siguiente consideraciones:
  1. Utilizar el servicio en los endpoints:
    1. Sandbox: https://sandbox-merchant.greenpay.me/subscriptions
    2. Producción: https://merchant.greenpay.me/subscriptions
  2. Tener tarjetas registradas (tokenizadas en Greenpay), es decir, contar con tokens de tarjetas disponibles para utilizar. Para conocer cómo crear token de tarjeta visite la sección de artículos Registro de tarjetas.
  3. Tener una cuenta de Sandbox o Producción con Greenpay. Para crear una cuenta de Sandbox puede registrarla en Crear cuenta sandbox y para la cuenta de producción debe haber finalizado el proceso con el equipo de afiliación de Greenpay (afiliacion@greenpay.me) y realizado una revisión técnica con el equipo de soporte de Greenpay (support@greenpay.me).

Pasos para uso del servicio

1. Estructura de los datos

Se debe crear un objeto JSON que tenga la siguiente estructura:





Los parámetros obligatorios para crea un pago recurrente o suscripción son:
  1. secret: String secret provisto por GreenPay.
  2. merchantIdString UUID provisto por GreenPay.
  3. terminalString terminal provisto por GreenPay.
  4. userId: identificador único del usuario a suscribir, este identificador es gestionado por el comercio y no por GreenPay.
  5. description: descripción o  razón de la suscripción.
  6. currency : Tipo de moneda en formato ISO 4217, por ejemplo, CRC para colones, USD para dólares y GTQ  para el Quetzal guatemalteco.
  7. tokens: token de la tarjeta por la cual se aplicarán las rebajas de las suscripciones.
  8. amount: monto de la suscripción, lo que se cobrará en cada recurrencia.
  9. mode: Modo en que se cobrará la suscripción, actualmente solo soporta la opción EVERY
  10. unit: Unidad de tiempo en que se cobrar, actualmente solo soporta la opción MONTH.
  11. every: indica el tiempo establecido para la ejecución de la recurrencia, por ejemplo, si el valor es 1 entonces la recurrencia se ejecutará cada mes.
  12. optional: Son campos  de tipo llave - valor, en el cual el comercio debe enviar información relevante al cliente, nombre, email e identificación.

El valor mínimo del parámetro EVERY es 1, es decir, cada mes. Si se establece un 3 entonces la recurrencia se ejecutará cada 3 meses. 
Además, los cobros de la recurrencia se efectuarán a la media noche.

Otros campos opcionales 
  1. initialPayment: Indica si la suscripción tiene un pago inicial.
    1. amount: monto del pago inicial
    2. description: descripción del pago inicial.
  2. startDate : Fecha de inicio de la suscripción, este campo es de tipo timestamp
  3. endDate: Fecha en que finaliza la suscripción, este campo es de tipo timestamp.
Si la suscripción se crea sin el parámetro startDate entonces el primer cobró se realizará de una vez.  

2. Enviar la solicitud de suscripción

Se debe enviar una solicitud HTTP de tipo POST al endpoint de suscripciones con el objeto JSON que contiene los datos de la suscripción. Una vez se procesa la solicitud con éxito, se obtiene un objeto de tipo JSON como respuesta.

Si se envió la solicitud con un pago inicial entonces la respuesta obtenida será como la siguiente:



{
    "status": 200,
    "subscriptionId": "c0e6009a015df5f9600c2062b41b0a81",
    "result": {
        "success": true,
        "initialPayment": {
            "orderId": "c0e6009a015df5f9600c2062b41b0a81_0",
            "authorization": "533793",
            "errors": []
        }
    },
    "errors": [],
    "_signature": "711b...6544fvy",
    "nextPaymentDate": "2018-10-12"
}



Si la solicitud se envió sin pago inicial la respuesta será como la siguiente:


{
    "status": 200,
    "subscriptionId": "f82d93dc794470f7deef4ed3ed4afe1c",
    "result": {},
    "errors": [],
    "_signature": "6a7d2f00600598.....4400a52c9a3897a31b",
    "nextPaymentDate": "2018-10-12"
}



A continuación, se muestra un ejemplo en javascript del envío de la solicitud al endpoint de suscripciones. 

var req = unirest("POST", "https://sandbox-merchant.greenpay.me/subscriptions");
var data = {

"secret": "ZjAzZWZhOGU2Nm.....2ZjAxYTk1NGQ4MzE0NTE4ZTU0NjcyNTQ2OTA=",
"merchantId": "d4967653-3c5d-4abe-bde5-b1414a6c890d",
"terminal": "Terminal-BNCR-Colones",
"userId": "Guide example",
"description": "subscription guide example",
"currency": "USD",
"tokens": [
"968212cb-7481-414c-a504-ccaf76696d08"
],
"initialPayment": {
"amount": 100,
"description": "Guide initial payment"
},
"subscription": [{
"startDate": 1536991200000,
"endDate": 1544853600000,
"amount": 10,
"cadence": {
"mode": "EVERY",
"unit": "MONTH",
"every": 1
}
}]
}
req.headers({
"cache-control": "no-cache",
"Content-Type": "application/json"
});

req.type("json");
req.send(data);
req.end(function(res) {

if (res.error) throw new Error(res.error);
console.log(res.body);
});




    • Related Articles

    • Cancelar suscripción

      Para este servicio se debe consumir el siguiente endpoint: https://sandbox-merchant.greenpay.me/subscriptions/cancel A continuación, se muestra el paso a paso para cancelar una suscripción en nuestro API de forma exitosa: 1. Crear el objeto JSON a ...
    • Crear productos

      Consideraciones Para utilizar la funcionalidad de suscripciones debe considerar lo siguiente: El comercio debe estar habilitado, si esta deshabilitado no podrá ingresar y utilizar la funcionalidades del dashboard. Si desconoce el estado de su ...
    • Crear cliente

      Consideraciones Para utilizar la funcionalidad de link de pago debe considerar lo siguiente: El comercio debe estar habilitado, si esta deshabilitado no podrá ingresar y utilizar la funcionalidades del dashboard. Si desconoce el estado de su comercio ...
    • Crear link de cobro

      Consideraciones Para utilizar la funcionalidad de suscripciones debe considerar lo siguiente: El comercio debe estar habilitado, si esta deshabilitado no podrá ingresar y utilizar la funcionalidades del dashboard. Si desconoce el estado de su ...
    • Crear orden de tokenización

      Consideraciones Una orden de tokenización se crea para indicar al API de Greenpay que se creará un token a partir de los datos de una tarjeta de crédito o débito. Para esto se debe tener las siguientes consideraciones: Endpoints para crear la orden ...