The Supreme layer exposes a full management surface for tenant companies and SaaS plan definitions. Companies represent isolated warehouse tenants; plans define the operational limits — device count, user cap, location cap, billing period — that govern each tenant’s subscription. All endpoints in this section require a validDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/CodexaCP/DG_BACK/llms.txt
Use this file to discover all available pages before exploring further.
SUPERADMIN_SUPREMO JWT.
Companies
List all companies
SupremeCompanyDto objects ordered alphabetically by company name. Each object carries the SaaS metadata most relevant for a dashboard view: plan assignment, plan dates, integration mode, and API access flag.
Response fields (per company):
Unique company identifier.
Short tenant code. Used as the
codigo_empresa mapping for GrupoMAS Native tenants.Display name of the tenant company.
Full legal name of the tenant company, if provided.
Tax identification number for the tenant, if provided.
Primary billing or contact email for the tenant.
Enforced email domain for all users of this tenant (e.g.,
@acme.com).Contact phone number for the tenant.
Current SaaS status:
Active, Inactive, or Suspended.Derived from
status. true only when status = Active.The assigned SaaS plan.
null if no plan has been assigned.Human-readable name of the assigned plan.
Subscription window.
null for tenants without a plan or unlimited plans.Subscription status:
Active, Expiring, Expired, or Demo.Normalized integration mode:
Standalone, GrupoMasNative, or BusinessCentralNative.Resolved integration provider name (e.g.,
Standalone, GrupoMasNative, BusinessCentralNative).Whether the tenant is allowed to use integration API access.
UTC timestamp when the company record was created.
Email of the Supreme administrator who created the record.
UTC timestamp of the last update, if any.
Email of the Supreme administrator who last updated the record.
Get company detail
SupremeCompanyDetailDto, which extends the list DTO with full operational and integration settings.
Additional fields in the detail response:
Physical address fields for the tenant.
Default currency for the tenant. Defaults to
USD.IANA time zone identifier. Defaults to
UTC.Whether the WMS operational modules are active for this tenant.
Whether the tenant is permitted to drive inventory below zero.
Present when
integrationProvider = GrupoMasNative. Contains baseUrl, timeoutSeconds, polling configuration, and masked credential indicators.Present when
integrationProvider = BusinessCentralNative. Contains baseUrl, tenantId, environmentName, companyId, companyName, and masked access key indicator.RFID feature flags:
enabled, mode (Disabled, InquiryOnly, OperationalAssist, StrictValidation), and per-module toggles for receipts, shipments, and movements.Company-level override for the maximum number of active handheld devices. When
null, the plan’s maxHandheldDevices value applies.true if a hashed API key exists. The plain key is never returned by this endpoint.Total number of users assigned to this tenant.
Distinct role codes present among this tenant’s users (e.g.,
["ADMIN", "OPERATOR"]).Create company
bootstrap object to pre-configure users, a device, and warehouse defaults in the same request. See Tenant Onboarding for the full bootstrap flow.
Minimal body:
codeandnameare required.codemust be unique across all companies. Returns409 ConflictwithCOMPANY_CODE_ALREADY_EXISTSif taken.userEmailDomainmust be a valid domain format (e.g.,@acme.com). Returns400withvalidation.tenantEmailDomainInvalidif malformed.planId, if provided, must reference an existingSaaSPlansrecord. Returns400 PLAN_NOT_FOUNDif not found.- GrupoMAS Native tenants (
integrationMode = GrupoMasNative) require a non-emptycode.
201 Created with the full create response including the one-time plain API key.
Update company
POST /api/supreme/companies (without bootstrap). Integration settings use preserveExistingWhenNull: true — omitting a settings object leaves those fields unchanged.
Returns 204 No Content on success.
Change company status
Active, Inactive, Suspended. The isActive flag is synchronized automatically:
| Status | IsActive |
|---|---|
Active | true |
Inactive | false |
Suspended | false |
204 No Content.
Toggle integration API access
204 No Content.
Regenerate integration API key
ApiKeyHash is stored. Any previous key is immediately invalidated.
Plans
List all plans
GET /api/plans/catalog (non-Supreme, returns only active non-demo plans).
Response fields (per plan):
Unique plan identifier.
Plan display name (e.g.,
Basic, Pro, Enterprise).Maximum number of simultaneously active handheld devices allowed under this plan.
Maximum number of user accounts for tenants on this plan.
Maximum warehouse locations for tenants on this plan.
Subscription price per renewal period.
Billing currency:
USD or PYG.Billing cycle:
Weekly, Monthly, Quarterly, Semiannual, or Annual.Whether the plan is publicly available for assignment. Inactive plans are hidden from the public catalog but remain visible here.
Demo plans are protected from destructive edits and can only be assigned once per tenant.
Sort order used for display in the public plan catalog.
Optional short description of the plan.
Optional monthly transaction cap, if the plan enforces a limit.
List of marketing benefit strings shown in the plan catalog.
Number of companies currently assigned to this plan.
UTC timestamp when the plan was created.
Create plan
nameis required.namemust be unique across all plans. Returns409 ConflictwithPLAN_NAME_ALREADY_EXISTSif already taken.maxHandheldDevicesmust be≥ 1.pricemust be≥ 0.currencyCodemust beUSDorPYG.renewalPeriodmust be one ofWeekly,Monthly,Quarterly,Semiannual,Annual.
201 Created with { "id": "<new-plan-guid>" }.
Update plan
POST /api/supreme/plans. Demo plans (isDemo = true) are protected — attempts to update them return 400 with plans.demoProtected.
Returns 204 No Content.
Assign plan to tenant
- Sets
PlanStartsAt,PlanExpiresAt(derived from plan’srenewalPeriod), andPlanStatus. - Updates
DeviceLimitto the plan’smaxHandheldDevices. - Updates
Company.StatusandCompany.IsActiveif the resolved plan status isSuspended. - Writes a
CompanyPlanAuditrecord for traceability.
400 with plans.demoAlreadyUsed. Returns 200 OK with the tenant’s updated plan status (TenantPlanStatusDto).
View plan assignment history
action, oldState, newState, and createdBy.
Tenant Users
List users for a tenant
Create a tenant admin user
Email address for the new user. Must match the tenant’s configured
userEmailDomain if one is set.Full display name of the user.
Role to assign. Accepted values:
ADMIN, SUPERVISOR, OPERATOR. Defaults to ADMIN for this endpoint.Optional initial password. If omitted, the system generates the temporary password
123456. The first login will require a password change regardless.auth.Users, the existing user record is reused and only the tenant role assignment is added. A user cannot be assigned to more than one tenant — attempting to do so returns 409 Conflict with auth.userAssignedToOtherTenant.
Response:
ID of the user record in
auth.Users.Email address of the created or reused user.
Full display name of the user.
Tenant role assigned to the user (e.g.,
ADMIN, OPERATOR).true if a new user account was created; false if an existing auth.Users record was reused and only the tenant role assignment was added.The plain-text temporary password.
null if a custom password was supplied or the user already existed. Stored as a BCrypt hash — cannot be retrieved again.Always
true. The user must change their password on first login.The
temporaryPassword field is returned only in this response. It is stored as a BCrypt hash and cannot be retrieved again.