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/jsonAuthorization: Bearer {your_token}- Ejemplo:
- Request
- Response
{
"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
}
{
"planId": 1810,
"name": "Plan Expert Family",
"description": "Plan para 2 estudiantes con acceso completo",
"endDate": null,
"cyclesToBillBeforeAllowCancelation": null,
"subscriberLimit": null,
"enrollmentEndDate": null,
"billingCyclesNumber": 1,
"billingCycleType": "Year",
"termsAndConditions": "Plan anual familiar para 2 estudiantes. Ahorra $589 vs 2 planes mensuales durante 12 meses.",
"activeSubscriptionsCount": 0,
"inactiveSubscriptionsCount": 0,
"paymentLink": {
"created": "2025-11-10T20:12:35.0298964Z",
"code": "o8WNfWK",
"linkUrl": "https://pay.h4b.dev/pl/o8WNfWK",
"expirationDateTime": null,
"amount": 499.0000,
"isActive": true,
"maxSales": null,
"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"
}
]
},
"billingDay": null,
"locationId": 578,
"createdBy": "c8573b9a-88ea-45b6-aef4-4817440f2cc9",
"currencyCode": "USD",
"locale": "es-SV",
"isActive": true
}
Parámetros de la petición
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | ✅ | Nombre del plan de suscripción |
description | string | ✅ | Descripción del plan de suscripción |
amount | decimal | ✅ | Precio establecido para el plan de suscripción |
customFields | array of objects | ❌ | Permite configurar campos personalizados para el plan, es opcional |
customFields[].label | string | ✅ | Es requerido un valor para cada campo personalizado |
customFields[].name | string | ✅ | Es requerido un nombre y debe ser único para cada campo personalizado |
customFields[].placeholder | string | ❌ | Puede usarse para un campo (input) |
customFields[].isRequired | boolean | ❌ | Puede usarse para un campo (input) |
customFields[].isVisible | boolean | ❌ | Puede usarse para un campo (input) |
customFields[].isEditable | boolean | ❌ | Puede usarse para un campo (input) |
customFields[].defaultValue | string | ❌ | Permite asignar un valor predeterminado |
billingCycleType | string | ✅ | Tipo de ciclo de facturación: Day, Week, Month, Year |
billingCyclesNumber | integer | ✅ | Periodicidad de cobro según el billingCycleType (ej: 2 días, 3 meses, 1 año) |
cyclesToBillBeforeAllowCancelation | integer | ❌ | Número de periodos obligatorios antes de permitir cancelación. Enviar null si no aplica |
termsAndConditions | string | ❌ | Permite indicar los términos y condiciones para el plan |
subscriberLimit | integer | ❌ | Límite de suscriptores para el plan. Enviar null para ilimitado |
enrollmentEndDate | datetime | ❌ | 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 |
subscriptionEndDate | datetime | ❌ | 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 |
billingDay | integer | ❌ | Día específico del mes para realizar el cobro (solo para suscripciones mensuales). Valores: 1-27 o 31. Puede ser null |
locationId | integer | ✅ | 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 diarioWeek- Ciclo semanalMonth- Ciclo mensualYear- 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:
- Response
{
"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:
- Response
[
{
"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:
- Response
[
{
"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:
- Response
[
{
"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"
}
}
]