API de Planes
Ver en POSTMAN
Recurso para obtener los planes dados de alta en Increase Pay o crear nuevos planes
Cómo probar
Recuerda usar la Base URL de Sandbox para hacer pruebas:
https://gateway.increase.app/pay-sandbox/public/v1/
URL Producción: https://gateway.increase.app/pay/public/v1/
Recordar siempre enviar en los headers Content-Type: application/json
Crear un plan
POST
https://gateway.increase.app/pay/public/v1/plans
| Parámetro | Tipo | Descripción | Requerido | Permite update | 
|---|---|---|---|---|
| product_id | String | Id del producto asociado | si | no | 
| type | String | Tipo de plan (flat, variableflat, usage, graduated, volume). Ver detalle. | si | no | 
| name | String | Nombre del plan | si | si | 
| duration_cycles | Int | Cantidad de ciclos que durará la suscripción. Número mayor a 0 | si | no | 
| cycle_amount | Int | Cantidad de unidades por cada ciclo. Ej si cycle_unit = 'daily' y cycle_amount = 3, entonces cada ciclo tiene 3 días. Para el ejemplo más común "todos los meses", se utiliza cycle_unit = 'monthly' y cycle_amount = 1. Número mayor a 0 | no | no | 
| cycle_unit | String | Unidad de la cantidad de ciclos (monthly, daily, weekly, yearly) | si | no | 
| country | String | País en ISO 3166-1 alpha-3 | si | no | 
| collect_methods | Object | Objeto de configuración de medios de pago que seran ofrecidos al cliente. Ver detalle. | si | si | 
| automatic_subscription_request_approval | Boolean | Indica si las suscripciones se aprueban automaticamente para este plan o requiere aprobacíon manual | si | no | 
| amount | Float | monto a cobrar para planes flat o volume. Ejemplo: 100.0 | no | si | 
| currency | String | Moneda en formato ISO 4217. Ej: ARS | no | no | 
| tiers | Array | Niveles de precio. Solo para planes graduated y volume. Ver detalle. | no | si | 
| taxes | Array | Impuestos asociados. Ver detalle | no | si | 
| one_time_costs | Array | Costos únicos asociados. Ver detalle | no | si | 
| discounts | Array | Descuentos asociados. Ver detalle | no | si | 
| additional_costs | Array | Costos adicionales asociados. Ver detalle | no | si | 
| external_id | String | Id de tu aplicación. | no | si | 
| success_url | String | URL de exito a la que se redirigirá al customer una vez completado el checkout (https://www.tuempresa.com/gracias). Se le pasarán los siguientes parametros customer_id, subscription_id y payment_method_id | no | si | 
| trial_period_days | Int | Período de prueba expresado en días. Número mayor a 0 | no | si | 
| charge_after_period | Boolean | Indica si debe cobrarse al inicio o al final del período. | no | no | 
| charge_proportional | String | Indica en que momento se factura el cargo proporcional, si se factura junto al siguiente ciclo se debe enviar after_first_period y si se factura al instante debera enviar before_first_period | no | no | 
| grace_period_setting | Int | Número de ciclos incobrables en el cual quiero que la suscripción cambie de estado automáticamente, ya sea a pausada o cancelada. Ejemplo: grace_period_setting = null hace que la feature esté desactivada, es decir, una suscripción activa no cambia de estado a menos que haya intervención manual. grace_period_setting = 2 es lo mismo que decir "a la 2da Invoice en estado uncollectible, quiero que la suscripción deje de estar activa" | no | si | 
| status_after_grace_period | String | Valores posibles: paused, canceled. Default: paused. Estado al cual quiero que la suscripción cambie automaticamente una vez que la cantidad de ciclos incobrables sea igual a grace_period_setting. | no | si | 
| start_day | Int | Indica el dia del mes en que inicia el ciclo de facturacion | no | no | 
| start_hour | Int | Hora del día en que se intentará cobrar el plan. Min: 0, max: 23. Solo aplica si el plan tiene collect_method  del tipo card. | no | no | 
| status | String | Indica si el plan estará habilitado. Valores posibles: enabled, disabled | no | si | 
Tipos de plan
| Parámetro | Tipo | Descripción | 
|---|---|---|
| flat | String | Plan fijo | 
| variableflat | String | Plan variable, en este tipo de plan el amount debera enviarse en 0.0 | 
| usage | String | Plan por unidad | 
| graduated | String | Plan escalonado o escalonado con base. Requiere configurar tiers | 
| volume | String | Plan por volumen | 
Collect methods
El objeto collect_methods admite solo un id por payment_category (card, cbu o ticket).
{
  "card": [{"id": "..."}],
  "cbu": [{"id": "..."}],
  "ticket": []
}
Adicionales
Todos los adicionales discounts, one_time_costs, taxes, additional_costs son de tipo array y admiten multiples ids de cada tipo.
"discounts": [
  {
    "id": "00000000-0000-0000-0000-000000000001"
  }
],
"one_time_costs": [
  {
    "id": "00000000-0000-0000-0000-000000000001"
  }
],
"taxes": [
  {
    "id": "00000000-0000-0000-0000-000000000001"
  }
],
"additional_costs": [
  {
    "id": "00000000-0000-0000-0000-000000000001"
  }
]
Configuración de escalones
El atributo tiers es un array compuesto de objetos tier con los siguientes atributos:
| atributo | Tipo | Descripción | 
|---|---|---|
| minimum | Int | Límite inferior del escalón | 
| maximum | Int | Límite superior del escalón. Puede no especificarse para indicar indicar que no tiene límite | 
| amount_type | per_unit | flat | Tipo de valor del escalón. Indica si los límites deben interpretarse como unidades o un escalón completo | 
| amount | Float | Valor del escalón | 
Ejemplo
"tiers": [
  // De 1 a 10 unidades cuesta 100 por unidad
  {
    minimum: 1,
    maximum: 10,
    amount: 100,
    amount_type: "per_unit"
  },
  // De 11 a 20 unidades cuesta 80 por unidad
  {
    minimum: 11,
    maximum: 20,
    amount: 80,
    amount_type: "per_unit"
  },
  // De 21 unidades en adelante cuesta 75 por unidad
  {
    minimum: 21,
    amount: 75,
    amount_type: "per_unit"
  }
]
Ejemplo
- Request body
 - Response
 
  {
    "name": "New plan cbu",
    "charge_after_period": false,
    "type": "flat",
    "cycle_unit": "monthly",
    "duration_cycles": 3,
    "cycle_amount": 1,
    "amount": "2500",
    "tiers": null,
    "trial_period_days": 10,
    "automatic_subscription_request_approval": true,
    "external_id": "123asd12asd123-as1231-3",
    "success_url": "http://success_url.com",
    "start_day": null,
    "start_month": null,
    "start_hour": 13,
    "status": "enabled",
    "charge_proportional": null,
    "grace_period_setting": null,
    "status_after_grace_period": "paused",
    "currency": "ARS",
    "country": "ARG",
    "product_id": "sdasd123-123123-123sdasd123",
    "taxes": [
      {
        "id": "asdasd-1231asd-11233"
      }
    ],
    "discounts": [
      {
        "id": "asdasd-1231asd-11234"
      }
    ],
    "one_time_costs": [
      {
        "id": "asdasd-1231asd-11235"
      }
    ],
    "additional_costs": [
      {
        "id": "asdasd-1231asd-11235"
      }
    ],
    "collect_methods": {
      "card": [],
      "cbu": [{
          "id": "asdasd-1231asd-112351"
        }],
      "ticket": []
    }
  }
  {
    "id": "0c57bc90-a6dd-4040-b97f-e05d24d2c7a4",
    "name": "test",
    "amount": "0.0",
    "currency": "ARS",
    "cycle_unit": "monthly",
    "duration_cycles": 3,
    "cycle_amount": 1,
    "type": "Volume",
    "country": "argentina",
    "collect_methods": {
      "card": [{...}],
      "cbu": [{...}],
      "ticket": []
    },
    "external_id": null,
    "trial_period_days": 7,
    "tiers": [{...}],
    "discounts": [{...}],
    "one_time_costs": [{...}],
    "taxes": [{...}],
    "charge_after_period": false,
    "product_id": "00000000-0000-0000-0000-000000000001",
    "start_day": 1,
    "status": "enabled",
    "charge_proportional": "after_first_period",
    "automatic_subscription_request_approval": true,
    "grace_period_setting": null,
    "status_after_grace_period": null,
    "checkout_link": "https://pay.increase.app/checkout/8898b790-b8f4-44d0-b2db-10c4a881da63?plan_id=0c57bc90-a6dd-4040-b97f-e05d24d2c7a4&product_id=089859fc-5ed8-49fd-8749-aebcd3168b1d",
    "success_url": "https://increase.app/gracias"
  }
Obtener todos los planes
GET
https://gateway.increase.app/pay/public/v1/plans
Parámetros optativos
| Parámetro | Tipo | Descripción | Requerido | 
|---|---|---|---|
| Page | Integer | Indica la página a obtener resultados. | no | 
| per_page | Integer | Cantidad de resultados por página (Máximo 40). | no | 
| type | String | tipo de suscripción | no | 
| product_id | String | id del producto | no | 
| status | String | Indica si el plan esta hábilitado | no | 
Resoponse
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000001",
      "name": "possimus occaecati",
      "amount": "30.36",
      "currency": "ARS",
      "cycle_unit": "monthly",
      "cycle_amount": 1,
      "type": "flat",
      "country": "Argentina",
      "external_id": null,
      "trial_period_days": 7,
      "tiers": [],
      "discounts": [],
      "one_time_costs": [],
      "taxes": [],
      "charge_after_period": false,
      "product_id": "00000000-0000-0000-0000-000000000001",
      "automatic_subscription_request_approval": true,
      "grace_period_setting": null,
      "status_after_grace_period": null,
      "checkout_link": "https://pay.increase.app/checkout/8898b790-b8f4-44d0-b2db-10c4a881da63?plan_id=0c57bc90-a6dd-4040-b97f-e05d24d2c7a4&product_id=089859fc-5ed8-49fd-8749-aebcd3168b1d",
      "success_url": "https://increase.app/gracias"
    }
  ],
  "current_page": 1,
  "per_page": 20,
  "total_pages": 1,
  "total_elements": 1
}
Obtener un plan específico
GET
https://gateway.increase.app/pay/public/v1/plans/<id>
Parámetros
| Parámetro | Tipo | Descripción | Requerido | 
|---|---|---|---|
| id | String | id del plan | si | 
Response
{
    "id": "d3fbf57a-d67a-49fe-af94-cd3881720935",
    "name": "New plan",
    "amount": "2500.0",
    "currency": "ARS",
    "cycle_unit": "monthly",
    "cycle_amount": 1,
    "type": "flat",
    "country": "ARG",
    "external_id": "41b24ea0-8cf5-48fa-a206-05db619a5231",
    "trial_period_days": 10,
    "tiers": [],
    "charge_after_period": false,
    "product_id": "8e0bda25-c446-48a9-aab0-a9a7adc396fd",
    "start_day": null,
    "charge_proportional": null,
    "grace_period_setting": null,
    "status_after_grace_period": "paused",
    "automatic_subscription_request_approval": true,
    "checkout_link": "https://gateway.increase.app/pay-sandbox/checkout/v1/short_urls/PTtJGF",
    "success_url": "",
    "collect_methods": {
        "cbu": [],
        "card": [{...}],
        "ticket": []
    },
    "locked": false,
    "taxes": [{...}],
    "discounts": [{...}],
    "one_time_costs": [{...}]
}
Actualizar un plan específico
PUT
https://gateway.increase.app/pay/public/v1/plans/<id>
- Request body
 - Response
 
{
  "name": "New plan updated",
  "amount": "2500",
  "external_id": "41b24ea0-8cf5-48fa-a206-05db619a5231",
  "success_url": "http://success.com",
  "status": "enabled",
  "taxes": [
    {
      "id": "41b24ea0-8cf5-48fa-a206-05db619a5232"
    }
  ],
  "discounts": [
    {
      "id": "41b24ea0-8cf5-48fa-a206-05db619a5233"
    }
  ],
  "one_time_costs": [
    {
      "id": "41b24ea0-8cf5-48fa-a206-05db619a5235"
    }
  ],
  "additional_costs": [
    {
      "id": "9d59430f-d37e-4c0d-a1c6-60a771b9324f"
    }
  ],
  "collect_methods": {
    "card": [],
    "cbu": [
      {
        "id": "41b24ea0-8cf5-48fa-a206-05db619a5239"
      }
    ],
    "ticket": []
  },
  "grace_period_setting": null,
  "status_after_grace_period": "paused"
}
  {
    "id": "d3fbf57a-d67a-49fe-af94-cd3881720935",
    "name": "New plan updated",
    "amount": "2500.0",
    "currency": "ARS",
    "cycle_unit": "monthly",
    "cycle_amount": 1,
    "type": "flat",
    "country": "ARG",
    "external_id": "41b24ea0-8cf5-48fa-a206-05db619a5231",
    "trial_period_days": 10,
    "tiers": [],
    "charge_after_period": false,
    "product_id": "8e0bda25-c446-48a9-aab0-a9a7adc396fd",
    "start_day": null,
    "status": "enabled",
    "charge_proportional": null,
    "automatic_subscription_request_approval": true,
    "checkout_link": "https://gateway.increase.app/pay-sandbox/checkout/v1/short_urls/PTtJGF",
    "success_url": "",
    "collect_methods": {
        "cbu": [],
        "card": [{...}],
        "ticket": []
    },
    "locked": true,
    "taxes": [{...}],
    "discounts": [{...}],
    "one_time_costs": [{...}]
  }