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

# Create a Project



## OpenAPI

````yaml /api-reference/v4/openapi.json post /projects
openapi: 3.1.0
info:
  title: API V4
  version: '4'
  description: >-
    OAuth 2.0 secured API. Obtain an access token using client credentials to
    access protected endpoints. The regional endpoints listed below serve every
    Zivio organisation, so each request — including the token request — must
    carry a `zivio-tenant-id` header identifying yours. Requests without it are
    rejected with a 404 before any token is checked.
  contact:
    name: API Support
    email: support@zivio.com
servers:
  - url: https://api.zivio.net/api/v4
    description: Global API Router
  - url: https://api.eu.zivio.net/api/v4
    description: EU Data Region
  - url: https://api.uk.zivio.net/api/v4
    description: UK Data Region
  - url: https://api.us.zivio.net/api/v4
    description: US Data Region
security:
  - oauth2: []
    tenantId: []
paths:
  /projects:
    post:
      tags:
        - Projects
      summary: Create a Project
      operationId: postProjects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectInput'
            examples:
              minimal:
                summary: Minimal required fields
                value:
                  project:
                    title: New Development Project
              complete:
                summary: Complete with optional fields
                value:
                  project:
                    title: New Development Project
                    description: Full project description with requirements and scope
                    project_type: hourly
                    visibility: private
                    start_date: '2026-09-18'
                    due_on: '2026-12-11'
                    custom_fields_attributes:
                      - key: po_number
                        value: PO-001
                        field_scope: project
                    milestones_attributes:
                      - title: Phase 1
                        due_on: '2026-10-11'
                        mandatory: true
      responses:
        '201':
          description: Project created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
              example:
                id: 101
                title: Website Redesign Project
                description: Complete redesign of corporate website with modern UX
                state: pending
                additional_notes: Additional information and context for this record.
                skill_category:
                  id: 101
                  name: Acme Corporation
                  code: Example code
                  slug: Example slug
                  precedence: 101
                  parent_id: 501
                  parent_name: Example parent_name
                  parent_slug: Example parent_slug
                skill_subcategory:
                  id: 101
                  name: Acme Corporation
                  code: Example code
                  slug: Example slug
                  precedence: 101
                  parent_id: 501
                  parent_name: Example parent_name
                  parent_slug: Example parent_slug
                skill_category_tier3:
                  id: 101
                  name: Acme Corporation
                  code: Example code
                  slug: Example slug
                  precedence: 101
                  parent_id: 501
                  parent_name: Example parent_name
                  parent_slug: Example parent_slug
                skills:
                  - id: 101
                    name: Acme Corporation
                    slug: Example slug
                  - id: 102
                    name: Global Services Ltd
                    slug: Example slug
                talent_pool_id: 501
                type: standard
                posting_type: public
                bids_count: 5
                submission_deadline: '2024-01-16T10:30:00+00:00'
                submission_deadline_time_zone: Europe/London
                ccy: GBP
                fee_methodology: supplier_absorbed
                fee_schedule_id: 501
                award_type: competition
                risk_level_id: 501
                is_template: false
                quality_score_allocation_percentage: 50
                cost_score_allocation_percentage: 50
                award_suppliers:
                  - direct
                  - panel
                approved: true
                submitted_at: '2024-01-16T10:30:00+00:00'
                approved_at: '2024-01-16T10:30:00+00:00'
                hired_at: '2024-01-16T10:30:00+00:00'
                start_date: '2024-03-08'
                due_on: '2024-01-16'
                original_due_on: '2024-01-16'
                ended_at: '2024-01-16T10:30:00+00:00'
                closed_at: '2024-01-16T10:30:00+00:00'
                auto_close_at: '2024-01-16T10:30:00+00:00'
                halted_comment: null
                cancellation_reason_id: 501
                cancellation_other_reason: null
                cancelled_by:
                  id: 101
                  first_name: Demo
                  last_name: User
                  email: user1@example.com
                  org_id: 501
                  org_name: Acme Corporation
                cancelled_at: '2024-01-16T10:30:00+00:00'
                completed_by:
                  id: 101
                  first_name: Demo
                  last_name: User
                  email: user1@example.com
                  org_id: 501
                  org_name: Acme Corporation
                closed_by:
                  id: 101
                  first_name: Demo
                  last_name: User
                  email: user1@example.com
                  org_id: 501
                  org_name: Acme Corporation
                visibility: visible
                bafo_submission_deadline: '2024-01-16T10:30:00+00:00'
                bid_round: 101
                original_project_id: 501
                location:
                  type: location
                  label: London, UK
                target_cost:
                  cents: 150000
                  currency: GBP
                budget:
                  cents: 150000
                  currency: GBP
                original_budget:
                  cents: 150000
                  currency: GBP
                rate:
                  cents: 150000
                  currency: GBP
                original_rate:
                  cents: 150000
                  currency: GBP
                fee: '1500.00'
                markup: '1500.00'
                estimated_savings:
                  cents: 150000
                  currency: GBP
                projected_recognized_savings:
                  cents: 150000
                  currency: GBP
                payment_terms_in_days: 30
                client_payment_terms_in_days: 30
                permit_supplier_defined_milestones: null
                supplier_defined_milestones: null
                client_defined_milestones_mandatory: null
                invoices_cis: null
                cis_end_user_client: null
                is_child: false
                is_parent: false
                custom_fields:
                  department: Engineering
                  priority: high
                  cost_code: CC-001
                badges:
                  - urgent
                  - featured
                project_screening_questions:
                  - question: Years of experience?
                    required: true
                  - question: Available start date?
                    required: false
                client:
                  id: 101
                  first_name: Demo
                  last_name: User
                  email: user1@example.com
                  org_id: 501
                  org_name: Acme Corporation
                administrator:
                  id: 101
                  first_name: Demo
                  last_name: User
                  email: user1@example.com
                  org_id: 501
                  org_name: Acme Corporation
                client_org:
                  id: 101
                  name: Acme Corporation
                  is_external_client: true
                cost_centers:
                  - cost_center_id: 501
                    allocation_percentage: '1500.00'
                    name: Acme Corporation
                    code: null
                    admin_custom_fields: null
                    project_id: 501
                  - cost_center_id: 502
                    allocation_percentage: '1500.00'
                    name: Global Services Ltd
                    code: null
                    admin_custom_fields: null
                    project_id: 502
                milestones:
                  - id: 101
                    title: Website Redesign Project
                    status: submitted
                    client_suggested: false
                    close_project: false
                    comments: Additional information and context for this record.
                    details: Additional information and context for this record.
                    due_on: '2024-01-16'
                    project_summary: >-
                      Website Redesign Project - Complete redesign of corporate
                      website with modern UX
                    mandatory: false
                    notes: Additional information and context for this record.
                    original_id: 501
                    original_rate:
                      cents: 150000
                      currency: GBP
                    purchase_order_line_id: 501
                    rate:
                      cents: 150000
                      currency: GBP
                    submitted_at: '2024-01-16T10:30:00+00:00'
                    interim_valuation_date: '2024-01-16T10:30:00+00:00'
                    tiered_markup_fee:
                      cents: 150000
                      currency: GBP
                    children:
                      - 201
                      - 202
                    parents:
                      - 201
                      - 202
                    custom_fields:
                      department: Engineering
                      priority: high
                      cost_code: CC-001
                    created_at: '2024-01-16T10:30:00+00:00'
                    updated_at: '2024-01-16T10:30:00+00:00'
                    project_id: 501
                    final_claim: 'false'
                    delivered_on: '2024-01-16'
                    approved_by:
                      id: 101
                      first_name: Demo
                      last_name: User
                      email: user1@example.com
                      org_id: 501
                      org_name: Acme Corporation
                    rejected_by:
                      id: 101
                      first_name: Demo
                      last_name: User
                      email: user1@example.com
                      org_id: 501
                      org_name: Acme Corporation
                    level_1_approved_by:
                      id: 101
                      first_name: Demo
                      last_name: User
                      email: user1@example.com
                      org_id: 501
                      org_name: Acme Corporation
                  - id: 102
                    title: Mobile App Development
                    status: approved
                    client_suggested: false
                    close_project: false
                    comments: Additional information and context for this record.
                    details: Additional information and context for this record.
                    due_on: '2024-01-17'
                    project_summary: >-
                      Website Redesign Project - Complete redesign of corporate
                      website with modern UX
                    mandatory: false
                    notes: Additional information and context for this record.
                    original_id: 502
                    original_rate:
                      cents: 300000
                      currency: GBP
                    purchase_order_line_id: 502
                    rate:
                      cents: 300000
                      currency: GBP
                    submitted_at: '2024-01-17T10:30:00+00:00'
                    interim_valuation_date: '2024-01-17T10:30:00+00:00'
                    tiered_markup_fee:
                      cents: 300000
                      currency: GBP
                    children:
                      - 202
                      - 203
                    parents:
                      - 202
                      - 203
                    custom_fields:
                      department: Engineering
                      priority: high
                      cost_code: CC-001
                    created_at: '2024-01-17T10:30:00+00:00'
                    updated_at: '2024-01-17T10:30:00+00:00'
                    project_id: 502
                    final_claim: 'true'
                    delivered_on: '2024-01-17'
                    approved_by:
                      id: 102
                      first_name: Jane
                      last_name: Smith
                      email: user2@example.com
                      org_id: 502
                      org_name: Global Services Ltd
                    rejected_by:
                      id: 102
                      first_name: Jane
                      last_name: Smith
                      email: user2@example.com
                      org_id: 502
                      org_name: Global Services Ltd
                    level_1_approved_by:
                      id: 102
                      first_name: Jane
                      last_name: Smith
                      email: user2@example.com
                      org_id: 502
                      org_name: Global Services Ltd
                supplier:
                  id: 101
                  name: Acme Corporation
                  email: user1@example.com
                  vetting_status: PASSED
                  tax_number: Example tax_number
                  tax_registered: true
                created_at: '2024-01-16T10:30:00+00:00'
                updated_at: '2024-01-16T10:30:00+00:00'
                project_matches_count: 5
                project_line_items:
                  - id: 101
                    name: Acme Corporation
                    manufacturer_name: Example manufacturer_name
                    manufacturer_part_number: Example manufacturer_part_number
                    uom: null
                    item: null
                    item_type: service
                    price:
                      cents: 150000
                      currency: GBP
                    quantity: '1500.00'
                    net_total_price: null
                    quantity_delivered: null
                    quantity_undelivered: null
                    custom_fields:
                      department: Engineering
                      priority: high
                      cost_code: CC-001
                    created_at: '2024-01-16T10:30:00+00:00'
                    updated_at: '2024-01-16T10:30:00+00:00'
                    project_id: 501
                  - id: 102
                    name: Global Services Ltd
                    manufacturer_name: Example manufacturer_name
                    manufacturer_part_number: Example manufacturer_part_number
                    uom: null
                    item: null
                    item_type: item
                    price:
                      cents: 300000
                      currency: GBP
                    quantity: '1500.00'
                    net_total_price: null
                    quantity_delivered: null
                    quantity_undelivered: null
                    custom_fields:
                      department: Engineering
                      priority: high
                      cost_code: CC-001
                    created_at: '2024-01-17T10:30:00+00:00'
                    updated_at: '2024-01-17T10:30:00+00:00'
                    project_id: 502
                award_criteria_groups:
                  - id: 101
                    name: Acme Corporation
                    group_type: Example group_type
                    weighting: 101
                    has_sub_criteria: true
                    position: 101
                    project_quality_criteria: []
                  - id: 102
                    name: Global Services Ltd
                    group_type: Example group_type
                    weighting: 102
                    has_sub_criteria: true
                    position: 102
                    project_quality_criteria: []
        '401':
          description: >-
            Unauthorized - the access token is missing, expired, revoked or
            malformed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: invalid_token
                error_description: >-
                  The access token provided is expired, revoked, malformed, or
                  invalid for other reasons
        '403':
          description: Forbidden - insufficient scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: insufficient_scope
                error_description: >-
                  The request requires higher privileges than provided by the
                  access token
                required_scope: projects:write
                provided_scopes:
                  - welcome:read
        '422':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missing_field:
                  summary: Required field missing
                  value:
                    error: Title can't be blank
                invalid_value:
                  summary: Invalid field value
                  value:
                    error: State is not included in the list
      security:
        - oauth2:
            - projects:write
          tenantId: []
components:
  schemas:
    ProjectInput:
      type: object
      required:
        - project
      properties:
        project:
          type: object
          description: >-
            Input schema for creating and updating a project. Only fields listed
            here are accepted — unrecognised fields are silently ignored.
            Read-only fields visible in the response (e.g. `supplier_id`,
            `state`, `awarded_at`) cannot be set via the API. `supplier_id` is
            set internally when a project is hired and cannot be assigned
            directly. The V4 API only permits write operations on projects in
            `draft` or `pending` state.
          properties:
            additional_notes:
              type: string
            budget:
              $ref: '#/components/schemas/Money'
            client:
              type: object
              description: >-
                Create only. Specify the project owner when creating on behalf
                of another user. Requires :assign ability. Defaults to the token
                owner if omitted. Supply either `id` or `email` — `id` takes
                precedence if both are present.
              properties:
                email:
                  type: string
                  format: email
                  description: >-
                    Email address of the intended project owner. Used only when
                    `id` is absent.
                  example: democlient@example.com
                id:
                  type: integer
                  description: User ID of the intended project owner.
                  example: 42
            client_org_id:
              type: integer
              description: >-
                Create only. The org to create the project under. Defaults to
                the resolved client's org. Requires :assign ability to override.
            custom_fields_attributes:
              type: array
              description: >-
                Create, update, or destroy custom fields inline. Include `id` to
                target an existing record. Include `_destroy: true` with `id` to
                remove one (update only).
              items:
                type: object
                required:
                  - key
                  - value
                properties:
                  _destroy:
                    type: boolean
                    example: true
                    description: >-
                      Set to true to remove this field. Must be combined with
                      `id`. Update only.
                  field_scope:
                    type: string
                    example: project
                    description: >-
                      Use 'project' for project-scoped custom fields; the
                      internal 'job' value is not accepted.
                  id:
                    type: integer
                    description: Omit when creating a new custom field.
                  key:
                    type: string
                    example: po_number
                  value:
                    type: string
                    example: PO-001
            custom_location:
              type: string
              example: London, UK
            description:
              type: string
              example: Full project description with requirements and scope
            due_on:
              type: string
              format: date
              example: '2026-12-11'
            duration:
              type: string
              example: 3 months
            external_id:
              type: string
              example: EXT-001
              description: >-
                Your own system reference. Stored as-is, not validated for
                uniqueness.
            fee:
              allOf:
                - $ref: '#/components/schemas/Money'
              description: Requires :markup ability.
            fee_as_percentage:
              type: boolean
              description: Requires :markup ability.
            fee_methodology:
              type: string
              enum:
                - markup
                - fixed_fee
              description: Requires :markup ability.
            fee_schedule_id:
              type: integer
              description: Requires :markup ability.
            project_rule_template_id:
              type: integer
              description: >-
                Create only. The project template to use. Auto-selected if the
                org has exactly one template. Required if the org has multiple
                templates.
            project_type:
              type: string
              enum:
                - hourly
                - daily
                - fixed
              example: hourly
              description: >-
                Billing type. Defaults to platform setting if omitted. Immutable
                after creation.
            badge_ids:
              type: array
              description: >-
                IDs of badges to attach to this project. Replaces the full set
                of badges on update — pass an empty array to remove all. All
                supplied IDs must exist.
              items:
                type: integer
                example: 1
            project_cost_centers_attributes:
              type: array
              description: >-
                Create, update, or destroy cost centre allocations inline.
                Include `id` to target an existing record. Include `_destroy:
                true` with `id` to remove one.
              items:
                type: object
                required:
                  - cost_center_id
                properties:
                  _destroy:
                    type: boolean
                    example: true
                    description: >-
                      Set to true to remove this cost centre allocation. Must be
                      combined with `id`.
                  allocation_percentage:
                    type: number
                    format: float
                    example: 0.5
                    description: >-
                      Proportion of the project allocated to this cost centre.
                      Stored with precision 5, scale 4 (e.g. 0.5000 = 50%).
                  cost_center_id:
                    type: integer
                    description: The ID of the cost centre to allocate to.
                    example: 12
                  id:
                    type: integer
                    description: Omit when creating a new allocation.
            project_line_items_attributes:
              type: array
              description: >-
                Create, update, or destroy line items inline. Include `id` to
                target an existing record. Include `_destroy: true` with `id` to
                remove one.
              items:
                type: object
                properties:
                  _destroy:
                    type: boolean
                    example: true
                    description: >-
                      Set to true to remove this line item. Must be combined
                      with `id`.
                  id:
                    type: integer
                    description: Omit when creating a new line item.
                  item_id:
                    type: integer
                    description: >-
                      ID of the associated polymorphic item record, if
                      applicable.
                  item_type:
                    type: string
                    description: >-
                      STI/polymorphic class name of the associated item, if
                      applicable.
                    example: CatalogueItem
                  manufacturer_name:
                    type: string
                    example: Acme Corp
                  manufacturer_part_number:
                    type: string
                    example: ACM-001
                  name:
                    type: string
                    example: Widget A
                  quantity:
                    type: number
                    format: float
                    example: 2
                    description: Stored with precision 12, scale 4.
                  removed:
                    type: boolean
                    example: false
                    description: Soft-delete flag. Defaults to false.
                  uom_id:
                    type: integer
                    description: Unit of measure ID.
            location_id:
              type: integer
            location_type:
              type: string
              enum:
                - remote
                - on_site
                - hybrid
              example: remote
            markup:
              type: number
              format: float
              example: 10
              description: Requires :markup ability on the token owner. Stripped otherwise.
            markup_as_percentage:
              type: boolean
              example: true
              description: Requires :markup ability.
            milestones_attributes:
              type: array
              description: >-
                Create, update, or destroy milestones inline. Include `id` to
                target an existing record. Include `_destroy: true` with `id` to
                remove one (update only).
              items:
                type: object
                required:
                  - title
                properties:
                  _destroy:
                    type: boolean
                    example: true
                    description: >-
                      Set to true to remove this milestone. Must be combined
                      with `id`. Update only.
                  details:
                    type: string
                    example: Completion of initial discovery phase
                  due_on:
                    type: string
                    format: date
                    example: '2026-10-11'
                  id:
                    type: integer
                    description: Omit when creating a new milestone.
                  mandatory:
                    type: boolean
                    example: true
                  title:
                    type: string
                    example: Phase 1
            payment_terms_in_days:
              type: integer
              example: 30
            rate:
              $ref: '#/components/schemas/Money'
            rate_ccy:
              type: string
              example: GBP
            rate_max:
              $ref: '#/components/schemas/Money'
            rate_min:
              $ref: '#/components/schemas/Money'
            skill_category_id:
              type: integer
            skill_subcategory_id:
              type: integer
            start_date:
              type: string
              format: date
              example: '2026-09-18'
            submission_deadline:
              type: string
              format: date-time
              example: '2026-11-11'
              description: Update only.
            submission_deadline_time_zone:
              type: string
              example: Europe/London
              description: Update only. Defaults to UTC if omitted.
            talent_pool_id:
              type: integer
            target_cost:
              $ref: '#/components/schemas/Money'
            time_zone:
              type: string
              example: Europe/London
            title:
              type: string
              example: New Development Project
            visibility:
              type: string
              enum:
                - public
                - private
                - internal
              example: private
    Project:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
        description:
          type: string
        state:
          type: string
          enum:
            - draft
            - pending
            - new
            - halted
            - in_progress
            - work_completed
            - cancelled
            - closed
            - superseded
            - bafo
          example: draft
        additional_notes:
          type: string
        skill_category:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedSkillCategory'
            - type: 'null'
        skill_subcategory:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedSkillCategory'
            - type: 'null'
        skill_category_tier3:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedSkillCategory'
            - type: 'null'
        skills:
          type: array
          items:
            $ref: '#/components/schemas/EmbeddedSkill'
        talent_pool_id:
          type: integer
        type:
          type: string
        posting_type:
          type: string
        bids_count:
          type: integer
        submission_deadline:
          type: string
        submission_deadline_time_zone:
          type: string
        ccy:
          type: string
        fee_methodology:
          type: string
          enum:
            - markup
            - supplier_absorbed
            - tiered_markup
            - supplier_absorbed_itemized
            - markup_itemized
          example: markup
        fee_schedule_id:
          type: integer
        award_type:
          type: string
          enum:
            - direct_award
            - competition
          example: direct_award
        risk_level_id:
          type: integer
        is_template:
          type: boolean
          example: true
        quality_score_allocation_percentage:
          type: string
        cost_score_allocation_percentage:
          type: string
        award_suppliers:
          type: array
          items:
            type: string
        approved:
          type: boolean
          example: true
        submitted_at:
          type: string
        approved_at:
          type: string
        hired_at:
          type: string
        start_date:
          type: string
        due_on:
          type: string
        original_due_on:
          type: string
        ended_at:
          type: string
        closed_at:
          type: string
        auto_close_at:
          type: string
        halted_comment:
          type: string
        cancellation_reason_id:
          type: integer
        cancellation_other_reason:
          type: string
        cancelled_by:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedUser'
            - type: 'null'
        cancelled_at:
          type: string
        completed_by:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedUser'
            - type: 'null'
        closed_by:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedUser'
            - type: 'null'
        visibility:
          type: string
        bafo_submission_deadline:
          type: string
        bid_round:
          type: integer
        original_project_id:
          type: integer
        location:
          $ref: '#/components/schemas/EmbeddedLocation'
        target_cost:
          $ref: '#/components/schemas/Money'
        budget:
          $ref: '#/components/schemas/Money'
        original_budget:
          $ref: '#/components/schemas/Money'
        rate:
          $ref: '#/components/schemas/Money'
        original_rate:
          $ref: '#/components/schemas/Money'
        fee:
          type: string
        markup:
          type: string
        estimated_savings:
          $ref: '#/components/schemas/Money'
        projected_recognized_savings:
          $ref: '#/components/schemas/Money'
        payment_terms_in_days:
          type: integer
        client_payment_terms_in_days:
          type: integer
        permit_supplier_defined_milestones:
          type: string
        supplier_defined_milestones:
          type: string
        client_defined_milestones_mandatory:
          type: string
        invoices_cis:
          type: string
        cis_end_user_client:
          type: string
        is_child:
          type: boolean
          example: true
        is_parent:
          type: boolean
          example: true
        custom_fields:
          type: object
          additionalProperties:
            type: string
          description: Key-value pairs of custom field data
        badges:
          type: array
          items:
            type: string
        project_screening_questions:
          type: string
        client:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedUser'
            - type: 'null'
        administrator:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedUser'
            - type: 'null'
        client_org:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedOrg'
            - type: 'null'
        cost_centers:
          type: array
          items:
            $ref: '#/components/schemas/EmbeddedProjectCostCenter'
        milestones:
          type: array
          items:
            $ref: '#/components/schemas/Milestone'
        supplier:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedSupplier'
            - type: 'null'
        created_at:
          type: string
        updated_at:
          type: string
        project_matches_count:
          type: integer
        project_line_items:
          type: array
          items:
            $ref: '#/components/schemas/ProjectLineItem'
        award_criteria_groups:
          type: array
          items:
            $ref: '#/components/schemas/EmbeddedAwardCriteriaGroup'
    Error:
      type: object
      description: Error envelope returned by every non-2xx V4 response
      properties:
        error:
          type: string
          example: insufficient_scope
        error_description:
          type: string
        message:
          type: string
        details:
          type: object
          additionalProperties: true
        required_scope:
          type: string
          example: projects:read
        provided_scopes:
          type: array
          items:
            type: string
    Money:
      type: object
      properties:
        cents:
          type: integer
          example: 150000
        currency:
          type: string
          example: GBP
    EmbeddedSkillCategory:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        code:
          type: string
        slug:
          type: string
        precedence:
          type: integer
        parent_id:
          type: integer
        parent_name:
          type: string
        parent_slug:
          type: string
    EmbeddedSkill:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        slug:
          type: string
    EmbeddedUser:
      type: object
      properties:
        id:
          type: integer
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
        org_id:
          type: integer
        org_name:
          type: string
    EmbeddedLocation:
      type: object
      properties:
        type:
          type: string
        code:
          type: string
        name:
          type: string
        address:
          oneOf:
            - $ref: '#/components/schemas/Address'
            - type: 'null'
    EmbeddedOrg:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        is_external_client:
          type: boolean
          example: true
    EmbeddedProjectCostCenter:
      type: object
      properties:
        cost_center_id:
          type: integer
        allocation_percentage:
          type: string
        name:
          type: string
        code:
          type: string
        admin_custom_fields:
          type: object
          additionalProperties:
            type: string
          description: Key-value pairs of custom field data
        project_id:
          type: integer
    Milestone:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
        status:
          type: string
          enum:
            - open
            - submitted
            - approved
            - rejected
            - change_requested
            - on_hold
            - draft
            - cancelled
            - level_1_approved
            - closed
          example: open
        client_suggested:
          type: boolean
          example: true
        close_project:
          type: boolean
          example: true
        comments:
          type: string
        details:
          type: string
        due_on:
          type: string
        project_summary:
          type: string
        mandatory:
          type: boolean
          example: true
        notes:
          type: string
        original_id:
          type: integer
        original_rate:
          $ref: '#/components/schemas/Money'
        purchase_order_line_id:
          type: integer
        rate:
          $ref: '#/components/schemas/Money'
        submitted_at:
          type: string
        interim_valuation_date:
          type: string
        tiered_markup_fee:
          $ref: '#/components/schemas/Money'
        children:
          type: array
          items:
            type: integer
          description: Array of IDs
        parents:
          type: array
          items:
            type: integer
          description: Array of IDs
        custom_fields:
          type: object
          additionalProperties:
            type: string
          description: Key-value pairs of custom field data
        created_at:
          type: string
        updated_at:
          type: string
        project_id:
          type: integer
        final_claim:
          type: boolean
          example: true
        delivered_on:
          type: string
        approved_by:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedUser'
            - type: 'null'
        rejected_by:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedUser'
            - type: 'null'
        level_1_approved_by:
          oneOf:
            - $ref: '#/components/schemas/EmbeddedUser'
            - type: 'null'
    EmbeddedSupplier:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        email:
          type: string
        vetting_status:
          type: string
          enum:
            - NOT REGISTERED
            - PASSED
            - FAILED
            - PENDING
          example: NOT REGISTERED
        tax_number:
          type: string
        tax_registered:
          type: boolean
          example: true
    ProjectLineItem:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        manufacturer_name:
          type: string
        manufacturer_part_number:
          type: string
        uom:
          type: string
        item:
          type: string
        item_type:
          type: string
          enum:
            - item
            - service
          example: item
        price:
          $ref: '#/components/schemas/Money'
        quantity:
          type: string
        net_total_price:
          type: string
        quantity_delivered:
          type: string
        quantity_undelivered:
          type: string
        custom_fields:
          type: object
          additionalProperties:
            type: string
          description: Key-value pairs of custom field data
        created_at:
          type: string
        updated_at:
          type: string
        project_id:
          type: integer
    EmbeddedAwardCriteriaGroup:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        group_type:
          type: string
        weighting:
          type: integer
        has_sub_criteria:
          type: boolean
          example: true
        position:
          type: integer
        project_quality_criteria:
          type: array
          items:
            $ref: '#/components/schemas/EmbeddedProjectQualityCriterium'
    Address:
      type: object
      properties:
        id:
          type: integer
        line1:
          type: string
        line2:
          type: string
        city:
          type: string
        region:
          type: string
        postcode:
          type: string
        country_code:
          type: string
        formatted:
          type: string
    EmbeddedProjectQualityCriterium:
      type: object
      properties:
        id:
          type: integer
        description:
          type: string
        weighting:
          type: integer
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        OAuth 2.0 client credentials. The access token from POST /oauth/token is
        sent as a bearer token. Request only the scopes you need.
      flows:
        clientCredentials:
          tokenUrl: https://api.zivio.net/api/v4/oauth/token
          scopes:
            bank_accounts:read: Read bank account details on suppliers and the org.
            catalogs:read: Read catalog items.
            cost_centers:read: Read cost center records.
            eoi_responses:read: Read responses to expressions of interest.
            eois:read: Read expressions of interest.
            offers:read: Read offers for projects.
            org_units:read: Read your organization unit hierarchy.
            org_users:read: Read members of your organization.
            resources:read: Read resource (worker) records.
            sales_invoices:read: Read invoices issued to clients.
            sales_milestones:read: Read milestones on sales engagements.
            skill_categories:read: Read the skill category taxonomy.
            skill_taxonomies:read: Read skill taxonomy structure.
            skills:read: Read individual skills.
            supplier_documents:read: Read documents uploaded by suppliers.
            supplier_lists:read: Read curated lists of suppliers.
            supplier_users:read: Read users belonging to supplier organizations.
            tax_types:read: Read configured tax types.
            users:read: Read user profiles.
            variation_orders:read: Read variation orders on projects.
            welcome:read: 'Required: confirms your identity to the application.'
            bid_evaluations:read: >-
              Read evaluation scorecards for bids, including criterion scores
              and quality, cost and total scores.
            bid_evaluations:write: >-
              Score bids against a project's quality criteria and override
              calculated cost scores.
            bids:read: Read bids submitted on projects.
            bids:write: >-
              Shortlist, select, eliminate and reinstate bids submitted on
              projects.
            invoices:read: Read invoices on projects.
            invoices:write: Create and update invoices.
            notes:read: Read notes on projects and EOIs.
            notes:write: Create and update notes on projects and EOIs.
            project_approvals:read: Read project approval workflows.
            project_approvals:write: Create and update project approval workflows.
            project_conversations:read: Read messages exchanged with suppliers on a project.
            project_conversations:write: Send messages to suppliers on a project.
            project_invitations:read: Read supplier invitations on projects.
            project_invitations:write: Invite suppliers to bid on projects.
            project_questions:read: Read supplier clarification questions on projects.
            project_questions:write: Answer and approve supplier clarification questions.
            projects:read: Read projects.
            projects:write: Create and update projects.
            milestones:read: Read milestones on projects.
            milestones:write: Create and update milestones.
            orgs:read: Read organization records.
            orgs:write: Create and update organization records.
            purchase_orders:read: Read purchase orders.
            purchase_orders:write: Create and update purchase orders.
            reviews:read: Read reviews left on suppliers.
            reviews:write: Create and update reviews.
            suppliers:read: Read supplier profiles.
            suppliers:write: Create and update supplier profiles.
            raw_scorecard_entries:write: Create and update raw scorecard entries.
            raw_scorecard_entries:read: Read raw scorecard entries.
            tasks:read: >-
              Read the acting user's task queue, including outstanding approvals
              and items to review.
            tasks:write: Complete and dismiss tasks in the acting user's task queue.
            act_as_user: >-
              Make requests as another user within the token holder's delegation
              boundary.
    tenantId:
      type: apiKey
      name: zivio-tenant-id
      in: header
      description: >-
        Your Zivio organisation identifier. The regional API endpoints serve
        every Zivio organisation, so each request must identify yours.

````