Endpoints

MethodRoutePermissionDescription
GET/api/v1/rolesRole:ViewAll roles ordered by name
GET/api/v1/roles/lookupActive roles for dropdowns
GET/api/v1/roles/{id}Role:ViewSingle role with permissions
POST/api/v1/roles/createRole:CreateCreate new role
PUT/api/v1/roles/updateRole:EditUpdate existing role
DEL/api/v1/roles/delete/{id}Role:DeleteDelete a role
GET/api/v1/roles/{roleId}/permissionsRole:ViewGet permissions assigned to role
PUT/api/v1/roles/{roleId}/permissionsRole:ModifyPermissionsReplace all permissions for a role
GET/api/v1/roles/propertiesRole:ViewAll RoleProperty records (permission definitions)
POST

/api/v1/roles/create

JSON Request
{
  "name": "Marketing Manager",
  "description": "Can manage campaigns and templates",
  "isActive": true
}
PUT

/api/v1/roles/{roleId}/permissions

Replaces all permissions for a role. Provide an array of RoleProperty IDs to assign.

JSON Request
{
  "propertyIds": [
    "guid-of-property-1",
    "guid-of-property-2"
  ]
}

RBAC Concept

RoleProperty (Module + Action permission definition) │ defined by SuperFirm via /admin/roleproperty ▼ Role (group of permissions) │ created per firm ▼ FirmUser → assigned a Role │ ▼ [RequirePermission] filter on controller │ checks token claims vs Role's PropertyIds ▼ Allow or 403 Forbidden

Permission Modules

ModuleAvailable Actions
UsersView, Create, Edit, Delete
RoleView, Create, Edit, Delete, ModifyPermissions
ContactView, Create, Edit, Delete, Import, ChangeTag
WhatsappChatView, SendMessage, SendTemplate, StartConversation
WhatsappTemplateView, Create, Edit, Delete
WhatsappCampaignView, Create, Edit, Delete, Execute
WorkflowsView, Create, Edit, Delete, Logs
MarketplaceWorkflowImport, TemplateImport
SettingsView, Integrations, EditInfo
DashboardView, QRCodeChange
WalletView
ApiClientView, Create, Edit, Revoke, Regenerate