> ## Documentation Index
> Fetch the complete documentation index at: https://omniflow-vpn.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Post v1paneladminsinvitations

> Requires admins.write. Issues a single-use link valid for 72 hours that creates an operator with the listed roles. The token is in this response only. Inviting an address again retires its earlier link. An address that already has an account is refused (409), and so is a role set carrying a permission the actor does not hold (403 `role_escalation`). Audited as `admin.invitation.created`.



## OpenAPI

````yaml https://raw.githubusercontent.com/kewldan/omniflow/main/api/openapi.yaml post /v1/panel/admins/invitations
openapi: 3.0.3
info:
  title: Omniflow API
  version: 1.0.0
  description: >-
    Customer, commerce, payment, wallet, fulfillment, and operations API for
    Omniflow.
servers: []
security: []
paths:
  /v1/panel/admins/invitations:
    post:
      tags:
        - panel
      description: >-
        Requires admins.write. Issues a single-use link valid for 72 hours that
        creates an operator with the listed roles. The token is in this response
        only. Inviting an address again retires its earlier link. An address
        that already has an account is refused (409), and so is a role set
        carrying a permission the actor does not hold (403 `role_escalation`).
        Audited as `admin.invitation.created`.
      operationId: createPanelAdminInvitation
      parameters:
        - $ref: '#/components/parameters/CSRFToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminInvitationInput'
      responses:
        '201':
          description: Invitation issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminInvitationIssued'
        '403':
          $ref: '#/components/responses/Problem'
        '409':
          $ref: '#/components/responses/Problem'
        '422':
          $ref: '#/components/responses/Problem'
components:
  parameters:
    CSRFToken:
      in: header
      name: X-CSRF-Token
      required: true
      description: >-
        Echoes the token from the current session. Required on every unsafe
        method.
      schema:
        type: string
  schemas:
    AdminInvitationInput:
      type: object
      additionalProperties: false
      required:
        - email
        - roles
      properties:
        email:
          type: string
          format: email
        roles:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/AdminRole'
    AdminInvitationIssued:
      type: object
      required:
        - invitation
        - token
      properties:
        invitation:
          $ref: '#/components/schemas/AdminInvitation'
        token:
          type: string
          description: >-
            The single-use token. Returned in this response only; the server
            keeps its SHA-256. The panel builds `/admin/invite/<token>` from it.
    AdminRole:
      type: string
      enum:
        - owner
        - administrator
        - support
        - finance
        - marketing
        - auditor
    AdminInvitation:
      type: object
      description: An open invitation. The token is never part of it.
      required:
        - id
        - email
        - roles
        - createdAt
        - expiresAt
        - invitedBy
        - invitedByName
      properties:
        id:
          type: string
          format: uuid
        email:
          type: string
          format: email
        roles:
          type: array
          items:
            $ref: '#/components/schemas/AdminRole'
        createdAt:
          type: string
          format: date-time
        expiresAt:
          type: string
          format: date-time
          description: >-
            An open invitation past this moment is listed but can no longer be
            redeemed.
        invitedBy:
          type: string
          format: uuid
        invitedByName:
          type: string
    Problem:
      type: object
      required:
        - type
        - title
        - status
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        request_id:
          type: string
  responses:
    Problem:
      description: Request failed
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.