The Business Dashboard endpoints give authenticated business users a live view of their operational health, sales analytics, recent activity, and pending notifications — all scoped to their JWT-resolved business context. Every request passes through theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/CRISTIANCAMACH34/Zippi/llms.txt
Use this file to discover all available pages before exploring further.
require_business_portal guard, which reads the JWT, resolves the business scope, and injects that scope into the downstream service layer before any handler logic runs.
Authentication and the require_business_portal guard
All endpoints in the Business Portal are protected by the require_business_portal(module) decorator. It performs three checks in order:
- JWT validation — calls
get_current_user()to verify and decode the Bearer token. - Module access — looks up the caller’s role in
BUSINESS_ROLE_MODULESand confirms the role is allowed to access the requested module. - Business operating check — calls
assert_business_operating(scope, module, method=request.method)to ensure the business scope is active before mutating operations proceed.
HttpError with 403 Forbidden.
| Role | Modules accessible |
|---|---|
business_owner | dashboard, orders, products, options, branches, settlements, analytics, profile, activity, onboarding, team |
business_admin | dashboard, orders, products, options, branches, settlements, analytics, profile, activity, onboarding, team |
business_branch_admin | dashboard, orders, products, options, branches, analytics, activity, team |
kitchen_staff | dashboard, orders, activity |
cashier | dashboard, orders, settlements, analytics, activity |
waiter | dashboard, orders, activity |
super_admin / platform_admin | all modules |
GET /api/v1/business/dashboard
Returns a live operational summary for the authenticated business scope. The response includes active order counts, today’s revenue totals, branch statuses, and recent high-priority events.200 OK
Always
true on a 2xx response.GET /api/v1/business/analytics
Returns aggregated sales trends and top-product rankings for the business scope. Backed by the sameBusinessPortalService.dashboard() handler as /dashboard but presented with an analytics-oriented projection.
business_owner, business_admin, business_branch_admin, cashier, super_admin, or platform_admin (module: analytics).
GET /api/v1/business/notifications
Returns pending notifications for the authenticated business scope. Routed through theorders module permission check.
200 OK
GET /api/v1/business/activity
Returns a paginated audit log of actions taken within the business scope. Useful for compliance review and operational traceability.Page number, 1-indexed.
Maximum records per page. Recommended maximum: 100.
POST /api/v1/business/activity
Records a custom activity entry against the authenticated business scope. Returns201 Created.
Activity type identifier, e.g.
manual_note, config_change.Human-readable description of the activity event.
Optional arbitrary key/value pairs to attach to the entry.
POST /api/v1/business/activity/operational
Records a structured operational activity event — typically triggered by automated processes or integrations rather than direct user action. Returns201 Created.
Canonical event name, e.g.
shift_opened, branch_paused, catalog_synced.Branch scope for the event, if applicable.
User ID of the actor who triggered the event.
GET /api/v1/business/profile
Returns the full profile record for the authenticated business scope, including name, business type, contact details, commission rate, contract status, and creation date.Internal primary key of the business record.
Business display name, up to 140 characters.
Business type (e.g.
restaurante, tienda, farmacia).Zippi commission rate as a decimal string (e.g.
"12.00"). This value is versioned — changes do not retroactively affect settled periods.Contract status:
activo, suspendido, or terminado.Whether the business is currently enabled on the platform.
PUT /api/v1/business/profile
Updates the mutable fields of the business profile. Requiresbusiness_owner or business_admin.
Business display name (max 140 characters).
Contact phone number (max 30 characters).
Contact email address.
Public description shown to customers.
Absolute URL to the business logo/banner image (max 500 characters).
GET /api/v1/business/onboarding/status
Returns the onboarding checklist status for the business scope. Use this to drive the setup wizard in the Business Portal frontend and to determine whether the business is ready to receive live orders.200 OK
Until
overall_complete is true, the business scope may be restricted from accepting live customer orders depending on platform policy. Complete all checklist items via the corresponding API endpoints before going live.