Skip to main content

Crear un plan de suscripción

En primer lugar, el comercio debe crear uno o varios planes que desee poner a disposición de sus clientes. Estos planes pueden configurarse de manera sencilla a través del portal de Flow o mediante la API, llamando al recurso /plans/create mediante un método POST. El esquema de recurso es del tipo application/x-www-form-urlencoded, que debe ser indicado en el header Content-Type.

Además, Flow permite personalizar cada plan según las necesidades del negocio, definiendo aspectos como la duración, los montos de cobro, la frecuencia de pago y la inclusión de descuentos o períodos de prueba.

apiKey
required
string

apiKey del comercio

planId
required
string

Identificador del Plan. Un texto identificador del Plan, sin espacios, ejemplo: PlanMensual

name
required
string

Nombre del Plan

currency
string

Moneda del Plan, por omisión CLP

amount
required
number

Monto del Plan

interval
required
number

Especifica la frecuencia de cobros (generación de importe)

  • 1 diario
  • 2 semanal
  • 3 mensual
  • 4 anual
interval_count
number

Número de intervalos de frecuencia de cobros, por ejemplo:

  • interval = 2 y interval_count = 2 la frecuancia será quincenal. El valor por omisión es 1.
trial_period_days
number

Número de días de Trial. El valor por omisón es 0.

days_until_due
number

Número de días pasados, después de generar un importe, para considerar el importe vencido. Si no se especifica el valor será 3.

periods_number
number

Número de períodos de duración del plan. Si el plan tiene vencimiento, entonces ingrese aquí el número de periodos de duración del plan

urlCallback
string

URL donde Flow notificará al comercio los pagos efectuados por este plan.

charges_retries_number
number

El número de reintentos de cargo, por omisión Flow utilizará 3

currency_convert_option
any

Si hay conversión de moneda, en qué momento hará la conversión:

  • 1 al pago (default)
  • 2 al importe (invoice)
s
required
string

la firma de los parámetros efectuada con su secretKey

{
  • "apiKey": "string",
  • "planId": "string",
  • "name": "string",
  • "currency": "string",
  • "amount": 0,
  • "interval": 0,
  • "interval_count": 0,
  • "trial_period_days": 0,
  • "days_until_due": 0,
  • "periods_number": 0,
  • "urlCallback": "string",
  • "charges_retries_number": 0,
  • "currency_convert_option": null,
  • "s": "string"
}

Firma de parámetros

Ejemplos de firmado de parámetros en diferentes lenguajes de programación
$secretKey = 'my secret'
$params = array(
'apiKey' => '1F90971E-8276-4715-97FF-2BLG5030EE3B',
'token' => 'AJ089FF5467367'
);
$keys = array_keys($params);
sort($keys);
$toSign = '';
foreach($keys as $key) {
$toSign .= $key . $params[$key];
};
$signature = hash_hmac('sha256', $toSign , $secretKey);

El servicio retorna el objeto plan creado.

planId
string

Identificador del plan

name
string

Nombre del plan

currency
string

Moneda del plan

amount
number

Monto del plan

interval
number

Define la frecuencia de cobro del plan:

  • 1 diaria
  • 2 semanal
  • 3 mesual
  • 4 anual
interval_count
number

Número de intervalos de la frecuencia de cobro del plan, ejemplo: interal = 2 y interval_count = 2 significaría un plan quincenal.

created
string <yyyy-mm-dd hh:mm.ss>

Fecha de creación del plan

trial_period_days
number

Número de días de Trial

days_until_due
number

Número de días pasados, después de generar un importe, para considerar el importe vencido.

periods_number
number

Número de períodos de duración del plan. Si el plan es de término indefinido el valor de periods_number sera 0 (cero)

urlCallback
string <uri>

URL donde Flow notificará al comercio los pagos efectuados por este plan.

charges_retries_number
number

Número de reintentos de cargo, por omisión Flow utilizará 3 reintentos.

currency_convert_option
number

Si hay conversión de moneda, en qué momento hará la conversión:

  • 1 al pago
  • 2 al importe (invoice)
status
number

El estado del plan:

  • 1 activo
  • 0 eliminado
public
number

Si el Plan es de visibilidad pública, es decir, expuestos a otras aplicaciones:

  • 0 privado
  • 1 público
{
  • "planId": "myPlan01",
  • "name": "Plan junior",
  • "currency": "CLP",
  • "amount": 20000,
  • "interval": 3,
  • "interval_count": 1,
  • "created": "2017-07-21 12:33:15",
  • "trial_period_days": 15,
  • "days_until_due": 3,
  • "periods_number": 12,
  • "charges_retries_number": 3,
  • "currency_convert_option": 0,
  • "status": 1,
  • "public": 1
}

Creado el plan lo siguiente es crear al cliente. Crear cliente.