Saltar al contenido principal

Planes

Un plan es una plantilla que define los términos de una suscripción, como el precio, la frecuencia de cobro y la duración. Antes de poder crear una suscripción para un cliente, primero debes configurar al menos un plan.


Funcionalidades​

Autenticación y Seguridad

Para acceder a la API, es necesario autenticar cada petición mediante un token, consulta Autenticación.

📌 Crear un plan​

  • URL base: https://api-sandbox.n1co.shop
  • Método: POST
  • Endpoint: /api/v3/Plans
  • Descripción: Crea un nuevo plan de suscripción.
  • Cabeceras necesarias:
  • Content-Type: application/json
  • Authorization: Bearer {your_token}
  • Ejemplo:
{
"name": "Plan Expert Family",
"description": "Plan para 2 estudiantes con acceso completo",
"amount": 499,
"customFields": [
{
"label": "AHORRAS 10 MESES",
"name": "savings_label",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": ""
},
{
"label": "Contenido profesional y actualizado con certificados digitales",
"name": "feature_content_digital",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
},
{
"label": "Certificados físicos para las rutas de aprendizaje profesional",
"name": "feature_physical_certificates",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
},
{
"label": "Acceso a las escuelas de Startups, Inglés y liderazgo",
"name": "feature_special_schools",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
},
{
"label": "Eventos exclusivos como Platzi Conf",
"name": "feature_exclusive_events",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
},
{
"label": "Descarga contenido en la app móvil",
"name": "feature_mobile_download",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
}
],
"billingCycleType": "Year",
"billingCyclesNumber": 1,
"cyclesToBillBeforeAllowCancelation": null,
"termsAndConditions": "Plan anual familiar para 2 estudiantes. Ahorra $589 vs 2 planes mensuales durante 12 meses.",
"subscriberLimit": null,
"enrollmentEndDate": null,
"subscriptionEndDate": null,
"billingDay": null,
"locationId": 578
}

Parámetros de la petición​

ParámetroTipoRequeridoDescripción
namestring✅Nombre del plan de suscripción
descriptionstring✅Descripción del plan de suscripción
amountdecimal✅Precio establecido para el plan de suscripción
customFieldsarray of objects❌Permite configurar campos personalizados para el plan, es opcional
customFields[].labelstring✅Es requerido un valor para cada campo personalizado
customFields[].namestring✅Es requerido un nombre y debe ser único para cada campo personalizado
customFields[].placeholderstring❌Puede usarse para un campo (input)
customFields[].isRequiredboolean❌Puede usarse para un campo (input)
customFields[].isVisibleboolean❌Puede usarse para un campo (input)
customFields[].isEditableboolean❌Puede usarse para un campo (input)
customFields[].defaultValuestring❌Permite asignar un valor predeterminado
billingCycleTypestring✅Tipo de ciclo de facturación: Day, Week, Month, Year
billingCyclesNumberinteger✅Periodicidad de cobro según el billingCycleType (ej: 2 días, 3 meses, 1 año)
cyclesToBillBeforeAllowCancelationinteger❌Número de periodos obligatorios antes de permitir cancelación. Enviar null si no aplica
termsAndConditionsstring❌Permite indicar los términos y condiciones para el plan
subscriberLimitinteger❌Límite de suscriptores para el plan. Enviar null para ilimitado
enrollmentEndDatedatetime❌Fecha límite para aceptar nuevos suscriptores (formato ISO 8601). Después de esta fecha no se aceptarán más suscriptores. Puede ser null
subscriptionEndDatedatetime❌Fecha de finalización de la suscripción (formato ISO 8601). Al llegar a esta fecha, la suscripción se vuelve inactiva y no se realizarán más cobros. Puede ser null
billingDayinteger❌Día específico del mes para realizar el cobro (solo para suscripciones mensuales). Valores: 1-27 o 31. Puede ser null
locationIdinteger✅ID de la sucursal a la cual se asociará el plan. Se obtiene desde Portal → Configuración → Sucursales
Valores de billingCycleType

Los valores aceptados son:

  • Day - Ciclo diario
  • Week - Ciclo semanal
  • Month - Ciclo mensual
  • Year - Ciclo anual
Billing Day

El parámetro billingDay solo aplica cuando billingCycleType es Month. Para otros tipos de ciclo, debe enviarse como null.


📌 Consultar el detalle de un plan​

  • URL base: https://api-sandbox.n1co.shop
  • Método: GET
  • Endpoint: /api/v3/Plans/{planId}
  • Descripción: Obtiene la información de un plan de suscripción.
  • Cabeceras necesarias:
  • Authorization: Bearer {your_token}
  • Ejemplo de respuesta:
{
"planId": 1807,
"name": "Plan Basic 01",
"description": "Plan mensual para 1 estudiante",
"endDate": null,
"cyclesToBillBeforeAllowCancelation": null,
"subscriberLimit": null,
"enrollmentEndDate": null,
"billingCyclesNumber": 1,
"billingCycleType": "Month",
"termsAndConditions": "Cobro mensual recurrente. Puedes cancelar en cualquier momento.",
"activeSubscriptionsCount": 0,
"inactiveSubscriptionsCount": 0,
"paymentLink": {
"created": "2025-11-10T20:12:18.2824468Z",
"code": "OjYjhP8",
"linkUrl": "https://pay.h4b.dev/pl/OjYjhP8",
"expirationDateTime": null,
"amount": 39.0000,
"isActive": true,
"maxSales": null,
"customFields": [
{
"label": "Contenido profesional y actualizado con certificados digitales",
"name": "feature_content_digital",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
},
{
"label": "Certificados físicos para las rutas de aprendizaje profesional",
"name": "feature_physical_certificates",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "not_included"
},
{
"label": "Acceso a las escuelas de Startups, Inglés y liderazgo",
"name": "feature_special_schools",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "not_included"
},
{
"label": "Eventos exclusivos como Platzi Conf",
"name": "feature_exclusive_events",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "not_included"
},
{
"label": "Descarga contenido en la app móvil",
"name": "feature_mobile_download",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "not_included"
}
]
},
"billingDay": 1,
"locationId": 578,
"createdBy": "c8573b9a-88ea-45b6-aef4-4817440f2cc9",
"currencyCode": "USD",
"locale": "es-SV",
"isActive": true
}

📌 Consultar todos los planes creados​

  • URL base: https://api-sandbox.n1co.shop
  • Método: GET
  • Endpoint: /api/v3/Plans/all
  • Descripción: Obtiene el detalle de todos los planes creados.
  • Cabeceras necesarias:
  • Authorization: Bearer {your_token}
  • Ejemplo de respuesta:
[
{
"planId": 1809,
"name": "Plan Expert",
"description": "Plan para 1 estudiante con acceso completo",
"endDate": null,
"cyclesToBillBeforeAllowCancelation": null,
"subscriberLimit": null,
"enrollmentEndDate": null,
"billingCyclesNumber": 1,
"billingCycleType": "Year",
"termsAndConditions": "Plan anual. Ahorra $343 comparado con 12 meses del plan mensual.",
"activeSubscriptionsCount": 0,
"inactiveSubscriptionsCount": 0,
"paymentLink": {
"created": "2025-11-10T20:12:30.7746804Z",
"code": "Awp8s5B",
"linkUrl": "https://pay.h4b.dev/pl/Awp8s5B",
"expirationDateTime": null,
"amount": 249.0000,
"isActive": true,
"maxSales": null,
"customFields": [
{
"label": "AHORRAS 7 MESES",
"name": "savings_label",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": ""
},
{
"label": "Contenido profesional y actualizado con certificados digitales",
"name": "feature_content_digital",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
},
{
"label": "Certificados físicos para las rutas de aprendizaje profesional",
"name": "feature_physical_certificates",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
},
{
"label": "Acceso a las escuelas de Startups, Inglés y liderazgo",
"name": "feature_special_schools",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
},
{
"label": "Eventos exclusivos como Platzi Conf",
"name": "feature_exclusive_events",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
},
{
"label": "Descarga contenido en la app móvil",
"name": "feature_mobile_download",
"placeholder": "",
"isRequired": false,
"isVisible": false,
"isEditable": false,
"defaultValue": "included"
}
]
},
"billingDay": null,
"locationId": 578,
"createdBy": "c8573b9a-88ea-45b6-aef4-4817440f2cc9",
"currencyCode": "USD",
"locale": "es-SV",
"isActive": true
}
]

📌 Consultar las suscripciones de un plan​

  • URL base: https://api-sandbox.n1co.shop
  • Método: GET
  • Endpoint: /api/v3/Plans/{planId}/Subscriptions
  • Descripción: Obtiene la información de todas las suscripciones de un plan.
  • Cabeceras necesarias:
  • Authorization: Bearer {your_token}
  • Ejemplo de respuesta:
[
{
"subscriptionId": 480,
"planId": 1544,
"name": "Plan ePay",
"description": "Descripción de la suscripción ePay",
"created": "2025-10-15T21:36:26.9682946Z",
"amount": 45.9900,
"amountFormatted": "$45.99",
"billingCycle": 1,
"billingCycleType": "Mes",
"currencyCode": "USD",
"locale": "es-SV",
"currentPeriodStart": "2025-10-16T21:36:26.7660968Z",
"currentPeriodEnd": "2025-11-16T21:36:26.7660968Z",
"timezone": "America/El_Salvador",
"subscriptionStatus": "Activa",
"customer": {
"name": "Carlos Dúran",
"email": "carlos.duran@gmail.com",
"phone": "+50364331900",
"paymentMethodName": "TEST 001",
"paymentMethodCardBrand": "visa",
"paymentMethodBin": "400000",
"paymentMethodLastDigits": "2701",
"backupPaymentMethodName": "TEST 002",
"backupPaymentMethodCardBrand": "visa",
"backupPaymentMethodBin": "424242",
"backupPaymentMethodLastDigits": "4242"
}
}
]

📌 Consultar todos los clientes asociados a un plan​

  • URL base: https://api-sandbox.n1co.shop
  • Método: GET
  • Endpoint: /api/v3/Plans/{planId}/customers
  • Descripción: Obtiene todos los clientes de un plan de suscripción.
  • Cabeceras necesarias:
  • Authorization: Bearer {your_token}
  • Ejemplo de respuesta:
[
{
"subscriptionId": 467,
"planId": 576,
"subscriptionStatus": "Inactiva",
"enrollmentDate": "2025-09-04T23:08:49.9261083Z",
"currentPeriodStart": "2025-09-05T23:08:49.6377287Z",
"currentPeriodEnd": "2025-10-05T23:08:49.6377287Z",
"subscriptionOrdersCount": 2,
"customer": {
"name": "Carlos Dúran",
"email": "carlos.duran@gmail.com",
"phone": "+50364331900",
"paymentMethodName": "TEST 001",
"paymentMethodCardBrand": "visa",
"paymentMethodBin": "400000",
"paymentMethodLastDigits": "2701",
"backupPaymentMethodName": "TEST 002",
"backupPaymentMethodCardBrand": "visa",
"backupPaymentMethodBin": "424242",
"backupPaymentMethodLastDigits": "4242"
}
},
{
"subscriptionId": 474,
"planId": 576,
"subscriptionStatus": "Activa",
"enrollmentDate": "2025-09-25T21:41:03.4362415Z",
"currentPeriodStart": "2025-09-26T21:41:03.1469338Z",
"currentPeriodEnd": "2025-10-26T21:41:03.1469338Z",
"subscriptionOrdersCount": 2,
"customer": {
"name": "Sandra Elizabeth Martínez",
"email": "sandra.martinez@gmail.com",
"phone": "+50774331002",
"paymentMethodName": "TEST 003",
"paymentMethodCardBrand": "visa",
"paymentMethodBin": "500000",
"paymentMethodLastDigits": "3001",
"backupPaymentMethodName": "TEST 004",
"backupPaymentMethodCardBrand": "visa",
"backupPaymentMethodBin": "222201",
"backupPaymentMethodLastDigits": "5589"
}
}
]