FULFILLED, you upload the compiled packet to the VMS.
Packets
A packet is one or more fulfilled artifacts grouped for a single VMS upload. Requirements share apacketGroup (for example clinical vs hr). GET /placement/{id} returns the packets on that placement:
Starting an upload
CallPOST /vms/upload-packet with the packet id from the placement:
202):
vmsPlacementRefId on the placement). Which VMS portal and how the files are attached is part of the integration config — you only pass the packet id.
Tracking status
PollGET /placement/{id}/package-status. Each packet includes status, uploadedAt, and compiledFileId once those exist.
Typical path:
FAILED, inspect the placement requirements (rejected / expired items), fix them, and call POST /vms/upload-packet again with the same packet_id.