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
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 ...