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
namestringNombre del plan de suscripción
descriptionstringDescripción del plan de suscripción
amountdecimalPrecio establecido para el plan de suscripción
customFieldsarray of objectsPermite configurar campos personalizados para el plan, es opcional
customFields[].labelstringEs requerido un valor para cada campo personalizado
customFields[].namestringEs requerido un nombre y debe ser único para cada campo personalizado
customFields[].placeholderstringPuede usarse para un campo (input)
customFields[].isRequiredbooleanPuede usarse para un campo (input)
customFields[].isVisiblebooleanPuede usarse para un campo (input)
customFields[].isEditablebooleanPuede usarse para un campo (input)
customFields[].defaultValuestringPermite asignar un valor predeterminado
billingCycleTypestringTipo de ciclo de facturación: Day, Week, Month, Year
billingCyclesNumberintegerPeriodicidad de cobro según el billingCycleType (ej: 2 días, 3 meses, 1 año)
cyclesToBillBeforeAllowCancelationintegerNúmero de periodos obligatorios antes de permitir cancelación. Enviar null si no aplica
termsAndConditionsstringPermite indicar los términos y condiciones para el plan
subscriberLimitintegerLímite de suscriptores para el plan. Enviar null para ilimitado
enrollmentEndDatedatetimeFecha límite para aceptar nuevos suscriptores (formato ISO 8601). Después de esta fecha no se aceptarán más suscriptores. Puede ser null
subscriptionEndDatedatetimeFecha 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
billingDayintegerDía específico del mes para realizar el cobro (solo para suscripciones mensuales). Valores: 1-27 o 31. Puede ser null
locationIdintegerID 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": "[email protected]",
"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": "[email protected]",
"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": "[email protected]",
"phone": "+50774331002",
"paymentMethodName": "TEST 003",
"paymentMethodCardBrand": "visa",
"paymentMethodBin": "500000",
"paymentMethodLastDigits": "3001",
"backupPaymentMethodName": "TEST 004",
"backupPaymentMethodCardBrand": "visa",
"backupPaymentMethodBin": "222201",
"backupPaymentMethodLastDigits": "5589"
}
}
]