Please see API documentation for implementation details. Here list the details required for createBooking mutation.
query:
mutation makeBooking2($input: MakeBookingInput!) { makeBooking(input: $input) { uuid no jobs { uuid trips { uuid __typename } __typename } __typename } }
variables:
- Note, the uuid is uniquely generated for every booking. Duplicate calls with this UUID will be rejected. This includes the uuid for jobs, and trips.
- Note all time is in UTC time ISO format 2025-06-11T03:52:19.208Z
{ "input": { "uuid": "c5c11ac0-bb78-4e0b-ba11-301dcdb5749c", "type": "IMPORT", "isOverrideBlockDuplicate": false, "billToUuid": "d42b6932-f02a-4527-8a1b-d2a4ba7ed2c7", "jobs": [ { "details": { "containerNo": "sdfaasdgasd", "sealNo": "seal", "containerSize": "40", "containerType": "DG2", "trailerType": "SL", "handling": "-", "weight": "WEIGHT", "temperature": "TEMP", "vesselID": "VESSELID", "reference": "REF" }, "type": "IMPORT", "remarks": "Remarks", "trips": [ { "fromCompanyUuid": "176b4ab3-97da-47b6-be4a-f8f96b9dc51b", "fromUuid": "2de66e02-4d6a-4c2d-a453-2cd472943d2d", "toCompanyUuid": "3423401b-5964-437d-817d-76590870ffa7", "toUuid": "f61c04a6-3da7-4d55-96de-2f3a36329ff0", "remarks": "Remarks Delivery", "uuid": "ddcdc9d4-b176-4b69-83ab-41ffd76c18ee", "details": {} }, { "fromCompanyUuid": "3423401b-5964-437d-817d-76590870ffa7", "fromUuid": "f61c04a6-3da7-4d55-96de-2f3a36329ff0", "toCompanyUuid": "48a74aa7-52ac-4583-8d61-8ee0afaf4890", "toUuid": "6e5e489c-fba7-4825-91ce-ef7a10a2d8c6", "remarks": "Remarks Collection", "uuid": "ea1c99d2-f7d3-4b80-a419-113dbe5599ed", "details": {} } ], "tripFormat": "linear", "uuid": "25b27d8c-0ff4-48d3-9e1c-9af924698825" } ], "details": { "requiredDate": "2025-04-30T00:16:27.121Z", "deliveryHour": "24 HRS", "requestNo": "Request No", "shippingAgent": "5fac94a9-e91b-4384-b1dd-221ceabd4300", "operatorCode": "OperationsCode", "cmo": "CMO", "bl": "sdafds", "scn": "asdfdsaf", "reference": "Reference", "forwardingAgent": "0431c181-53fa-44f8-835e-90154ee345c9", "consignee": "da0a2459-402a-435d-8acb-30e6f4c7a985", "shippingRefNo": "ShippingRefNo", "soNo": "SoNo", "vesselName": "asdfasdf", "voyageNo": "VoyageNo", "eta": "2025-04-28T00:16:43.039Z", "storageDate": "2025-05-02T00:17:00.225Z", "commodity": "Commodity", "dischargePort": "DischargePort", "options": [ "backToBack", "directDelivery", "directLoading", "customsSeal", "importReuseExport", "diversion" ], "confirmCoc": true, "completeness": true }, "remarks": "Remarks", "_ext": { "billToUuid": "externalBillToId", "details.shippingAgent": "ExternalShippingAgentId", "jobs": [ "trips": [{ "toCompanyUuid": "firstJobTripToCompanyId", "toUuid": "firstJobTripToAddressId" }] ] } } }
For external mapping, note the _ext value in the bottom. All fields entered into this will bypass validation and the mapping will be done by the operations team in ShipX. If the field is required, and not passed in the body or _ext field, the validation will still fail. If both fields are pass, the fields in the ext mapping will always take priority.