# Table of Contents - [¡Bienvenid@ a Reveniu! 👋 | Reveniu - API Docs](#-bienvenid-a-reveniu-reveniu-api-docs) - [Cómo integrar Reveniu | Reveniu - API Docs](#c-mo-integrar-reveniu-reveniu-api-docs) - [Cómo empezar | Reveniu - API Docs](#c-mo-empezar-reveniu-api-docs) - [Cómo crear un plan de pagos | Reveniu - API Docs](#c-mo-crear-un-plan-de-pagos-reveniu-api-docs) - [Autenticación | Reveniu - API Docs](#autenticaci-n-reveniu-api-docs) - [Cómo suscribir clientes a un plan ya creado | Reveniu - API Docs](#c-mo-suscribir-clientes-a-un-plan-ya-creado-reveniu-api-docs) - [Ambiente Sandbox | Reveniu - API Docs](#ambiente-sandbox-reveniu-api-docs) - [Suscripciones y cobros únicos | Reveniu - API Docs](#suscripciones-y-cobros-nicos-reveniu-api-docs) - [Variables | Reveniu - API Docs](#variables-reveniu-api-docs) - [Webhooks | Reveniu - API Docs](#webhooks-reveniu-api-docs) - [Planes | Reveniu - API Docs](#planes-reveniu-api-docs) - [Email Protection | Cloudflare](#email-protection-cloudflare) --- # ¡Bienvenid@ a Reveniu! 👋 | Reveniu - API Docs El éxito de tu negocio depende de la solidez del producto, su propuesta de valor para los clientes, y de tu capacidad de cobrar bien. Con la **API** **Reveniu** puedes gestionar el cobro de suscripciones y pagos recurrentes de la forma más rápida y _ad hoc_ al modelo de cobros de tu negocio para que aumentes tu "_speed to market_" (cuando tu equipo es pequeño y requiere elegir sus batallas para crecer) o para cuando necesitas enfocarte en el producto, en vez de gastar dinero y energía en procesar cobros de suscripciones, pagos recurrentes y lidiar con problemas de información de cobros y clientes. ### [hashtag](https://docs.reveniu.com/#por-que-usar-reveniu) Por qué usar Reveniu **Gastar tiempo y esfuerzo en crear y mantener un sistema de pagos propio no es la mejor estrategia en la mayoría de los casos.** Por eso es preferible usar una plataforma - como la nuestra - especializada en gestionar el proceso 360 de manejo de suscripciones, cobros, notificaciones y datos de clientes y planes, a la que delegar este problema, mientras tú te ocupas de lo que hace a tu negocio un _negocio_ 🎉. La **API Reveniu** está diseñada para ahorrarte dolores de cabeza y para que puedas cobrar y administrar suscripciones, pagos recurrentes y clientes de forma clara en tu aplicación, de forma programática. **Reveniu** **encapsula toda la lógica de registros, devoluciones, cobros recurrentes y maneja todo desde un único API simple de usar.** Adicionalmente te ofrece una vista completa donde puedes manejar tus pagos (si por ejemplo no deseas crear una vista interna de clientes, planes y suscripciones en tu propio sistema) y no debes pasar por pruebas de certificación, seguridad, etc, porque el proceso de pago se encuentra ya validado dentro de **Reveniu.** ### [hashtag](https://docs.reveniu.com/#id-3a2a) El API REST de Reveniu 👀 A través de un sencillo API [Restarrow-up-right](https://en.wikipedia.org/wiki/Representational_state_transfer) ⚡️, **Reveniu** te permite integrar el sistema de suscripciones de tu servicio o negocio y cobrar recurrentemente a las tarjetas de tus clientes, mientras puedes actualizar el estatus de pago y tomar decisiones al respecto (ejemplo: deseas cancelar el acceso a tu sistema si la suscripción expira) en tiempo real, ### [hashtag](https://docs.reveniu.com/#b75e) ¿Qué casos de uso puedes implementar en Reveniu? 1. Integrar el proceso de pagos únicos o recurrentes directamente en tu sistema, iniciándolo en tu propio sitio o aplicación y regresando al sitio que configures. 2. Tomar decisiones de negocio relacionadas al estatus de pago de una suscripción. 3. Activar procesos (ej. envío, acceso a servicios) dependiendo de la respuesta de un pago. 4. Básicamente, usar la API para cualquier proceso que tenga que ver con cobrarle a tus clientes. **Reveniu** provee un ambiente _sandbox_ para que puedas desarrollar tu integración y probarla sin riesgos. Sólo tienes que crear [una cuenta en dicho ambientearrow-up-right](https://sandbox.reveniu.com/) y generar tu clave secreta. Una vez que esté lista tu integración, debes generar una nueva clave desde la cuenta de producción en tu negocio y apuntar los servicios a los correctos. ![](https://docs.reveniu.com/~gitbook/image?url=https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F1*XYb5tU68GrrqaLOi9h_LAQ.jpeg&width=768&dpr=3&quality=100&sign=d14a1934&sv=2) API Key Reveniu ### [hashtag](https://docs.reveniu.com/#id-1358) Alcance de esta versión (en constante actualización) Para esta versión nos enfocamos en hacer un API muy liviano, que te permitirá: 1. Integrar el proceso de compra de tu cliente con la mínima presencia de Reveniu y aumentar el protagonismo de tu marca. 2. Los procesos de éxito y fracaso pueden ser capturados en las páginas que tú decidas. 3. A través de _webhooks_ tu sistema será notificado de diferentes eventos ocurridos a las suscripciones de tu comercio: suscripciones creadas, pagos exitosos, pagos fallidos, recuperaciones, etc. ### [hashtag](https://docs.reveniu.com/#id-1d1f) Límites Para el uso del API Rest, tienes un límite de **hasta 100 peticiones** por minuto. ### [hashtag](https://docs.reveniu.com/#queremos-tu-feedback) Queremos tu feedback Si tienes dudas, propuestas de mejoras o quieres solicitar nuevas funcionalidades, escríbenos a [\[email protected\]envelope](https://docs.reveniu.com/cdn-cgi/l/email-protection#dfbbbaa9bab3b0afbaadac9fadbaa9bab1b6aaf1bcb0b2) . Respondemos de una. [NextCómo integrar Reveniuchevron-right](https://docs.reveniu.com/api/como-se-puede-integrar-reveniu) Last updated 2 years ago Was this helpful? * [Por qué usar Reveniu](https://docs.reveniu.com/#por-que-usar-reveniu) * [El API REST de Reveniu 👀](https://docs.reveniu.com/#id-3a2a) * [¿Qué casos de uso puedes implementar en Reveniu?](https://docs.reveniu.com/#b75e) * [Alcance de esta versión (en constante actualización)](https://docs.reveniu.com/#id-1358) * [Límites](https://docs.reveniu.com/#id-1d1f) * [Queremos tu feedback](https://docs.reveniu.com/#queremos-tu-feedback) Was this helpful? --- # Cómo integrar Reveniu | Reveniu - API Docs **Reveniu** funciona como una interfaz entre el medio de pago y tu comercio, por lo que puedes generar planes de pago y suscripciones a esos planes desde tu sitio web o aplicación usando nuestro API. Manejamos planes recurrentes (suscripciones con cobro repetidos, registrando la tarjeta del cliente UNA SOLA VEZ y luego disparando los cobros según el calendario de pagos establecido ) y planes de cobros únicos (el cliente debe registrar su medio de pago cada vez que se genere una compra) **Reveniu** se encargará de procesar los pagos y notificar los resultados a tu sistema usando [webhooks](https://docs.reveniu.com/api-recursos/webhooks) . ### [hashtag](https://docs.reveniu.com/api/como-se-puede-integrar-reveniu#suscripciones) Suscripciones Los cobros de suscripciones o cobros recurrentes funcionan bajo una lógica de "tokenizar" el medio de pago del cliente, de forma que sólo se debe registrar el medio de pago una única vez. Luego Reveniu puede disparar los pagos según el calendario de pagos que defina el plan al cual está suscrito el cliente, sin que este tenga que estar presente para aprobarlo En general, un proceso completo de suscripción, desde la creación de un plan de pagos hasta el registro de un cliente, funciona de la siguiente manera: ![](https://docs.reveniu.com/~gitbook/image?url=https%3A%2F%2F408942797-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-Md2bsFrSCZ1dEDAztfe%252F-Mht9upsOAQS7CijXKQw%252F-MhtHvDAyFhtVoA8sO8O%252FScreen%2520Shot%25202021-08-24%2520at%25201.46.44%2520PM.png%3Falt%3Dmedia%26token%3Dd9edbdf3-9f00-4638-b4a2-0ef0a2107341&width=768&dpr=3&quality=100&sign=1a18dddc&sv=2) ### [hashtag](https://docs.reveniu.com/api/como-se-puede-integrar-reveniu#pagos-unicos) Pagos únicos Los cobros puntuales son los pagos únicos normales a los que estamos acostumbrados, en donde el cliente debe registrar su tarjeta y en general estar presente frente a la pantalla de su dispositivo cada vez que se realice una compra. En Reveniu estamos enfocados en cobros recurrentes, pero aún así nuestro sistema soporta pagos únicos. El proceso actual funciona de la siguiente forma: ![](https://docs.reveniu.com/~gitbook/image?url=https%3A%2F%2F408942797-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-Md2bsFrSCZ1dEDAztfe%252F-Mht9upsOAQS7CijXKQw%252F-MhtK9vZKHk4eAoqsOlc%252FScreen%2520Shot%25202021-08-24%2520at%25202.02.58%2520PM.png%3Falt%3Dmedia%26token%3D0381f959-15ac-443a-9518-cf3e6978ed60&width=768&dpr=3&quality=100&sign=f4d51eaa&sv=2) ### [hashtag](https://docs.reveniu.com/api/como-se-puede-integrar-reveniu#creando-un-plan-de-pagos) Creando un plan de pagos El plan de pagos dictará las reglas con las que se generan las suscripciones. Los planes pueden ser mensuales, trimestrales, semestrales o anuales. Puedes ver mas detalles en la sección de [Planes](https://docs.reveniu.com/api-recursos/planes) #### [hashtag](https://docs.reveniu.com/api/como-se-puede-integrar-reveniu#suscribiendo-un-cliente-a-un-plan-de-pagos) Suscribiendo un cliente a un plan de pagos Una vez que tengas el id de tu plan de pagos, puedes usarlo para generar suscripciones. **Ten en cuenta que no necesitas crear un plan por cada cliente**: Puedes por ejemplo crear un plan mensual de CLP $12.000 y suscribir a este todos los clientes que desees. Puedes saber mas de cómo crear, listar y manejar tus suscripciones en [esta sección](https://docs.reveniu.com/api-recursos/suscripciones) . [Previous¡Bienvenid@ a Reveniu! 👋chevron-left](https://docs.reveniu.com/) [NextCómo empezarchevron-right](https://docs.reveniu.com/api/como-empezar) Last updated 4 years ago Was this helpful? * [Suscripciones](https://docs.reveniu.com/api/como-se-puede-integrar-reveniu#suscripciones) * [Pagos únicos](https://docs.reveniu.com/api/como-se-puede-integrar-reveniu#pagos-unicos) * [Creando un plan de pagos](https://docs.reveniu.com/api/como-se-puede-integrar-reveniu#creando-un-plan-de-pagos) Was this helpful? --- # Cómo empezar | Reveniu - API Docs ### [hashtag](https://docs.reveniu.com/api/como-empezar#ambiente-sandbox) Ambiente Sandbox * Tenemos disponible para ti un ambiente que te permitirá probar tu integración. Crea tu cuenta como comercio en: circle-info **La cuenta que registres en sandbox puede hacerse con cualquier correo, independientemente de la cuenta que tienes en producción. Sólo la vas a usar para probar la integración en un ambiente de sandbox, simular pagos, probar los webhooks, etc. Incluso puedes usar tu correo personal para generarla.** [**https://sandbox.reveniu.com**arrow-up-right](https://sandbox.reveniu.com/) * Deberás generar tu **API secret** para este ambiente, y apuntar tu url de API a: [**https://integration.reveniu.com**arrow-up-right](https://integration.reveniu.com/) En este ambiente puedes usar los siguientes [datos](https://docs.reveniu.com/api-recursos/ambiente-sandbox#datos-de-tarjetas-de-prueba-para-ambiente-sandbox) de pago para probar tus integraciones ### [hashtag](https://docs.reveniu.com/api/como-empezar#conectar-con-produccion) Conectar con producción * Una vez que completes tu integración, puedes pasarla a producción con el **SECRET-KEY** productivo que creaste en el paso [Obtener tu api key](https://docs.reveniu.com/api/autenticacion#obtener-tu-api-key) y apuntando tu servicio al siguiente url: [**https://production.reveniu.com**arrow-up-right](https://production.reveniu.com/) ### [hashtag](https://docs.reveniu.com/api/como-empezar#limites-de-uso) Límites de uso * El API tiene una política de _throttling_ definida. Actualmente es de **100 peticiones por minuto.** En caso de exceder la cuota, la respuesta por defecto será: Copy { "detail": "Request was throttled. Expected available in X second.", "status_code": 429 } [PreviousCómo integrar Reveniuchevron-left](https://docs.reveniu.com/api/como-se-puede-integrar-reveniu) [NextAutenticaciónchevron-right](https://docs.reveniu.com/api/autenticacion) Last updated 4 years ago Was this helpful? * [Ambiente Sandbox](https://docs.reveniu.com/api/como-empezar#ambiente-sandbox) * [Conectar con producción](https://docs.reveniu.com/api/como-empezar#conectar-con-produccion) * [Límites de uso](https://docs.reveniu.com/api/como-empezar#limites-de-uso) Was this helpful? --- # Cómo crear un plan de pagos | Reveniu - API Docs Para poder suscribir un cliente, primero debes crear un plan de pagos. Al crearlo, puedes almacenar el identificador del plan en tu sistema, para luego suscribir todos los clientes que desees. Puedes obtener información del método para generar planes [aquÍ](https://docs.reveniu.com/api-recursos/planes#crear-un-plan) . ![](https://docs.reveniu.com/~gitbook/image?url=https%3A%2F%2F408942797-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-Md2bsFrSCZ1dEDAztfe%252F-MhtLQ-DEN14dQyxQxvd%252F-MhtNOPsEFXPbWodDHKf%252FScreen%2520Shot%25202021-08-24%2520at%25202.15.39%2520PM.png%3Falt%3Dmedia%26token%3De1492119-85a4-4a2e-930f-8573e719dc2c&width=768&dpr=3&quality=100&sign=65cded1f&sv=2) [PreviousAutenticaciónchevron-left](https://docs.reveniu.com/api/autenticacion) [NextCómo suscribir clientes a un plan ya creadochevron-right](https://docs.reveniu.com/api/como-suscribir-clientes-a-un-plan-ya-creado) Last updated 4 years ago Was this helpful? Was this helpful? --- # Autenticación | Reveniu - API Docs ### [hashtag](https://docs.reveniu.com/api/autenticacion#obtener-tu-api-key) Obtener tu API Key Puedes obtener tu **API SECRET** ingresando en la sección API del área de configuración de cuenta dentro de tu panel de Reveniu. ### [hashtag](https://docs.reveniu.com/api/autenticacion#hacer-y-recibir-informacion-de-forma-segura-con-el-api) Hacer y recibir información de forma segura con el API Todas las peticiones que hagas al API deben contener en los headers tu secret: Ejemplo: Copy curl https://api.reveniu.com/api/v1/.... -H "Reveniu-Secret-Key: AJF1aks1353jef235" \ Adicionalmente, todos los webhooks que recibas tendrán la misma variable en el header, de forma que puedas verificar el origen del envío y estar seguro que sólo estas recibiendo posts de alguien con tu secret **Desde luego, debes mantener tu secret a buen resguardo. Nunca lo almacenes en variables de estado que luego puedan ser públicamente vista en github, por ejemplo** [PreviousCómo empezarchevron-left](https://docs.reveniu.com/api/como-empezar) [NextCómo crear un plan de pagoschevron-right](https://docs.reveniu.com/api/como-crear-un-plan-de-pagos) Last updated 3 years ago Was this helpful? * [Obtener tu API Key](https://docs.reveniu.com/api/autenticacion#obtener-tu-api-key) * [Hacer y recibir información de forma segura con el API](https://docs.reveniu.com/api/autenticacion#hacer-y-recibir-informacion-de-forma-segura-con-el-api) Was this helpful? --- # Cómo suscribir clientes a un plan ya creado | Reveniu - API Docs Si ya tienes el **ID del Plan**, puedes suscribir cuantos clientes desees al mismo. El proceso es inicialmente el mismo si el plan es de suscripción o cobro recurrente o de cobro único. La diferencia será el flujo que el cliente verá al registrar su tarjeta. Al final, **Reveniu** devolverá a tu cliente a la página de éxito o fracaso que definiste cuando creaste el plan. Puedes tener detalles sobre el método para iniciar un proceso de registro de una suscripción [aquí](https://docs.reveniu.com/api-recursos/suscripciones#crear-una-suscripcion) . ![](https://docs.reveniu.com/~gitbook/image?url=https%3A%2F%2F408942797-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-Md2bsFrSCZ1dEDAztfe%252F-MhtLQ-DEN14dQyxQxvd%252F-MhtPKHi87PxXJqlUgqZ%252FScreen%2520Shot%25202021-08-24%2520at%25202.25.22%2520PM.png%3Falt%3Dmedia%26token%3D52fdd8c2-0e47-44da-b096-18791d31ee93&width=768&dpr=3&quality=100&sign=6c5e54e8&sv=2) Una vez que tengas el "token" de transacción y el url del "gateway", deberás redirigir al cliente desde tu sistema. Tienes más detalles de cómo hacerlo [aquí](https://docs.reveniu.com/api-recursos/suscripciones#crear-una-suscripcion) . **Es importante que almacenes el ID de la suscripción que acaba de crear,** porque luego podrás verificar el pago de la misma mediante "webhooks" o usando tu mismo los servicios del API para solicitar [detalles de una suscripción](https://docs.reveniu.com/api-recursos/suscripciones#devuelve-los-detalles-de-una-suscripcion) . Una vez que el cliente sea dirigido al "gateway" y termine el proceso con su banco, el proceso continuará como sigue: ![](https://docs.reveniu.com/~gitbook/image?url=https%3A%2F%2F408942797-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-Md2bsFrSCZ1dEDAztfe%252F-MhtLQ-DEN14dQyxQxvd%252F-MhtQsD65LTDLbLZ07Wy%252FScreen%2520Shot%25202021-08-24%2520at%25202.32.24%2520PM.png%3Falt%3Dmedia%26token%3Ddd1032d2-e323-436a-a1a9-8547505e51a2&width=768&dpr=3&quality=100&sign=9e065430&sv=2) ### [hashtag](https://docs.reveniu.com/api/como-suscribir-clientes-a-un-plan-ya-creado#como-te-enteraras-de-que-se-pudo-realizar-el-pago) ¿Cómo te enterarás de que se pudo realizar el pago? Tanto el proceso de suscripción o pago recurrente como el de pago único, culminan reenviando al cliente hacia tu página de éxito o fracaso. Esto no debería contar como una "venta real". Deberás esperar a recibir el "webhook" de pago realizado con el identificador de la suscripción. En la sección [webhooks](https://docs.reveniu.com/api-recursos/webhooks) verás todos los eventos que puedes recibir. Una vez que recibas la confirmación de que el proceso fue culminado y que le pago fue realizado, puedes implementar la lógica que desees en tu sistema: Entregar el producto, dar acceso a un cliente a tu servicio, etc. [PreviousCómo crear un plan de pagoschevron-left](https://docs.reveniu.com/api/como-crear-un-plan-de-pagos) [NextPlaneschevron-right](https://docs.reveniu.com/api-recursos/planes) Last updated 4 years ago Was this helpful? Was this helpful? --- # Ambiente Sandbox | Reveniu - API Docs ### [hashtag](https://docs.reveniu.com/api-recursos/ambiente-sandbox#urls-para-integracion) Urls para integración Para realizar la integración en un ambiente Sandbox, debes crear una cuenta con un correo cualquiera en el siguiente site [**https://sandbox.reveniu.com**arrow-up-right](https://sandbox.reveniu.com/) Deberás generar tu api secret para este ambiente, y apuntar tu url de api a: [**https://integration.reveniu.com**arrow-up-right](https://integration.reveniu.com/) ### [hashtag](https://docs.reveniu.com/api-recursos/ambiente-sandbox#datos-de-tarjetas-de-prueba-para-ambiente-sandbox) Datos de Tarjetas de prueba para ambiente Sandbox #### [hashtag](https://docs.reveniu.com/api-recursos/ambiente-sandbox#tarjetas-de-prueba-credito) TARJETAS DE PRUEBA CRÉDITO * PAN: 4051885600446623 FECHA EXP: Cualquiera superior al día de hoy CVV: 123 _(Genera transacciones Exitosas)_ * PAN: 5186059559590568 FECHA EXP: Cualquiera superior al día de hoy CVV: 123 _(Genera transacciones Fallidas)_ #### [hashtag](https://docs.reveniu.com/api-recursos/ambiente-sandbox#tarjetas-de-prueba-debito) TARJETAS DE PRUEBA DÉBITO * Redcompra 4051884239937763 _genera transacciones aprobadas (para operaciones que permiten débito Redcompra y prepago)_ * _R_edcompra 5186008541233829 genera transacciones rechazadas (para operaciones que permiten débito Redcompra y prepago) **Al ingresar a transbank, se debe usar el siguiente RUT y clave: 11.111.111-1 / 123** [PreviousVariableschevron-left](https://docs.reveniu.com/api-recursos/variables) Last updated 4 years ago Was this helpful? * [Urls para integración](https://docs.reveniu.com/api-recursos/ambiente-sandbox#urls-para-integracion) * [Datos de Tarjetas de prueba para ambiente Sandbox](https://docs.reveniu.com/api-recursos/ambiente-sandbox#datos-de-tarjetas-de-prueba-para-ambiente-sandbox) Was this helpful? --- # Suscripciones y cobros únicos | Reveniu - API Docs La diferencia principal es que las suscripciones recurrentes permiten el cobro al cliente varias veces con un solo registro de su tarjeta: El cliente registra su método de pago una sola vez y Reveniu se encarga de cobrar automáticamente en las fechas indicadas por su intervalo. Los cobros únicos solo se crean para procesar el pago UNA sola vez al cliente. Si el plan al que estás asociando a tu cliente es de pago único, sólo recibirás la confirmación del pago al final del proceso, pero si deseas cobrar un monto adicional el cliente deberá ingresar de nuevo sus datos e iniciar el proceso nuevamente. [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#ciclo-de-vida) Ciclo de vida ----------------------------------------------------------------------------------------------- ### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#cobro-unico) Cobro único 1. Se genera un cobro único al momento de iniciar el checkout 2. Se intenta automáticamente un cobro, recibiendo del gateway la respuesta del pago respectivo 3. Se registra el resultado del pago, con el estatus definido. 4. Los cobros únicos no pueden ser reintentados, renovados o actualizados ### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#suscripcion) Suscripción Una suscripción es un modelo dinámico, y puede tener diferentes estados durante su proceso de vida. Típicamente una suscripción está asociada a un número de pagos exitosos que debe completar antes de renovarse o declararse expirada. Si tiene una duración indefinida, la suscripción seguirá cobrando en su intervalo definido hasta que sea cancelada por ti o por el cliente. Puedes ver el detalle de los estatus de una transacción en [Status de una suscripción](https://docs.reveniu.com/api-recursos/variables#status-de-una-suscripcion) 1. Al inicio del checkout, la suscripción será creada con un status automático "Abandonada". 2. Cuando el cliente complete el checkout el estatus de la suscripción se actualizará a "No iniciada" en caso de que el registro sea exitoso. 3. En el transcurso de 10 minutos se intentará el 1er pago de dicha subscripción y se actualizará su status: 1. Si el pago es exitoso, su status cambiará a "On time". Se resta 1 de los intentos de pago del total de pagos y se programa la próxima fecha de pago tomando en cuenta la fecha del pago exitoso y el intervalo configurado para la suscripción. Ejemplo, si es una suscripción mensual, se programará para el mismo día del mes siguiente. 2. Si el pago es fallido, su status cambiará a "Failed 1 time" y se programará un intento de pago para el siguiente día calendario. 1. La suscripción realizará hasta 4 intentos totales de pago, pasando su estado a: 1. Failed 1 time 2. Failed 2 time 3. Failed 3 time 4. Failed 2. Si la suscripción llega a su estado Failed, no realizará mas cobros. Podrá ser reactivada si el cliente actualiza los datos de su tarjeta o si el comercio inicia un ciclo de recuperación. 4. Al culminar su número de pagos programados, la suscripción verificará si debe ser o no renovada. De ser renovada mantendrá su estatus "On time". Si no, llegará al status ¨Expired¨ circle-info El proceso de cobro de suscripciones recién creadas se inicia cada diez minutos según el reloj del sistema. Este funciona como una "estación de tren": Cada diez minutos serán cobradas todas las suscripciones que se encuentren en estado "No iniciada" (o "Free Trial" en caso de que tengas esa opción activa en tu plan) y la fecha de cobro coincida con el día actual. **Esto implica que una suscripción en "No iniciada" puede tardar de 0 segundos a 10 minutos en ser cobrada por primera vez**, todo dependiendo de cuándo fue registrada y cuándo el robot de cobros se ejecute. Luego de ser intentado el primer cobro, una suscripción nunca volverá al estado de **No iniciada,** independientemente del resultado exitoso o fallido de dicho primer intento de cobro. ### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#sobre-los-urls-de-suscripciones-y-cobros-unicos) Sobre los urls de Suscripciones y Cobros únicos En ambos casos, internamente se crea un modelo Suscripción, por lo que manejarás siempre el mismo url api/v1/subscriptions/ . No existen en esta versión los endpoints del tipo api/v1/onetime\_payment, por ejemplo. [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#objeto-suscripcion) Objeto Suscripción --------------------------------------------------------------------------------------------------------- Objeto JSON ATRIBUTO TIPO DESCRIPCION interval integer Intervalo de cobro de la suscripción ([Ver variables](https://docs.reveniu.com/api-recursos/variables#intervalos-de-un-plan-suscripcion) ) status integer Estatus actual de la suscripción ([Ver variables](https://docs.reveniu.com/api-recursos/variables#status-de-una-suscripcion) ) cicles integer Número de ciclos de cobro que debe completar un suscripción antes de terminarse o renovarse. Si se trata de un link de cobro indefinido y auto renovable siempre aparecerá como 1 remaining\_cicles integer Número de ciclos de cobro que le faltan por cobrar a la suscripción. trial\_cicles integer Número de meses de prueba gratis que quieres agregar a un plan mensual. El número debe ser menor estricto al parámetro **cicles** link\_title string Título del plan. link\_description string Descripción del plan. `is_custom_amount` boolean **Falso** Si el plan tiene un monto fijo, **Verdadero** si tiene un monto definido por el cliente al momento del checkout. is\_uf boolean **Verdadero** Sí el cobro es con CLP, **Falso** sí el cobro es con UF. plan\_id integer Identificador del plan al que pertenece la suscripción. `is_auto_renew` boolean **Verdadero** Sí la suscripción se auto renovará cuando `remaining_cicles` sea 0. link\_amount number Monto a cobrar en cada recurrencia. discount object * `rate`(number): Valor a descontar * `is_fixed`(boolean): **Verdadero** si el rate es un monto fijo, **Falso** si rate es un % del total * `has_discount` (boolean): **Verdadero** si el plan tiene un descuento asociado. * `cicles` (integer): Número de veces que se aplica el descuento al momento de ' iniciar el plan. Siempre será 1 si la suscripción es de pago único customer object * `full_name` (string): Nombre del Cliente * `email`(string): email del Cliente last\_payment object * date Fecha del último pago procesado para esta suscripción * status: Es cero si el pago fue exitoso y diferente de cero si es fallido. dte\_type list Códigos de los DTE que puede generar la suscripción (sólo disponible con integración a Open Factura) subscription\_custom\_fields object list Listado de los valores de campos custom que se definan al crear el plan total\_successful\_payments integer Número de pagos **exitosos** procesados con esta suscripción payment\_method object * payment\_method\_type: Visa, Mastercad, AMEX, Redcompra * last\_4\_card\_digits String con los últimos 4 dígitos de la tarjeta asociada external\_id string Si deseas asociar esta suscripción a un identificador arbitrario `{` `"id": 2080,` `"interval": "3",` `"created_on": "2022-11-30T15:14:27.361634Z",` `"status": "1",` `"cicles": 1,` `"remaining_cicles": 1,` `"link_title": "Plan de Prueba",` `"link_description": "",` `"plan_amount": 1000.0,` `"is_uf": false,` `"next_due": "2022-12-30T15:00:00Z",` `"plan_id": 345678,` `"is_auto_renew": false,` `"discount_rate": 0,` `"discount_is_fixed": false,` `"discount_cicles": 0,` `"customer": { "id": 764, "email": "[[email protected]](https://docs.reveniu.com/cdn-cgi/l/email-protection) ", "name": "Kenny Vivas" },` `"last_payment": { "date": "2022-11-30T15:24:45.604953Z", "status": "0" },` `"dte_type": {},` `"subscription_custom_fields": [],` `"total_successful_payments": 1,` `"payment_method": { "last_4_card_digits": "XXXXXXXXXXXX6623", "payment_method_type": "Visa" }` `}` ### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#metodos-disponibles) Métodos disponibles [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#crear-una-suscripcion-o-un-cobro-unico-dependiendo-de-la-frecuencia-definida-por-el-plan-asociado) Crear una suscripción o un cobro único, dependiendo de la frecuencia definida por el plan asociado ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ `POST` `https://integration.reveniu.com/api/v1/subscriptions/` Permite iniciar una suscripción a través del API, evitándole al usuario tener que ingresar su información y permitiendo redirigir desde tu aplicación directamente a la selección de medio de pago. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#headers) Headers Name Type Description Reveniu-Secret-Key string Identificador para acceder al API. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#request-body) Request Body Name Type Description plan\_id integer Identificador único del plan al que corresponderá la suscripción. field\_values object Datos a asociar a la suscripción. extra\_customer\_fields Array Array de objetos **Field** si necesitas agregar campos adicionales que no están en la lista de field\_values pre definidos por Reveniu Cada campo se define como un objeto Field de esta forma: `{` `"name":"El nombre del campo custom",` `"tag_name":"identificador_en_snake_case",` `"content":"El contenido del campo"` `**(Siempre sera un string)**` `}` **¡Los tres elementos del objeto son requeridos!** external\_id integer Puedes generar un id adicional para la suscripción. Esto NO reemplazará al id generado por Reveniu, pero permite reconocer a la suscripción por un identificador adicional. 200 La respuesta incluye el id de la suscripción (que puede ser consultado posteriormente), una URL donde debes dirigir al usuario para que complete la inscripción de su medio de pago. y un token de seguridad necesario para redirigir a tu cliente al formulario de registro de sus datos de pago (requerido en muchos medios de pago). Ejemplo #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#respuesta) Respuesta `{ "id": INTEGER,` `"completion_url": "https://webpay3gint.transbank.cl/webpayserver/bp_multicode_inscription.cgi", "security_token": "01ab49732ee545e5c4644ad4bb8e8b538e58ea604c4b72952946d7c906986531", "status_code": 200 }` La respuesta incluye el **id** de la suscripción (que puede ser consultado posteriormente), una **URL** donde debes dirigir al usuario para que complete la inscripción de su medio de pago. y un **token de seguridad** necesario para redirigir a tu cliente al formulario de registro de sus datos de pago (requerido en muchos medios de pago). Podrás tomar el control final del flujo mediante el `success_url` o el `failure_url` del plan, pero te recomendamos siempre usar el webhook _**subscription\_succeeded**_ para completar en tu backend la operación (pues aún si el navegador del usuario o la conexión del usuario sufre un problema, recibirás el llamado a tu webhook). #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#si-no-estas-usando-webhooks-para-verificar-la-creacion-de-una-suscripcion-cobro-unico) Si no estás usando webhooks para verificar la creación de una suscripción/cobro único Al redireccionar al `success_url` o a `failure_url` que definas en cada link de pago, incluímos un parametro GET id=id\_\_de\_suscripcion. Puedes usar este parámetro para verificar que el id que recibes es en efecto el perteneciente una suscripción creada. Recuerda que al recibir esta redirección es muy probable que la suscripción aún no tenga su primer cobro, por lo que puedes esperar hasta un máximo de 10 minutos para verificar su pago. Consulta la sección [Ciclo de vida de una suscripción](https://docs.reveniu.com/api-recursos/suscripciones#ciclo-de-vida-de-una-suscripcion) para mas detalles. **Uso de external\_id** Si deseas que tu suscripcion tenga un identificador arbitrario que generes desde tu backend, puedes asignarlo. Esto NO ALTERA ni REEMPLAZA al id de la suscripción, pero siempre lo recibirás en la info de los webhooks y los demas servicios del api. No es posible realizar una busqueda por external\_id en los servicios de búsqueda del api. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#como-usar-el-completion_link-para-disparar-el-formulario-de-registro-de-tarjeta-caso-transbank) Cómo usar el _completion\_link_ para disparar el formulario de registro de tarjeta (Caso Transbank) Actualmente estamos usando _Transbank_ como gateway de pagos de forma general en Reveniu. Tanto para los planes de pago único (WebpayPlusMall) como en los casos de pago recurrente (OneClickMall) es necesario redirigir via **POST** a la dirección `completion_url` y el parámetro **TBK\_TOKEN** igual a `security_token` . Dejamos un snippet de ejemplo de cómo hacerlo automáticamente creado un formulario con javascript. Te recomendamos que te asegures de almacenar el parámetro id que identifica a la suscripción, debido a que o bien recibirás por [webhook](https://docs.reveniu.com/api-recursos/webhooks) la notificación de que la suscripción fue activada o bien puedes tu mismo preguntar por el estatus de la suscripción usando el [servicio](https://docs.reveniu.com/api-recursos/suscripciones#devuelve-los-detalles-de-una-suscripcion) que te suministramos al efecto Una vez que tu cliente culmine el proceso de registro será redirigido a la página de éxito o fracaso que definas para cada plan (incluyendo el parámetro `id`\=Id de la suscripción, por GET) De no tener una página definida de éxito o fracaso en el plan que estás usando, Reveniu mostrará sus propias páginas de éxito o fracaso por defecto. Ejemplo (Javascript) [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#listar-todas-las-suscripciones) Listar todas las suscripciones --------------------------------------------------------------------------------------------------------------------------------- `GET` `https://integration.reveniu.com/api/v1/subscriptions/` Entrega la información de todas las suscripciones del comercio. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#query-parameters) Query Parameters Name Type Description plan Int Filtrar por Id de plan date\_start YYYY-m-d Filtrar por fecha de creación (mayor o igual a ) date\_end YYYY-m-d Filtrar por fecha de creación (menor o igual a ) #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#headers-1) Headers Name Type Description Reveniu-Secret-Key\* string Identificador para acceder al API. 200 Devuelve listado de suscripciones del comercio Ejemplo [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#devuelve-los-detalles-de-una-suscripcion) Devuelve los detalles de una suscripción ----------------------------------------------------------------------------------------------------------------------------------------------------- `GET` `https://integration.reveniu.com/api/v1/subscriptions/{id}` Retorna los detalles de la suscripción. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#path-parameters) Path Parameters Name Type Description id integer Identificador único de la suscripción. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#headers-2) Headers Name Type Description Reveniu-Secret-Key\* string Identificador para acceder el API. 200 Devuelve una suscripción. Ejemplo [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#listar-suscripciones-asociadas-a-un-correo-electronico) Listar suscripciones asociadas a un correo electrónico --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `GET` `https://integration.reveniu.com/api/v1/subscriptions/search?email={email}` Devuelve listado de suscripciones asociada a un correo electrónico. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#path-parameters-1) Path Parameters Name Type Description email string Correo electrónico asociado a la suscripción. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#headers-3) Headers Name Type Description Reveniu-Secret-Key\* string Identificador para acceder el API. 200 Retorna el listado de suscripciones asociadas a un correo electrónico Ejemplo [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#devuelve-los-pagos-asociados-a-una-suscripcion) Devuelve los pagos asociados a una suscripción ----------------------------------------------------------------------------------------------------------------------------------------------------------------- `GET` `https://integration.reveniu.com/api/v1/subscriptions/{id}/payments` Retorna los pagos pertenecientes a una suscripción #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#path-parameters-2) Path Parameters Name Type Description id integer Identificador único de la suscripción. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#headers-4) Headers Name Type Description Reveniu-Secret-Key\* string Identificador para acceder el API. 200 Retorna listado de pagos asociados a una suscripción Ejemplo [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#listar-en-orden-cronologico-inverso-todas-las-interacciones-que-ha-tenido-la-suscripcion) Listar en orden cronológico inverso todas las interacciones que ha tenido la suscripción ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `GET` `https://integration.reveniu.com/api/v1/subscriptions/{id}/interactions/` Se incluyen todas las interacciones que no sean transacciones (Ver ejemplo mas abajo). #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#path-parameters-3) Path Parameters Name Type Description \* String Id de la suscripción #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#query-parameters-1) Query Parameters Name Type Description date\_start YYYY-mm-dd Fecha inicial de creación date\_end YYYY-mm-dd Fecha final de creación activity String Código de actividad #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#headers-5) Headers Name Type Description Reveniu-Secret-Key\* String Identificador para acceder el API. 200: OK 404: Not Found #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#codigos-de-interacciones) Códigos de interacciones [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#intenta-recuperar-una-suscripcion-por-su-id) Intenta recuperar una suscripción por su id ----------------------------------------------------------------------------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/v1/subscriptions/reactivate/{id}` Si la suscripción tiene un estado fallido, este método activará su modo de recuperación y cambiará la próxima fecha de cobro a TODAY. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#path-parameters-4) Path Parameters Name Type Description id\* Integer Id de la suscripción #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#headers-6) Headers Name Type Description Reveniu-Secret-Key\* String Identificador para acceder el API. 200: OK 400: Bad Request [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#forzar-la-recuperacion-de-un-listado-de-suscripciones-actualizacion-por-lotes) Forzar la recuperación de un listado de suscripciones (actualización por lotes) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/api/v1/subscriptions/reactivate/` Si se provee un listado de ids de suscripciones pertenecientes al comercio, la actualización se hará por lotes. Permite recuperar hasta 50 suscripciones a la vez. Devuelve en el arreglo _success\_list los ids de las suscripciones que si pudo reactivar, y en failed\__list los ids que presentaron errores #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#query-parameters-2) Query Parameters Name Type Description subs\* Integer \[\] Arreglo de identificadores de suscripción #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#headers-7) Headers Name Type Description Reveniu-Secret-Key\* String Identificador para acceder el API. 200: OK 400: Bad Request [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#extender-los-ciclos-de-cobro-de-una-lista-de-suscripciones) Extender los ciclos de cobro de una lista de suscripciones ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/api/v1/subscriptions/extend/` Se provee un listado de ids de suscripciones pertenecientes al comercio, los ciclos de las suscripciones serán reemplazados por el parámetro _**cicles**_ **Ejemplo:** **Si se envía el parámetro cicles=7, la suscripción pasará a tener 7 ciclos pendientes de pago.** **Fecha de cobro:** En el payload se puede agregar una fecha de cobro por defecto. Si la suscripción a ser extendida tiene una fecha de cobro menor al día actual, se usará esta fecha por defecto como nueva fecha de cobro. Este caso es de utilidad cuando se desea extender suscripciones cuya fecha de cobro ya ha sido cumplida. Si la suscripción extendida se encuentra en estado _**Fallido**_ ó _**Expirado**_, será ajustada a _**Activa**_ Devuelve en el arreglo _success\_list los ids de las suscripciones que si pudo extender, y en failed\__list los ids que presentaron errores #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#request-body-1) Request Body Name Type Description subs\* list Listado de ids de suscripciones fallback\_due\_date String Fecha por defecto en caso de que la suscripción tenga una fecha de cobro caducada. _Formato DD/MM/AAAA_ cicles\* integer Número de ciclos a extender String auto\_renew Boolean Permite marcar a la suscripción como **Auto Renovable** 200: OK 400: Bad Request { "result": true, "success\_changes": \[ ids de cambios exitosos \], "failed\_changes": \[ids de cambios fallidos\] } [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#genera-un-pago-por-un-monto-arbitrario-a-una-suscripcion-activa) Genera un pago por un monto arbitrario a una suscripción activa --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/api/v1/subscriptions/{id}/payments/authorize/` La suscripción debe pertenecer al comercio y encontrarse activa. El perfil del comercio debe tener permisos de plan PRO y sus propias credenciales habilitadas de gateway #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#path-parameters-5) Path Parameters Name Type Description id\* String Id de la suscripción #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#query-parameters-3) Query Parameters Name Type Description amount\* Integer Monto a procesar 200: OK [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#dar-de-baja-una-suscripcion-conociendo-su-id) Dar de baja una suscripción conociendo su id ------------------------------------------------------------------------------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/api/v1/subscriptions/{id}/disable/` #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#path-parameters-6) Path Parameters Name Type Description id\* Integer Identificador de la suscripción 200: OK Suscripción dada de baja 400: Bad Request [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#desactiva-la-renovacion-de-una-suscripcion) Desactiva la renovación de una suscripción --------------------------------------------------------------------------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/api/v1/subscriptions/{Id de sub}/disablerenew/` Permite que la suscripción quede como activa hasta su próxima fecha de cobro programada. En esa próxima fecha la suscripción no se cobrará, sino que será marcada como **Expirada**. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#path-parameters-7) Path Parameters Name Type Description id\* String Id de la suscripción [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#cambiar-el-dia-preferido-de-cobro-de-una-suscripcion) Cambiar el día preferido de cobro de una suscripción ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/api/v1/subscriptions/{Id de sub}/dueday/` Se cambia el día preferido de pago de una suscripción al próximo día calendario. Ejemplo, si hoy es 20 de mayo y deseas cambiarlo a los días 15, se cambiará la próxima fecha programada al 15 de junio y se realizarán los cobros todos los 15 de cada mes a partir de ese momento. #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#request-body-2) Request Body Name Type Description new\_day\* Int Día del mes al que se quiere cambiar la fecha de cobro [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#enviar-a-un-cliente-el-link-para-cambio-de-metodo-de-pago-de-una-suscripcion) Enviar a un cliente el link para cambio de método de pago de una suscripción ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/api/v1/subscriptions/change_method/` Envía un correo con un link para cambiar el método de pago asociado a la suscripción o suscripciones especificadas por id en el arreglo "subs" El link para la renovación de un método de pago tiene la siguiente estructura, en caso de que desees enviarlo por tu cuenta: **URL\_DE\_FRONTEND/renew/ID\_DE\_SUSCRIPCION** Ejemplo, para una suscripción en producción, sería: _**https://app.reveniu.com/renew/ID\_DE\_SUSCRIPCION**_ #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#request-body-3) Request Body Name Type Description subs\* list Lista de ids enteros de las suscripciones a las que se desea enviar el correo 200: OK 400: Bad Request [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#cambiar-el-monto-de-cobro-de-una-suscripcion) Cambiar el monto de cobro de una suscripción ------------------------------------------------------------------------------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/api/v1/subscriptions/{id}/amount/` #### [hashtag](https://docs.reveniu.com/api-recursos/suscripciones#request-body-4) Request Body Name Type Description amount\* Integer Monto al que se desea cambiar la suscripción 200: OK 400: Bad Request [PreviousPlaneschevron-left](https://docs.reveniu.com/api-recursos/planes) [NextWebhookschevron-right](https://docs.reveniu.com/api-recursos/webhooks) Last updated 2 years ago Was this helpful? * [Ciclo de vida](https://docs.reveniu.com/api-recursos/suscripciones#ciclo-de-vida) * [Cobro único](https://docs.reveniu.com/api-recursos/suscripciones#cobro-unico) * [Suscripción](https://docs.reveniu.com/api-recursos/suscripciones#suscripcion) * [Sobre los urls de Suscripciones y Cobros únicos](https://docs.reveniu.com/api-recursos/suscripciones#sobre-los-urls-de-suscripciones-y-cobros-unicos) * [Objeto Suscripción](https://docs.reveniu.com/api-recursos/suscripciones#objeto-suscripcion) * [Métodos disponibles](https://docs.reveniu.com/api-recursos/suscripciones#metodos-disponibles) * [Crear una suscripción o un cobro único, dependiendo de la frecuencia definida por el plan asociado](https://docs.reveniu.com/api-recursos/suscripciones#crear-una-suscripcion-o-un-cobro-unico-dependiendo-de-la-frecuencia-definida-por-el-plan-asociado) * [Listar todas las suscripciones](https://docs.reveniu.com/api-recursos/suscripciones#listar-todas-las-suscripciones) * [Devuelve los detalles de una suscripción](https://docs.reveniu.com/api-recursos/suscripciones#devuelve-los-detalles-de-una-suscripcion) * [Listar suscripciones asociadas a un correo electrónico](https://docs.reveniu.com/api-recursos/suscripciones#listar-suscripciones-asociadas-a-un-correo-electronico) * [Devuelve los pagos asociados a una suscripción](https://docs.reveniu.com/api-recursos/suscripciones#devuelve-los-pagos-asociados-a-una-suscripcion) * [Listar en orden cronológico inverso todas las interacciones que ha tenido la suscripción](https://docs.reveniu.com/api-recursos/suscripciones#listar-en-orden-cronologico-inverso-todas-las-interacciones-que-ha-tenido-la-suscripcion) * [Intenta recuperar una suscripción por su id](https://docs.reveniu.com/api-recursos/suscripciones#intenta-recuperar-una-suscripcion-por-su-id) * [Forzar la recuperación de un listado de suscripciones (actualización por lotes)](https://docs.reveniu.com/api-recursos/suscripciones#forzar-la-recuperacion-de-un-listado-de-suscripciones-actualizacion-por-lotes) * [Extender los ciclos de cobro de una lista de suscripciones](https://docs.reveniu.com/api-recursos/suscripciones#extender-los-ciclos-de-cobro-de-una-lista-de-suscripciones) * [Genera un pago por un monto arbitrario a una suscripción activa](https://docs.reveniu.com/api-recursos/suscripciones#genera-un-pago-por-un-monto-arbitrario-a-una-suscripcion-activa) * [Dar de baja una suscripción conociendo su id](https://docs.reveniu.com/api-recursos/suscripciones#dar-de-baja-una-suscripcion-conociendo-su-id) * [Desactiva la renovación de una suscripción](https://docs.reveniu.com/api-recursos/suscripciones#desactiva-la-renovacion-de-una-suscripcion) * [Cambiar el día preferido de cobro de una suscripción](https://docs.reveniu.com/api-recursos/suscripciones#cambiar-el-dia-preferido-de-cobro-de-una-suscripcion) * [Enviar a un cliente el link para cambio de método de pago de una suscripción](https://docs.reveniu.com/api-recursos/suscripciones#enviar-a-un-cliente-el-link-para-cambio-de-metodo-de-pago-de-una-suscripcion) * [Cambiar el monto de cobro de una suscripción](https://docs.reveniu.com/api-recursos/suscripciones#cambiar-el-monto-de-cobro-de-una-suscripcion) Was this helpful? Copy { "id": 12414, "completion_url": "https://reveniu.com/....", "security_token": "fjgj6d3hrhfh6838whfht5482" } Copy curl https://integration.reveniu.com/api/v1/subscriptions/ \ -H "Reveniu-Secret-Key: your-secret" \ -X POST \ -H "Content-Type: application/json" \ --data '{ "plan_id": 123, "external_id": "IDENTIFICADOR_EXTERNO_1", "field_values": { "email": "[email protected]", "name": "Perico de los Palotes", // Si tu plan es de monto indefinido, debes definir el monto del cobro con este campo "amount": 15000, // Hasta aqui los parámetros obligatorios. Si deseas puedes agregar: "address": "Avenida de los Palotes 123, Palotes, RM, Chile", // Los campos de rut y ent_rut reciben strings, por lo que se puede //agregar el dígito verificador sin problemas y en diferentes formatos "rut": "1111111k", "ent_rut": "1111111-1" //(Rut de empresa) "bday": "26/10/2015", "phone": 1111111, "comuna": 1, "region": 1, "country": 1, "rsocial": "Razon social", "comments": "Comentarios" } // Si deseas agregar campos adicionales aparte de los listados en el objeto field_values // (como, 'color de ojos' o 'talla de camisa', lo que necesites!) // Debes agregar el siguiente array (al mismo nivel de "field_values") de objetos, llamado // "extra_customer_fields" "extra_customer_fields": [\ {\ "name":"El nombre de primer campo custom",\ "tag_name":"identificador_en_snake_case",\ "content":"El contenido del campo" (Siempre sera un string)\ },\ {\ "name":"El nombre de otro campo custom",\ "tag_name":"identificador_del_otro_campo_en_snake_case",\ "content":"El contenido del otro campo" (Recuerda, los valores SIEMPRE seran strings)\ }\ ], ... }' Copy var form = document.createElement('form'); form.method = 'POST'; form.action = data.**completion_url**; form.target = '_self'; var input = document.createElement('input'); input.id = 'TBK_TOKEN'; input.name = 'TBK_TOKEN'; input.type = 'hidden'; input.value = data.**security_token**; form.appendChild(input); document.body.appendChild(form); form.submit(); Copy [\ "data": [\ {\ "id": 195,\ "status": "10",\ "interval": "3"\ },\ ...\ ]\ \ Copy\ \ curl https://integration.reveniu.com/api/v1/subscriptions/ \\ -H "Reveniu-Secret-Key: your-secret"\ \ Copy\ \ {\ "id":12414,\ "status":1,\ "cicles":10,\ "remaining_cicles":5,\ "next_due": "2023-04-07T15:00:00Z",\ "created_on": "2022-11-07T15:44:31.694097Z",\ "trial_cicles":1,\ "link_title":"Plan Mensual Especial",\ "link_description":"Acceso a nuestros servicios",\ "is_custom_amount":false,\ "is_auto_renew":true,\ "link_amount":10000,\ "is_uf":false,\ "plan_id":101,\ "payment_method": {\ "last_4_card_digits": "XXXXXXXXXXXX6623",\ "payment_method_type": "Visa"\ }\ "discount":{\ "has_discount":true,\ "rate":500,\ "is_fixed":true,\ "cicles":3\ },\ "customer":{\ "full_name":"Rafael Diaz",\ "email":"[email protected]",\ },\ }\ \ Copy\ \ curl https://integration.reveniu.com/api/v1/subscriptions/123 \\ -H "Reveniu-Secret-Key: your-secret"\ \ Copy\ \ [\ {\ "id":12414,\ "status":1,\ "cicles":10,\ "remaining_cicles":5,\ "trial_cicles":1,\ "link_title":"Plan Mensual Especial",\ "link_description":"Acceso a nuestros servicios",\ "is_custom_amount":false,\ "is_auto_renew":true,\ "link_amount":10000,\ "is_uf":false,\ "plan_id":101,\ "discount":{\ "has_discount":true,\ "rate":500,\ "is_fixed":true,\ "cicles":3\ },\ "customer":{\ "full_name":"Rafael Diaz",\ "email":"[email protected]",\ },\ }\ ...\ ]\ \ Copy\ \ curl https://integration.reveniu.com/api/v1/subscriptions/[email protected] \\ -H "Reveniu-Secret-Key: your-secret"\ \ Copy\ \ [\ {\ id: 220,\ payments:[{\ buy_order: 20200420220,\ issued_on: "2020-04-20T23:55:14.981934Z",\ amount: 1000,\ credit_card_type: "VD",\ is_recurrent: false, \ subscription: 175,\ gateway_response: "0"}\ ...\ ]\ },\ \ ]\ \ Copy\ \ curl https://integration.reveniu.com/api/v1/subscriptions/{id}/payments \\ -H "Reveniu-Secret-Key: your-secret"\ \ Copy\ \ // El parámetro by_staff_member será 1 \ // si es una interacción realizada por el comercio\ [\ {\ "created_on": "2023-03-22T19:30:41.394240Z",\ "activity_type": "6",\ "activity_type_human": "Dada de baja",\ "by_staff_member": 1\ },\ {\ "created_on": "2021-06-05T00:08:15.135394Z",\ "activity_type": "6",\ "activity_type_human": "Dada de baja",\ "by_staff_member": 0\ },\ {\ "created_on": "2021-06-02T00:09:24.889103Z",\ "activity_type": "6",\ "activity_type_human": "Dada de baja",\ "by_staff_member": 0\ },\ {\ "created_on": "2021-05-31T15:53:49.242206Z",\ "activity_type": "6",\ "activity_type_human": "Dada de baja",\ "by_staff_member": 0\ },\ {\ "created_on": "2021-05-31T15:43:49.401711Z",\ "activity_type": "6",\ "activity_type_human": "Dada de baja",\ "by_staff_member": 0\ }\ ]\ \ Copy\ \ {\ "error": "Object does not exists",\ "status_code": 404\ }\ \ Copy\ \ ('1', 'Nueva Suscripcion'),\ ('2', 'Abandono'),\ ('6', 'Dada de baja'),\ ('7', 'Recuperada'),\ ('10', 'Cancelada por el Cliente'),\ ('11', 'Cambio de metodo'),\ ('12', 'Recuperada por CC'),\ ('13', 'No autorenovar por CC'),\ ('14', 'Expirada'),\ ('15', 'Suscripcion Impaga'),\ ('16', 'Cambio de monto'),\ ('17', 'Suscripción pasa a monto personalizado'),\ ('18', 'Cambio de fecha de cobro'),\ ('19', 'Aplicado descuento de recuperacion')\ \ Copy\ \ {\ "result": true\ }\ \ Copy\ \ {\ "error": "Bad request",\ "status_code": 400\ }\ \ Copy\ \ {\ "result": true,\ "success_changes": [arreglo de ids],\ "failed_changes": [arreglo de ids]\ }}\ \ Copy\ \ {\ "error": "Bad request",\ "status_code": 400\ }\ \ Copy\ \ {\ error: "Bad Request"\ }\ \ Copy\ \ {\ "result": [\ true/false, //Pago exitoso?\ true/false, // Se aplico un descuento en este pago?\ {\ "details": [\ {\ "amount": 175000,\ "status": "AUTHORIZED",\ "authorization_code": "1213",\ "payment_type_code": "VN",\ "response_code": 0,\ "installments_number": 0,\ "commerce_code": "597055555542",\ "buy_order": "202203071500001" //Orden hija \ }\ ],\ "buy_order": "202203071500", //Orden padre\ "card_detail": {\ "card_number": "6623"\ },\ "accounting_date": "0307",\ "transaction_date": "2022-03-07T21:30:36.641Z"\ }\ ],\ "status_code": 200\ }\ \ Copy\ \ {\ 'result':True | False,\ 'sub_id':INTEGER} \ }\ \ Copy\ \ {\ {\ 'result': False\ \ }}\ \ Copy\ \ {\ {'result':True,'success_changes':[120,121,122],'failed_changes':[131,132]}}\ \ Copy\ \ {\ {'error':'Bad request','status_code':400}\ }\ \ Copy\ \ {\ 'result':True,\ 'sub_id':Id de suscripción,\ 'new_amount':Nuevo monto\ }\ \ Copy\ \ {\ 'result':False\ } --- # Variables | Reveniu - API Docs [hashtag](https://docs.reveniu.com/api-recursos/variables#intervalos-de-un-plan-suscripcion) Intervalos de un plan/suscripción ----------------------------------------------------------------------------------------------------------------------------------- Valor Etiqueta "1" One Time "2" Weekly "3" Monthly "4" Yearly "6" Biannualy "7" Quarterly [hashtag](https://docs.reveniu.com/api-recursos/variables#status-de-una-suscripcion) Status de una suscripción ------------------------------------------------------------------------------------------------------------------- Valor Etiqueta "1" On time "2" Failed Attempt 1 "3" Failed Attempt 2 "4" Failed Attempt 3 "5" Failed "6" Not started "7" Reversed "8" Expired "9" Disabled "10" Abandoned "11" Trial "12" Recovering [hashtag](https://docs.reveniu.com/api-recursos/variables#status-de-un-pago) Status de un pago --------------------------------------------------------------------------------------------------- Valor Etiqueta "1" On time "5" Failed "7" Reversed [hashtag](https://docs.reveniu.com/api-recursos/variables#valores-para-tipo-de-metodo-de-pago) Valores para tipo de método de pago --------------------------------------------------------------------------------------------------------------------------------------- Ver referencia en la [documentación de Transbankarrow-up-right](https://www.transbankdevelopers.cl/producto/webpay#tipos-de-pago) Valor Método de pago VD Débito VP Prepago VN Crédito VC Venta en cuotas SI 3 cuotas sin interés S2 2 cuotas sin interés NC N Cuotas sin interés [hashtag](https://docs.reveniu.com/api-recursos/variables#listado-de-monedas) Listado de Monedas ----------------------------------------------------------------------------------------------------- Valor Etiqueta "1" CLP "2" USD [PreviousWebhookschevron-left](https://docs.reveniu.com/api-recursos/webhooks) [NextAmbiente Sandboxchevron-right](https://docs.reveniu.com/api-recursos/ambiente-sandbox) Last updated 2 years ago Was this helpful? * [Intervalos de un plan/suscripción](https://docs.reveniu.com/api-recursos/variables#intervalos-de-un-plan-suscripcion) * [Status de una suscripción](https://docs.reveniu.com/api-recursos/variables#status-de-una-suscripcion) * [Status de un pago](https://docs.reveniu.com/api-recursos/variables#status-de-un-pago) * [Valores para tipo de método de pago](https://docs.reveniu.com/api-recursos/variables#valores-para-tipo-de-metodo-de-pago) * [Listado de Monedas](https://docs.reveniu.com/api-recursos/variables#listado-de-monedas) Was this helpful? --- # Webhooks | Reveniu - API Docs [hashtag](https://docs.reveniu.com/api-recursos/webhooks#seguridad) Seguridad ---------------------------------------------------------------------------------- En el header de todos los webhooks que enviamos, agregamos la variable **Reveniu-Secret-Key**, con el mismo secret key que definiste en tus configuraciones. De esta forma tienes la seguridad de que es Reveniu quien está enviando los eventos. Puedes ver mas información en la sección de Autenticación [hashtag](https://docs.reveniu.com/api-recursos/webhooks#eventos-disponibles) Eventos disponibles ------------------------------------------------------------------------------------------------------ A continuación lista de notificaciones disponibles en los siguientes eventos: * Suscripción activada (`subscription_activated`) * Renovación cancelada (`subscription_renewal_cancelled`) * Suscripción desactivada (`subscription_deactivated`) * Pago realizado ( `subscription_payment_succeeded`) circle-info Si al iniciar un checkout por API incluiste un _**external\_id**_ en el payload, el campo _**subscription\_external\_id**_ estará siempre en las respuestas de webhooks relacionadas a esa suscripción. Si no, el campo siempre aparecerá como _null_ [Mas detalles en arrow-up-right](https://docs.reveniu.com/~/changes/PZnR7vI812y9vCFVj2aA/api-recursos/suscripciones#crear-una-suscripcion-o-un-cobro-unico-dependiendo-de-la-frecuencia-definida-por-el-plan-asociado) la referencia API ### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#suscripcion-activada) Suscripción activada #### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#subscription_activated) `subscription_activated` Evento gatillado cuando una suscripción es exitosamente completada por el usuario (registrando un medio de pago recurrente). Puedes usarlo para habilitar la funcionalidad para ese usuario, enviar los productos o gatillar un correo de bienvenida. Se hará una petición **POST** al url definido por ti en tu panel de administración de API Recuerda en tus webhooks validar que el header `Reveniu-Secret-Key` corresponda a tu secreto. Así evitas que otros que no seamos nosotros inyecten maliciosamente información en tu sistema. Cuerpo del webhook: ### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#renovacion-cancelada) Renovación cancelada #### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#subscription_renewal_cancelled) `subscription_renewal_cancelled` Evento gatillado cuando un usuario o admin cancela la renovación de una suscripción explícitamente. Nota que la suscripción puede seguir activa hasta su fecha de expiración (ej: el usuario pagó un plan anual, pero después de 6 meses decide cancelar la renovación) El evento incluye campos que indican las razones del usuario para cancelar la renovación. Se hará una petición **POST** al url definido por ti en tu panel de administración de API Recuerda en tus webhooks validar que el header `Reveniu-Secret-Key` corresponda a tu secreto. Así evitas que otros que no seamos nosotros inyecten maliciosamente información en tu sistema. Cuerpo del webhook: ### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#suscripcion-desactivada) Suscripción desactivada #### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#subscription_deactivated) `subscription_deactivated` Evento gatillado cuando una suscripción deja de estar activa. Esto puede ocurrir por distintos motivos: * El usuario abandonó la suscripción sin cancelarla explicitamente. El abandono ocurre cuando un medio de pago falla y el usuario después de repetidos avisos no ingresa un nuevo medio de pago. * También ocurre cuando un usuario ha cancelado explicitamente la renovación de la suscripción y el período de la suscripción ya ha concluido. * Y también puede haber sido cancelada explicitamente por el comercio en su panel de gestión y también ha culminado el período de la suscripción previamente pagado. Aún así es posible revivir la suscripción si desde el comercio incentivas al usuario a ingresar un nuevo medio de pago a través de la URL indicada en `reactivate_url`. Se hará una petición **POST** al url definido por ti en tu panel de administración de API Recuerda en tus webhooks validar que el header `Reveniu-Secret-Key` corresponda a tu secreto. Así evitas que otros que no seamos nosotros inyecten maliciosamente información en tu sistema. Cuerpo del webhook: ### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#pago-realizado) Pago realizado #### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#webhook-subscription_payment_succeeded) Webhook: subscription\_payment\_succeeded Evento gatillado cuando se realiza automáticamente el cobro recurrente de una suscripción. Puedes usarlo para marcar que el usuario está al día en sus pagos. Se hará una petición **POST** al url definido por ti en tu panel de administración de API Recuerda en tus webhooks validar que el header `Reveniu-Secret-Key` corresponda a tu secreto. Así evitas que otros que no seamos nosotros inyecten maliciosamente información en tu sistema. Cuerpo del webhook: ### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#pago-rechazado) Pago rechazado #### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#webhook-subscription_payment_in_recovery) Webhook: subscription\_payment\_in\_recovery Evento gatillado cuando un cobro falla pero Reveniu está recuperando automáticamente el problema. Te recomendamos no suspender el servicio durante el período de recuperación. En la mayoría de los casos, nuestro motor de reintentos o la recaptura de un medio de pago resuelve el problema. En caso que el problema no se resuelva, el webhook subscription\_abandoned\_by\_user será gatillado. Se hará una petición **POST** al url definido por ti en tu panel de administración de API Cuerpo del webhook: ### [hashtag](https://docs.reveniu.com/api-recursos/webhooks#ejemplo-recibiendo-webhooks-al-crear-una-suscripcion) Ejemplo: Recibiendo webhooks al crear una suscripción [PreviousSuscripciones y cobros únicoschevron-left](https://docs.reveniu.com/api-recursos/suscripciones) [NextVariableschevron-right](https://docs.reveniu.com/api-recursos/variables) Last updated 2 years ago Was this helpful? * [Seguridad](https://docs.reveniu.com/api-recursos/webhooks#seguridad) * [Eventos disponibles](https://docs.reveniu.com/api-recursos/webhooks#eventos-disponibles) * [Suscripción activada](https://docs.reveniu.com/api-recursos/webhooks#suscripcion-activada) * [Renovación cancelada](https://docs.reveniu.com/api-recursos/webhooks#renovacion-cancelada) * [Suscripción desactivada](https://docs.reveniu.com/api-recursos/webhooks#suscripcion-desactivada) * [Pago realizado](https://docs.reveniu.com/api-recursos/webhooks#pago-realizado) * [Pago rechazado](https://docs.reveniu.com/api-recursos/webhooks#pago-rechazado) * [Ejemplo: Recibiendo webhooks al crear una suscripción](https://docs.reveniu.com/api-recursos/webhooks#ejemplo-recibiendo-webhooks-al-crear-una-suscripcion) Was this helpful? Copy [POST] { "event": "subscription_activated", "data": { "subscription_id":1482, "subscription_external_id":"EXTERNAL ID STRING" | null } } Copy [POST] { "event": "subscription_renewal_cancelled", "data": { "subscription_id": 123, "subscription_external_id":"EXTERNAL ID STRING" | null, "cancelled_by": "user", // podría ser "admin" "cancel_reason": "too_expensive", "feedback": "Pensé que el precio era anual pero ahora vi que era un pago mensual y na que ver poh" ... } } Copy [POST] { "event": "subscription_deactivated", "data": { "subscription_id": 11530, "subscription_external_id":"EXTERNAL ID STRING" | null, } } Copy [POST] { "event": "subscription_payment_succeeded", "data": { "subscription_id":INTEGER, "subscription_external_id":"EXTERNAL ID STRING" | null, "buy_order":INTEGER, "issued_on":"DD/MM/AAAA", "gateway_response":0 (INTEGER), "subscription_external_id": STRING, 'amount': FLOAT } } Copy [POST] { "event": "subscription_payment_in_recovery", "data": { "subscription_id":1482, "subscription_external_id":"EXTERNAL ID STRING" | null, "buy_order":202012121212, "issued_on":"DD/MM/AAAA", "gateway_response":-1|-2|-3|-96 } } --- # Planes | Reveniu - API Docs Los clientes pueden suscribirse a planes, lo que creará automáticamente una nueva suscripción que activará una autorización de pago al comienzo de cada ciclo de facturación. Los clientes también podrán cancelar una suscripción en cualquier momento. Los planes no se pueden eliminar, sin embargo, pueden quedar inactivos, lo que no cancelará las suscripciones actuales, pero evitará que los clientes creen nuevas suscripciones. Las suscripciones creadas a través de un plan se mantendrán independientes del plan que las originó, es decir estas podrán ser modificadas sin afectar dicho plan. _Esto implica también que si modificas un plan, no estarás modificando las suscripciones ya creadas._ [hashtag](https://docs.reveniu.com/api-recursos/planes#endpoints) Endpoints -------------------------------------------------------------------------------- HTTP Copy GET /api/v1/plans/ GET /api/v1/plans/ID POST /api/v1/plans/ [hashtag](https://docs.reveniu.com/api-recursos/planes#objeto-plan) Objeto Plan ------------------------------------------------------------------------------------ Objeto JSON #### [hashtag](https://docs.reveniu.com/api-recursos/planes#undefined-2) ATRIBUTO TIPO DESCRIPCION **id** string Identificador único del objeto. created\_on datetime Fecha en la que se creó el objeto en formato ISO 8601. Basado en UTC. frequency string Determina el período de facturación. Para las suscripciones y cobros recurrentes se creará un nuevo pago en cada período y se solicitará una autorización en el 1er. Período. [Ver lista de opciones.](https://docs.reveniu.com/api-recursos/variables#intervalos-de-un-plan-suscripcion) owner object Un objeto Profile al cual le pertenece el plan active boolean Indica si el plan se encuentra activo slug string Cadena de caracteres utilizada para identificar de manera única al objeto. title string Título o nombre del plan. description string Texto detallando las características del plan. price float Número punto flotante que representa el precio del plan. currency string Código ISO de tres letras para la moneda. [Ver lista de opciones](https://docs.reveniu.com/api-recursos/variables#listado-de-monedas) . is\_custom\_amount boolean Si permite que el monto sea definido al momento del registro custom\_amount\_min integer Minimo monto permitido custom\_amount\_max integer Maximo monto permitido is\_uf boolean Indica si el precio está expresado en Unidad de Fomento (UF). Sólo disponible para Chile. subs\_counter integer total\_cicles integer rut\_field boolean Indica si se solicita el RUT (Rol Único Tributario, identificador de personas naturales y jurídicas en Cchile). Se almacena en el campo custom\_fields conf bday\_field boolean Indica si se solicita la fecha de nacimiento. Se almacena en el campo custom\_fields conf phone\_field boolean Indica si se solicita el teléfono. Se almacena en el campo custom\_fields conf address\_field boolean Indica si se solicita la dirección. Se almacena en el campo custom\_fields conf street\_field boolean Indica si se solicita la calle. Se almacena en el campo custom\_fields conf comuna\_field boolean Indica si se solicita la comuna. Se almacena en el campo custom\_fields conf region\_field boolean Indica si se solicita la región. Se almacena en el campo custom\_fields conf country\_field boolean Indica si se solicita el país. Se almacena en el campo custom\_fields conf rsocial\_field boolean Indica si se solicita la razón social. Se almacena en el campo custom\_fields conf deliverytimeslot\_field boolean comments\_field boolean Indica si se permiten comentarios. Se almacena en el campo custom\_fields conf rut\_enterprise\_field boolean accepting\_new\_enrollments boolean Si el plan acepta nuevos registros accepting\_new\_enrollments\_date datetime Fecha limite para permitir nuevos registros. El formato es _YYYY-MM-DDThh:mm\[:ss\[.uuuuuu\]\]\[+HH:MM|-HH:MM|Z\]._ Ejemplo: **2022-10-13T00:00:00Z** auto\_renew boolean Indica si el plan se renueva automáticamente notify\_termination boolean prefferred\_due\_day integer Indica el día de la obligación de cobro del plan. limited\_stock boolean Si existe un numero limitado de compras permitidas stock\_available integer Cantidad de ventas permitidas trial\_enabled boolean Si hay una prueba gratis trial\_cicles integer Numeor de ciclos con prueba gratis coupon object Un objeto Coupon relaciona con el plan. Ejemplo: "coupon":{ "is\_fixed":true, "code":1, "discount\_rate":50, "discount\_cicles":3, "discount\_use\_limit":0 } success\_message String Mensaje de éxito cuando el cliente culmina su registro redirect\_to Url Si el cliente culmina con exito, redirigir a esta página redirect\_to\_failure Url Si el cliente culmina con error, redirigir a esta página [hashtag](https://docs.reveniu.com/api-recursos/planes#listar-todos-los-planes) Listar todos los planes ------------------------------------------------------------------------------------------------------------ `GET` `https://integration.reveniu.com/api/v1/plans` Devuelve una lista de todos los planes creados anteriormente. Los planes se devuelven en orden y los más recientes aparecen primero. #### [hashtag](https://docs.reveniu.com/api-recursos/planes#headers) Headers Name Type Description Reveniu-Secret-Key string Identificador para acceder al API 200 Devuelve un listado de los planes del comercio Ejemplo [hashtag](https://docs.reveniu.com/api-recursos/planes#ver-el-detalle-de-un-plan-por-su-id) Ver el detalle de un plan por su id ------------------------------------------------------------------------------------------------------------------------------------ `GET` `https://integration.reveniu.com/api/v1/plans/ID` #### [hashtag](https://docs.reveniu.com/api-recursos/planes#query-parameters) Query Parameters Name Type Description \* Integer Id del plan 200: OK Responde un objeto PLAN 400: Bad Request Si el api secret es incorrecto [hashtag](https://docs.reveniu.com/api-recursos/planes#crear-un-plan) Crear un plan ---------------------------------------------------------------------------------------- `POST` `https://integration.reveniu.com/api/v1/plans` #### [hashtag](https://docs.reveniu.com/api-recursos/planes#headers-1) Headers Name Type Description Reveniu-Secret-Key string Identificador para acceder al API #### [hashtag](https://docs.reveniu.com/api-recursos/planes#request-body) Request Body Name Type Description frecuency integer Indica el intervalo de cobro del plan. Ver lista de opciones cicles integer Si es un plan recurrente, se puede definir la duración en ciclos. trial\_cicles integer title string description string is\_custom\_amount integer is\_uf boolean amount number is\_auto\_renew boolean discount object 201 Ejemplo [hashtag](https://docs.reveniu.com/api-recursos/planes#editar-un-plan) Editar un plan ------------------------------------------------------------------------------------------ `PATCH` `https://integration.reveniu.com/api/v1/plans/{id}/` #### [hashtag](https://docs.reveniu.com/api-recursos/planes#path-parameters) Path Parameters Name Type Description id string Identificador único del plan #### [hashtag](https://docs.reveniu.com/api-recursos/planes#headers-2) Headers Name Type Description Reveniu-Secret-Key string Identificador para acceder al API #### [hashtag](https://docs.reveniu.com/api-recursos/planes#request-body-1) Request Body Name Type Description frequency integer Indica el intervalo de cobro del plan. Ver lista de opciones 200 [PreviousCómo suscribir clientes a un plan ya creadochevron-left](https://docs.reveniu.com/api/como-suscribir-clientes-a-un-plan-ya-creado) [NextSuscripciones y cobros únicoschevron-right](https://docs.reveniu.com/api-recursos/suscripciones) Last updated 3 years ago Was this helpful? * [Endpoints](https://docs.reveniu.com/api-recursos/planes#endpoints) * [Objeto Plan](https://docs.reveniu.com/api-recursos/planes#objeto-plan) * [Listar todos los planes](https://docs.reveniu.com/api-recursos/planes#listar-todos-los-planes) * [Ver el detalle de un plan por su id](https://docs.reveniu.com/api-recursos/planes#ver-el-detalle-de-un-plan-por-su-id) * [Crear un plan](https://docs.reveniu.com/api-recursos/planes#crear-un-plan) * [Editar un plan](https://docs.reveniu.com/api-recursos/planes#editar-un-plan) Was this helpful? Copy Copy "data": [\ {\ "id": 172,\ "slug": "AAAASgW9bcQpVn8YalebGXuW6gG8zq",\ "frequency": "3",\ "title": "Pago Cuota Mensual"\ }\ ] Copy curl https://api.reveniu.com/api/v1/plans/ \ -H "Reveniu-Secret-Key: your-secret" Copy { "id": 641, "created_on": "2021-12-07T17:44:15.510683Z", "currency": "1", "subs_counter": 0, "frequency": "3", "slug": "aQKcqse6bFB1ZRTnhJhS98JmWO3YQ31Y", "active": true, "price": 1000, "title": "plan de ejemplo", "description": "", "is_custom_link": true, "is_custom_amount": false, "custom_amount_min": null, "custom_amount_max": null, "total_cicles": 5, "rut_field": false, "phone_field": false, "address_field": false, "street_field": false, "bday_field": false, "comuna_field": false, "region_field": false, "country_field": false, "rsocial_field": false, "deliverytimeslot_field": false, "rut_enterprise_field": false, "success_message": "", "comments_field": false, "redirect_to": "", "redirect_to_failure": "", "is_uf": false, "accepting_new_enrollments": true, "accepting_new_enrollments_date": null, "auto_renew": true, "notify_termination": true, "coupon": null, "prefferred_due_day": null } Copy { // Response } Copy { "id":3450, "link_url": "https://app.reveniu.com/...." } Copy curl https://api.reveniu.com/api/v1/plans/ \ -H "Reveniu-Secret-Key: your-secret" \ -H "Content-Type: application/json" \ -X POST \ --data ' { "frequency":3, "cicles":12, "trial_cicles":10, "title":"Plan Mensual Especial", "description":"Acceso a nuestros servicios", "is_custom_link":true, "price":170000, "auto_renew":true, "prefferred_due_day":18, "redirect_to":"http://successweb.com", "discount_enabled":true, "coupon":{ "is_fixed":true, "code":1, "discount_rate":50, "discount_cicles":3, "discount_use_limit":0 } } ' Copy --- # Email Protection | Cloudflare Please enable cookies. Email Protection ================ You are unable to access this email address docs.reveniu.com ------------------------------------------------------------ The website from which you got to this page is protected by Cloudflare. Email addresses on that page have been hidden in order to keep them from being accessed by malicious bots. **You must enable Javascript in your browser in order to decode the e-mail address**. If you have a website and are interested in protecting it in a similar way, you can [sign up for Cloudflare](https://www.cloudflare.com/sign-up?utm_source=email_protection) . * [How does Cloudflare protect email addresses on website from spammers?](https://developers.cloudflare.com/waf/tools/scrape-shield/email-address-obfuscation/) * [Can I sign up for Cloudflare?](https://developers.cloudflare.com/fundamentals/setup/account/create-account/) Cloudflare Ray ID: **9cce774cfc8e07cc** • Your IP: Click to reveal 54.237.218.47 • Performance & security by [Cloudflare](https://www.cloudflare.com/5xx-error-landing) ---