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

# Update an equipment order intent

> Change what an equipment order intent will do before it executes. Only the fields you send change; `order` and `assignedFromInventory` are replaced whole, and null clears one. The employee cannot change: create a new intent for someone else. Refused with `INTENT_ALREADY_EXECUTED` once executed, `TICKET_CLOSED` when its task is completed or cancelled, `INVENTORY_ASSIGNMENT_REQUIRES_EMPLOYEE` for stock on an intent with no employee. Stock ids are checked against the company stock on execute. An equipment order cannot be scheduled, so there is no `scheduleDate` here: execute the intent when the order is due. `executeOnboardingEquipment` is the legacy twin: use it only for an onboarding still on the classic Equipment step, which it closes. Use the equipment order intent for equipment work tracked as a task on a ticket (an EQUIPMENT_ORDER task) — it never closes an onboarding Equipment step.

<span className="badge-write">Key: Write</span><span className="badge-company">Scope: Company</span>


## OpenAPI

````yaml https://api.getprimo.com/openapi.json patch /equipment-order-intents/{intentId}
openapi: 3.1.1
info:
  title: Public API - BETA
  description: Read docs on https://docs.getprimo.com/
  version: '1.0'
  contact: {}
servers:
  - url: https://api.getprimo.com
security:
  - apikey: []
tags: []
paths:
  /equipment-order-intents/{intentId}:
    patch:
      tags:
        - Orders
      summary: Update an equipment order intent
      description: >-
        Change what an equipment order intent will do before it executes. Only
        the fields you send change; `order` and `assignedFromInventory` are
        replaced whole, and null clears one. The employee cannot change: create
        a new intent for someone else. Refused with `INTENT_ALREADY_EXECUTED`
        once executed, `TICKET_CLOSED` when its task is completed or cancelled,
        `INVENTORY_ASSIGNMENT_REQUIRES_EMPLOYEE` for stock on an intent with no
        employee. Stock ids are checked against the company stock on execute. An
        equipment order cannot be scheduled, so there is no `scheduleDate` here:
        execute the intent when the order is due. `executeOnboardingEquipment`
        is the legacy twin: use it only for an onboarding still on the classic
        Equipment step, which it closes. Use the equipment order intent for
        equipment work tracked as a task on a ticket (an EQUIPMENT_ORDER task) —
        it never closes an onboarding Equipment step.
      operationId: updateEquipmentOrderIntent
      parameters:
        - name: intentId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEquipmentOrderIntentBody'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentOrderIntent_Output'
components:
  schemas:
    UpdateEquipmentOrderIntentBody:
      type: object
      properties:
        order:
          description: >-
            Catalog order to place on execute, replaced whole on update. Omit or
            send null when nothing is purchased.
          anyOf:
            - type: object
              properties:
                countryCode:
                  description: Catalog country code (lowercase ISO 3166-1 alpha-2)
                  type: string
                  enum:
                    - af
                    - al
                    - dz
                    - ad
                    - ao
                    - ag
                    - ar
                    - am
                    - au
                    - at
                    - az
                    - bs
                    - bh
                    - bd
                    - bb
                    - by
                    - be
                    - bz
                    - bj
                    - bt
                    - bo
                    - ba
                    - bw
                    - br
                    - bn
                    - bg
                    - bf
                    - bi
                    - cv
                    - kh
                    - cm
                    - ca
                    - cf
                    - td
                    - cl
                    - cn
                    - co
                    - km
                    - cg
                    - cr
                    - hr
                    - cu
                    - cy
                    - cz
                    - cd
                    - dk
                    - dj
                    - dm
                    - do
                    - ec
                    - eg
                    - sv
                    - gq
                    - er
                    - ee
                    - sz
                    - et
                    - fj
                    - fi
                    - fr
                    - ga
                    - gm
                    - ge
                    - de
                    - gh
                    - gr
                    - gd
                    - gt
                    - gn
                    - gw
                    - gy
                    - ht
                    - hn
                    - hu
                    - is
                    - in
                    - id
                    - ir
                    - iq
                    - ie
                    - il
                    - it
                    - jm
                    - jp
                    - jo
                    - kz
                    - ke
                    - ki
                    - kw
                    - kg
                    - la
                    - lv
                    - lb
                    - ls
                    - lr
                    - ly
                    - li
                    - lt
                    - lu
                    - mg
                    - mw
                    - my
                    - mv
                    - ml
                    - mt
                    - mh
                    - mr
                    - mu
                    - mx
                    - fm
                    - md
                    - mc
                    - mn
                    - me
                    - ma
                    - mz
                    - mm
                    - na
                    - nr
                    - np
                    - nl
                    - nz
                    - ni
                    - ne
                    - ng
                    - kp
                    - mk
                    - 'no'
                    - om
                    - pk
                    - pw
                    - pa
                    - pg
                    - py
                    - pe
                    - ph
                    - pl
                    - pt
                    - qa
                    - ro
                    - ru
                    - rw
                    - kn
                    - lc
                    - vc
                    - ws
                    - sm
                    - st
                    - sa
                    - sn
                    - rs
                    - sc
                    - sl
                    - sg
                    - sk
                    - si
                    - sb
                    - so
                    - za
                    - kr
                    - ss
                    - es
                    - lk
                    - sd
                    - sr
                    - se
                    - ch
                    - sy
                    - tw
                    - tj
                    - tz
                    - th
                    - tl
                    - tg
                    - to
                    - tt
                    - tn
                    - tr
                    - tm
                    - tv
                    - ug
                    - ua
                    - ae
                    - gb
                    - us
                    - uy
                    - uz
                    - vu
                    - va
                    - ve
                    - vn
                    - ye
                    - zm
                    - zw
                products:
                  minItems: 1
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        description: Catalog product id
                        type: string
                        minLength: 1
                      variantId:
                        description: Selected product variant id
                        type: string
                        minLength: 1
                      supplierId:
                        description: Supplier id for this product
                        type: string
                        minLength: 1
                      hasZTD:
                        type: boolean
                      configuration:
                        type: object
                        properties:
                          enableZTD:
                            type: boolean
                          enableACE:
                            type: boolean
                        required:
                          - enableZTD
                          - enableACE
                    required:
                      - id
                      - variantId
                      - supplierId
                      - configuration
                shippingAddressType:
                  description: >-
                    Where the address comes from. HOME also back-fills the
                    employee record when it has no address yet, so send it
                    whenever the address is the employee's own.
                  anyOf:
                    - type: string
                      enum:
                        - OFFICE
                        - HOME
                        - NEW
                    - type: 'null'
                shippingAddress:
                  description: >-
                    Delivery address. Take it from `getCompanyAddresses` or from
                    the employee record — never compose one.
                  type: object
                  properties:
                    name:
                      anyOf:
                        - type: string
                        - type: 'null'
                    contactName:
                      anyOf:
                        - type: string
                        - type: 'null'
                    phone:
                      anyOf:
                        - type: string
                        - type: 'null'
                    street:
                      type: string
                      minLength: 1
                    complement:
                      anyOf:
                        - type: string
                        - type: 'null'
                    postalCode:
                      type: string
                      minLength: 1
                    city:
                      type: string
                      minLength: 1
                    country:
                      anyOf:
                        - type: string
                        - type: 'null'
                    countryCode:
                      anyOf:
                        - type: string
                        - type: 'null'
                  required:
                    - street
                    - postalCode
                    - city
                billingProfileId:
                  description: >-
                    An eligible company billing profile id from
                    `getBillingProfiles`
                  anyOf:
                    - type: string
                      minLength: 1
                    - type: 'null'
                notificationEmails:
                  type: array
                  items:
                    type: string
                companyComment:
                  anyOf:
                    - type: string
                      minLength: 1
                    - type: 'null'
                appleCareEnterprise:
                  anyOf:
                    - type: string
                    - type: 'null'
                companyPurchaseNumber:
                  anyOf:
                    - type: string
                    - type: 'null'
              required:
                - countryCode
                - products
                - shippingAddress
            - type: 'null'
        assignedFromInventory:
          description: >-
            Devices and accessories taken from existing stock and handed over to
            the employee on execute.
          anyOf:
            - type: object
              properties:
                deviceIds:
                  default: []
                  type: array
                  items:
                    type: string
                    minLength: 1
                accessoryIds:
                  default: []
                  type: array
                  items:
                    type: string
                    minLength: 1
            - type: 'null'
        automaticEnrollment:
          description: >-
            Send the employee the MDM enrollment request on execute. Defaults to
            false.
          type: boolean
        sendToPersonalEmail:
          description: >-
            Send that enrollment request to the personal email. Defaults to
            false.
          type: boolean
    EquipmentOrderIntent_Output:
      type: object
      properties:
        id:
          type: string
          description: >-
            Intent id — pass it to `updateEquipmentOrderIntent` and
            `executeEquipmentOrderIntent`
        taskId:
          description: The EQUIPMENT_ORDER task that tracks this order
          anyOf:
            - type: string
            - type: 'null'
        ticketId:
          description: >-
            The ticket holding that task: the parentTicketId sent, or the one
            Primo opened. Null if it could not be read back.
          anyOf:
            - type: string
            - type: 'null'
        employeeId:
          anyOf:
            - type: string
            - type: 'null'
        order:
          anyOf:
            - type: object
              properties:
                countryCode:
                  description: Catalog country code (lowercase ISO 3166-1 alpha-2)
                  type: string
                  enum:
                    - af
                    - al
                    - dz
                    - ad
                    - ao
                    - ag
                    - ar
                    - am
                    - au
                    - at
                    - az
                    - bs
                    - bh
                    - bd
                    - bb
                    - by
                    - be
                    - bz
                    - bj
                    - bt
                    - bo
                    - ba
                    - bw
                    - br
                    - bn
                    - bg
                    - bf
                    - bi
                    - cv
                    - kh
                    - cm
                    - ca
                    - cf
                    - td
                    - cl
                    - cn
                    - co
                    - km
                    - cg
                    - cr
                    - hr
                    - cu
                    - cy
                    - cz
                    - cd
                    - dk
                    - dj
                    - dm
                    - do
                    - ec
                    - eg
                    - sv
                    - gq
                    - er
                    - ee
                    - sz
                    - et
                    - fj
                    - fi
                    - fr
                    - ga
                    - gm
                    - ge
                    - de
                    - gh
                    - gr
                    - gd
                    - gt
                    - gn
                    - gw
                    - gy
                    - ht
                    - hn
                    - hu
                    - is
                    - in
                    - id
                    - ir
                    - iq
                    - ie
                    - il
                    - it
                    - jm
                    - jp
                    - jo
                    - kz
                    - ke
                    - ki
                    - kw
                    - kg
                    - la
                    - lv
                    - lb
                    - ls
                    - lr
                    - ly
                    - li
                    - lt
                    - lu
                    - mg
                    - mw
                    - my
                    - mv
                    - ml
                    - mt
                    - mh
                    - mr
                    - mu
                    - mx
                    - fm
                    - md
                    - mc
                    - mn
                    - me
                    - ma
                    - mz
                    - mm
                    - na
                    - nr
                    - np
                    - nl
                    - nz
                    - ni
                    - ne
                    - ng
                    - kp
                    - mk
                    - 'no'
                    - om
                    - pk
                    - pw
                    - pa
                    - pg
                    - py
                    - pe
                    - ph
                    - pl
                    - pt
                    - qa
                    - ro
                    - ru
                    - rw
                    - kn
                    - lc
                    - vc
                    - ws
                    - sm
                    - st
                    - sa
                    - sn
                    - rs
                    - sc
                    - sl
                    - sg
                    - sk
                    - si
                    - sb
                    - so
                    - za
                    - kr
                    - ss
                    - es
                    - lk
                    - sd
                    - sr
                    - se
                    - ch
                    - sy
                    - tw
                    - tj
                    - tz
                    - th
                    - tl
                    - tg
                    - to
                    - tt
                    - tn
                    - tr
                    - tm
                    - tv
                    - ug
                    - ua
                    - ae
                    - gb
                    - us
                    - uy
                    - uz
                    - vu
                    - va
                    - ve
                    - vn
                    - ye
                    - zm
                    - zw
                products:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        description: Catalog product id
                        type: string
                        minLength: 1
                      variantId:
                        description: Selected product variant id
                        type: string
                        minLength: 1
                      supplierId:
                        description: Supplier id for this product
                        type: string
                        minLength: 1
                      hasZTD:
                        type: boolean
                      configuration:
                        type: object
                        properties:
                          enableZTD:
                            type: boolean
                          enableACE:
                            type: boolean
                        required:
                          - enableZTD
                          - enableACE
                        additionalProperties: false
                    required:
                      - id
                      - variantId
                      - supplierId
                      - hasZTD
                      - configuration
                    additionalProperties: false
                shippingAddressType:
                  anyOf:
                    - type: string
                      enum:
                        - OFFICE
                        - HOME
                        - NEW
                    - type: 'null'
                shippingAddress:
                  description: >-
                    Delivery address. Take it from `getCompanyAddresses` or from
                    the employee record — never compose one.
                  type: object
                  properties:
                    name:
                      anyOf:
                        - type: string
                        - type: 'null'
                    contactName:
                      anyOf:
                        - type: string
                        - type: 'null'
                    phone:
                      anyOf:
                        - type: string
                        - type: 'null'
                    street:
                      type: string
                      minLength: 1
                    complement:
                      anyOf:
                        - type: string
                        - type: 'null'
                    postalCode:
                      type: string
                      minLength: 1
                    city:
                      type: string
                      minLength: 1
                    country:
                      anyOf:
                        - type: string
                        - type: 'null'
                    countryCode:
                      anyOf:
                        - type: string
                        - type: 'null'
                  required:
                    - street
                    - postalCode
                    - city
                  additionalProperties: false
                billingProfileId:
                  anyOf:
                    - type: string
                    - type: 'null'
                notificationEmails:
                  type: array
                  items:
                    type: string
                companyComment:
                  anyOf:
                    - type: string
                    - type: 'null'
                appleCareEnterprise:
                  anyOf:
                    - type: string
                    - type: 'null'
                companyPurchaseNumber:
                  anyOf:
                    - type: string
                    - type: 'null'
              required:
                - countryCode
                - products
                - shippingAddressType
                - shippingAddress
                - billingProfileId
                - notificationEmails
                - companyComment
                - appleCareEnterprise
                - companyPurchaseNumber
              additionalProperties: false
            - type: 'null'
        assignedFromInventory:
          anyOf:
            - type: object
              properties:
                deviceIds:
                  default: []
                  type: array
                  items:
                    type: string
                    minLength: 1
                accessoryIds:
                  default: []
                  type: array
                  items:
                    type: string
                    minLength: 1
              required:
                - deviceIds
                - accessoryIds
              additionalProperties: false
            - type: 'null'
        automaticEnrollment:
          type: boolean
        sendToPersonalEmail:
          type: boolean
        orderId:
          description: >-
            The order placed on execute, null until then or when nothing was
            bought
          anyOf:
            - type: string
            - type: 'null'
        executedAt:
          description: When the intent was executed; null while it can still change
          anyOf:
            - type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            - type: 'null'
        createdAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        updatedAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - id
        - taskId
        - ticketId
        - employeeId
        - order
        - assignedFromInventory
        - automaticEnrollment
        - sendToPersonalEmail
        - orderId
        - executedAt
        - createdAt
        - updatedAt
      additionalProperties: false
  securitySchemes:
    apikey:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: >-
        Use your Primo API key in the Authorization header as `Bearer
        <API_KEY>`.

````

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