Goujana subscriptions

Identity + billing lifecycle of ONE active Goujana add-on plan for ONE account — decoupled from what that plan actually grants (see GoujanaPayrollLimits below). One row per (account, product_line): an account can hold a payroll plan AND a future industry plan at the same time, each its own row here. Owner's explicit call (2026-08-14): Goujana add-on plans (nómina, future industries) are a SEPARATE product line from the general ERP plans (goujana_gateway.plans) — "no compiten entre ellos" — and their capacity data must live entirely inside goujana_gateway (this app, this tenant's own database), never as new fields on the shared core database_router_s.UserDb/SubscriptionType tables that every Sofisis tenant migrates. This is also why this model is NOT layered onto GoujanaLeadFollowUp above: that model's cardinality (one row per lead, `unique=True`) and lifecycle (funnel stage that goes stale once `won`) don't fit a subscription that must support multiple concurrent product lines per account and keeps mutating for years after the sale — same no-FK `user_db_id` convention as that model, not the same table. See README_ESTRUCTURA_SUSCRIPCIONES_GOUJANA.md for the full rationale and the migration this replaced (GoujanaPayrollSubscription, one single table mixing lifecycle + payroll-specific fields — replaced with zero real rows in any environment, so no data migration was needed).

Header api token: X-API-TOKEN

Obtener api token en Su configuración de cuenta

Métodos API permitidos: GET, POST, PUT, PATCH, OPCIONES

  • List URL: /api/v1/goujana_gateway/goujanasubscription/
  • Detail URL: /api/v1/goujana_gateway/goujanasubscription/:id/
Parámetros
  • _page_size: (int) Número de resultados por página
  • _page: (str|int) Número de páginas a consultar, coloque __all__ para obtener todos los resultados sin paginar
  • _ordering: (str) Campo para ordenar, si es descendente colocar '-', Ej: -nombre_del_campo
  • _fields: (str) Lista de los campos a devolver, separados por coma
Usted puede usar cualquer otro parametro de django para filtrar los datos
Muestra el método OPTIONS
 Cargando opciones de API ...

Objetos relacionados:


Goujana payroll limits

What a 'payroll' GoujanaSubscription actually grants — split from GoujanaSubscription itself so a future product line (construcción, salud...) only ever adds ITS OWN limits model + migration, never touches this one or the generic GoujanaSubscription table. This is the model human_resource_s.models.employee.Employee.clean() reads (via goujana_gateway.payroll_plans.employees_limit_for_account) to enforce the employee cap — the field existed on the catalog dataclass (GoujanaPlan.payroll_employees, GoujanaPayrollPlan.employees_included) since before this app-level enforcement existed, see README_FIX_PRICING_NOMINA_ELECTRONICA_COMPETITIVIDAD.md.
  • List URL: /api/v1/goujana_gateway/goujanapayrolllimits/
  • Detail URL: /api/v1/goujana_gateway/goujanapayrolllimits/:id/
Muestra el método OPTIONS
 Cargando opciones de API ...