Las suscripciones permiten crear los pagos de acuerdo con un programa. La siguiente guía detalla las posibilidades que ofrecen y la mejor manera de implementarlas a través de la API.
Creación de una suscripción
Para crear una suscripción para un cliente, se necesitan los siguientes campos:
amount
: cantidad en peniques (GBP), centavos (AUD/EUR), öre (SEK) u øre (DKK).
currency:
el código de divisa ISO 4217. En la actualidad las únicas admitidas son GBP, EUR, SEK, AUD y DKK.
interval_unit:
la unidad de tiempo entre fechas de cargo del cliente. Las opciones son weekly, monthly o yearly.
links[mandate]:
identificador del mandato del cliente para el cual la suscripción creará pagos.
Además de estos campos, se pueden enviar los siguientes parámetros opcionales:
name:
nombre opcional de la suscripción, que también establecerá la descripción de cada pago.
interval:
la cantidad de interval_units entre cada fecha de cargo. Debe suponer, como mínimo, un cargo al año. Si no se especifica, se asigna un valor predeterminado de 1.
count:
la cantidad total de pagos que se van a aceptar por la suscripción.
day_of_month:
el día del mes (entre el 1 y el 28) en el que deseas que se efectúe el cargo al cliente. También puedes utilizar -1 para indicar el último día del mes.
month:
el nombre del mes en el que se efectúa el cargo al cliente.
start_date:
la fecha en la que se debe cargar el primer pago. Esta fecha debe estar dentro del plazo de un año desde la creación de la suscripción, y en la fecha next_possible_charge_date
del mandato o en una fecha posterior. Si no se incluye este parámetro, el primer pago se cargará lo antes posible.
payment_reference:
este parámetro está restringido únicamente a cuentas Pro. Una referencia de pago opcional que se establecerá para todos los pagos y que aparecerá en el extracto bancario del cliente.
Especificación de la periodicidad
Al especificar la periodicidad, se aplican las normas siguientes:
- El primer pago debe cargarse en el lapso de un año.
- Cuando no están presentes ni month ni
day_of_month
, la suscripción se repetirá desde la fechastart_date
de acuerdo con el valor del campointerval_unit
. - Si month o
day_of_month
están presentes, las normas de periodicidad se aplicarán desde la fecha start_date, y se aplican las siguientes validaciones:
|
|
|
---|---|---|
yearly |
opcional (obligatorio si se proporciona day_of_month) |
opcional (obligatorio si se proporciona month) |
monthly |
no válido |
obligatorio |
weekly |
no válido |
no válido |
Ejemplos:
|
|
|
|
|
---|---|---|---|---|
yearly |
1 |
january |
-1 |
válido |
yearly |
1 |
march |
no válido - falta
|
|
monthly |
6 |
12 |
válido |
|
monthly |
6 |
august |
12 |
no válido -
|
weekly |
2 |
válido |
||
weekly |
2 |
october |
10 |
no válido -
|
Pagos puntuales
En algunos casos, es posible que desees cobrar una tarifa única además de la suscripción, como, por ejemplo, una tarifa de configuración
Para ello, solo tienes que enviar una solicitud para crear un pago único al mismo tiempo que creas la suscripción.
Realización de cambios a una suscripción existente
Para ajustar la cantidad de una suscripción, por ejemplo, para aplicar un descuento durante x meses, puedes utilizar el extremo Actualizar suscripción. Aquí tienes un ejemplo:
Para asegurarte de que la cantidad se actualice en el momento correcto, es posible que tengas que realizar un seguimiento y almacenar el número de pagos creados por una suscripción mediante el uso de extremos de webhooks o eventos.
Desafortunadamente, no es posible actualizar la fecha de cargo de una suscripción. Para ello, tendrás que cancelar la suscripción existente y crear una nueva con las fechas de facturación actualizadas.
Gestión de eventos relacionados con suscripciones
Si utilizas extremos de webhooks o eventos para actualizar tu propio sistema, deberás tener en cuenta los siguientes eventos relacionados con suscripciones.
Cuando se cree un pago a través de una suscripción, recibirás dos webhooks que lo indican. Uno en el que el ResourceType es pagos y otro en el que es suscripciones:
Si no almacenas ninguna información por tu parte, puedes volver a enlazar a la suscripción asociada con el pago mediante las siguientes llamadas a la API:
Haz una solicitud al extremo de pago mediante el identificador del pago.
Dentro de la respuesta, busca el campo links[subscription]
, que contiene el identificador de la suscripción correspondiente.
A continuación, puedes enviar una solicitud al extremo de suscripción con el identificador de suscripción para encontrar la información relativa a la suscripción.
Alternativas a las suscripciones
Las suscripciones no siempre pueden brindar la solución perfecta para cada integrador. Por lo tanto, si necesitas funcionalidad adicional, te recomendamos que consideres implementar tu propia lógica de suscripción mediante el extremo de pago.