Create an equipment order intent
Plan equipment for someone as a task the ticket tracks: a catalog order to place and/or devices and accessories to hand over from stock. Creates the intent and its EQUIPMENT_ORDER task, and places nothing yet — executeEquipmentOrderIntent does. Pass the ticket the work belongs to as parentTicketId; without one Primo opens a ticket for the employee to hold the task. createTicket and createTask cannot make a typed task. Returns the intent id, its taskId and the ticketId holding it. The task cannot be marked done by hand; it completes when the intent executes. An equipment order cannot be scheduled: a scheduleDate is refused with SCHEDULE_NOT_SUPPORTED_FOR_TYPE, since nothing would place the order at that date — create the intent now and execute it when the order is due. Build order as for createOrder: products from searchCatalogProducts and getCatalogProduct, the billing profile from getBillingProfiles, the address from getCompanyAddresses or the employee record. 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. Refused with PARENT_TICKET_IS_TYPED or PARENT_TICKET_IS_A_TASK (pass the untyped ticket instead), PARENT_TICKET_NOT_FOUND, EMPLOYEE_NOT_FOUND, and INVENTORY_ASSIGNMENT_REQUIRES_EMPLOYEE for stock without an employee.
Authorizations
Use your Primo API key in the Authorization header as Bearer <API_KEY>.
Body
Catalog order to place on execute, replaced whole on update. Omit or send null when nothing is purchased.
Devices and accessories taken from existing stock and handed over to the employee on execute.
Send the employee the MDM enrollment request on execute. Defaults to false.
Send that enrollment request to the personal email. Defaults to false.
The untyped ticket the order belongs to. Omit it and Primo opens a ticket to hold the task.
^[a-f\d]{24}$Employee the equipment is for (from getEmployees). Required to hand over stock; fixed once created.
^[a-f\d]{24}$Not supported for an equipment order: refused with SCHEDULE_NOT_SUPPORTED_FOR_TYPE. Leave it out and execute the intent when the order is due.
^(?:(?:\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))$Response
Intent id — pass it to updateEquipmentOrderIntent and executeEquipmentOrderIntent
The EQUIPMENT_ORDER task that tracks this order
The ticket holding that task: the parentTicketId sent, or the one Primo opened. Null if it could not be read back.
The order placed on execute, null until then or when nothing was bought
When the intent was executed; null while it can still change
^(?:(?:\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))$^(?:(?:\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))$^(?:(?:\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))$