> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# دعوة مستخدم مشارك

> POST /multi-users/

المستخدمون المشاركون هم زملاء الفريق الذين تدعوهم إلى حساب Scanova الخاص بك — نفس القائمة الظاهرة في جدول **Users** بلوحة التحكم. تتيح لك نقطة النهاية هذه سردهم أو دعوتهم أو تحديثهم أو إزالتهم برمجيًا.

<Note>
  لم تكن نقطة النهاية هذه موثّقة سابقًا. تتطلب مفتاح Management API بحصة `MANAGEMENT_API` (أو `MANAGEMENT_API_SANDBOX`)، يُرسل كقيمة خام لترويسة `Authorization` — راجع [نظرة عامة على Management API](/ar/api-reference/management-api/overview) — بالإضافة إلى حصة الفريق الخاصة بالحساب للمستخدمين المشاركين. لمعرفة ما يمنحه كل دور فعليًا، راجع [الأدوار والصلاحيات](/ar/team/roles-and-permissions)؛ وللاطلاع على الصيغة السلكية للأدوار نفسها، راجع [الأدوار (مستويات الوصول)](/ar/api-reference/management-api/shared-users/roles-list).
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://management.scanova.io/multi-users/' \
    --header 'Authorization: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "email": "teammate@example.com",
      "name": "Jordan Lee",
      "access_level": 5
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  {
    "id": 118,
    "shared_user": {
      "id": 88213,
      "first_name": "Jordan",
      "last_name": "Lee",
      "full_name": "Jordan Lee",
      "email": "teammate@example.com",
      "is_active": false,
      "is_locked": false
    },
    "access_level": {
      "id": 5,
      "name": "Manager",
      "slug": "manager",
      "permissions": [],
      "is_custom": false
    },
    "invitation_sent_on": null,
    "invitation_accepted_on": null,
    "is_invitation_sent": false,
    "is_invitation_accepted": false,
    "status": "Invitation Sent",
    "is_active": false,
    "created": "2026-08-16T20:41:09.442000+05:30",
    "modified": "2026-08-16T20:41:09.442000+05:30",
    "include_untagged": true,
    "enable_tag_permission": false,
    "tags": []
  }
  ```
</ResponseExample>

<ParamField body="email" type="string" required>
  عنوان البريد الإلكتروني للزميل الجديد. يجب ألا ينتمي مسبقًا إلى مستخدم Scanova آخر — التكرار يعيد 400 مع `{"email": ["Email address is already used."]}`.
</ParamField>

<ParamField body="name" type="string" required>
  اسم العرض، حتى 20 حرفًا.
</ParamField>

<ParamField body="access_level" type="integer" required>
  معرّف دور من [`GET /multi-users/access-levels/`](/ar/api-reference/management-api/shared-users/roles-list) — إما دور نظام افتراضي أو دور مخصص أنشأه هذا الحساب.
</ParamField>

<ParamField body="tags" type="array">
  معرّفات وسوم لتقييد وصول هذا المستخدم بها. تتطلب حصة `CUSTOM_TAG`/صلاحية الوسوم الخاصة بالحساب — وإلا تُرفض بـ 403.
</ParamField>

<ParamField body="enable_tag_permission" type="boolean" default="false">
  تقييد رموز QR المرئية لهذا المستخدم بـ `tags`.
</ParamField>

<ParamField body="include_untagged" type="boolean" default="true">
  عندما تكون `enable_tag_permission` صحيحة، ما إذا كانت رموز QR غير الموسومة لا تزال مرئية.
</ParamField>

<Note>
  دعوة زميل تُرسل له دائمًا بريد دعوة — إنشاء السجل هنا له نفس تأثير النقر على **Invite Users** في جدول Users بلوحة التحكم. لا توجد طريقة لتخطي البريد الإلكتروني عبر نقطة النهاية هذه.
</Note>

## ذات صلة

* [سرد المستخدمين المشاركين](/ar/api-reference/management-api/shared-users/list) — العملية الأخرى لنفس نقطة النهاية هذه.
* [استرجاع مستخدم مشارك](/ar/api-reference/management-api/shared-users/retrieve) — اعمل على سجل المستخدم المشارك بعد دعوته.
* [تحديث مستخدم مشارك](/ar/api-reference/management-api/shared-users/update) — اعمل على سجل المستخدم المشارك بعد دعوته.
* [إزالة مستخدم مشارك](/ar/api-reference/management-api/shared-users/remove) — اعمل على سجل المستخدم المشارك بعد دعوته.
* [سرد الأدوار](/ar/api-reference/management-api/shared-users/roles-list) — ابحث عن معرّف `access_level` أو أنشئه، وهو ما تتطلبه استدعاءات الدعوة/التحديث في نقطة النهاية هذه.
* [إنشاء دور مخصص](/ar/api-reference/management-api/shared-users/roles-create) — ابحث عن معرّف `access_level` أو أنشئه، وهو ما تتطلبه استدعاءات الدعوة/التحديث في نقطة النهاية هذه.
* [المستخدمون المشاركون](/ar/team/shared-users) — جدول Users الخاص بلوحة التحكم نفسها، يعرض نفس إجراءات الدعوة/التعطيل/الإزالة.
* [الأدوار والصلاحيات](/ar/team/roles-and-permissions) — ما يمنحه كل دور فعليًا لزميل.


## OpenAPI

````yaml api-reference/openapi/management-api.json POST /multi-users/
openapi: 3.1.0
info:
  title: Scanova Management API (v2)
  description: >-
    The complete Scanova Management API — every endpoint available at
    management.scanova.io (QR codes, folders, tags, leads, forms, analytics,
    plans, shared users & roles), plus the token-creation and usage-stats
    endpoints used to authenticate against it. Every path and request/response
    shape below was verified live against a real API key and the actual running
    backend (Phase 7, 2026-08-16) — not guessed from reading urls.py alone.
  version: 2.0.0
servers:
  - url: https://management.scanova.io
    description: Management API — QR/folder/tag/lead/form/analytics/plans endpoints
security:
  - apiKeyAuth: []
paths:
  /multi-users/:
    post:
      summary: Invite a shared user
      operationId: createManagedSharedUser
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                name:
                  type: string
                  maxLength: 20
                access_level:
                  type: integer
                  description: Role ID from GET /multi-users/access-levels/.
                tags:
                  type: array
                  items:
                    type: integer
                enable_tag_permission:
                  type: boolean
                  default: false
                include_untagged:
                  type: boolean
                  default: true
              required:
                - email
                - name
                - access_level
            example:
              email: teammate@example.com
              name: Jordan Lee
              access_level: 5
      responses:
        '201':
          description: Invitation created — sends an invitation email to the shared user.
          content:
            application/json:
              example:
                id: 118
                shared_user:
                  id: 88213
                  first_name: Jordan
                  last_name: Lee
                  full_name: Jordan Lee
                  email: teammate@example.com
                  is_active: false
                  is_locked: false
                access_level:
                  id: 5
                  name: Manager
                  slug: manager
                  permissions: []
                  is_custom: false
                invitation_sent_on: null
                invitation_accepted_on: null
                is_invitation_sent: false
                is_invitation_accepted: false
                status: Invitation Sent
                is_active: false
                include_untagged: true
                enable_tag_permission: false
                tags: []
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Send your Management API key as the raw value of the Authorization
        header — no "Bearer " or "Token " prefix, and no other characters.
        Example: `Authorization: 401f7ac837da42b97f613d789819ff93537bee6a`. A
        header containing more than one space-separated part is rejected
        outright. Requests also require the request's Host header to be the
        management API host (e.g. management.scanova.io) — the same key sent to
        the regular API host will not authenticate.

````