This interface is applicable for data integration API, read Api Access Process first
send data to lenovo
Description:After goods issue, when receive shipment milestone.
Method:POST
ContentType:application/json
Path:/loc_shipment/receive/iftsta
| Environment | URL |
|---|---|
| test | https://api-cn-t.lenovo.com/uat/v1.0/supplychain/loc_shipment/receive/iftsta |
| prod | https://api-cn.lenovo.com/v1.0/supplychain/loc_shipment/receive/iftsta |
Request body structure:
| Field | desc | field type | mandatory | comments |
|---|---|---|---|---|
| user_name | partner’s account name that registered in LLGW | String(100) | Y | |
| data | message body | Object | Y | shipment status object |
| { | object begin | shipment status object | ||
| tracking_number | String(30) | Y | Please use delivery_number | |
| tracking_type | String(4) | Y | 1=delivery_number;2=BOL;3=HAWB. Please use 1 | |
| tracking_sender_id | String(30) | Y | 3PL SCAC eg:***** | |
| tracking_sender_name | String(50) | N | 3PL lenovo code eg: 100**00 | |
| forwarder_code | String(10) | N | 3PL SCAC eg:***** | |
| forwarder_id | String(10) | N | 3PL lenovo code eg: 100**100 | |
| employee_details | String(35) | N | ||
| total_weight | String(17) | N | Total weight | |
| weight_unit | String(3) | N | Weight Unit | |
| total_number_of_packages | String(14) | N | Package number | |
| measure_unit | String(3) | N | Measure Unit | |
| status_type | String(1) | N | D=Delivery;B=BOL;P=Package | |
| status_code | String(2) | N | Refer to 3.2.1 ENUM | |
| reason_code | String(3) | N | Refer to 3.2.2 ENUM | |
| status_date | String(8) | N | Status date | |
| status_time | String(6) | N | Status time | |
| status_timezone | String(6) | N | Time zone | |
| status_location_code | String(50) | N | Location code: UNLOCODE e.g. AEDXB | |
| status_location_code_type | String(3) | N | Qualifier = 145 | |
| status_location_country | String(20) | N | Country of location In EDIFACT: Qualifier = 126 | |
| mot | String(4) | N | 1-Maritime 2-Rail 3-Road 4-Air 5-Multimodal | |
| vessel_name | String(10) | N | Carrier identification eg: ***** | |
| shipping_line_name | String(50) | N | Carrier name | |
| forwarder_country | String(20) | N | Country of carrier | |
| in_bond_number | String(35) | N | In bound number | |
| payment_reference_number | String(35) | N | Payment refence number Eg: INVOICE IFTSTA | |
| flight_number | String(20) | N | Air fight number | |
| port_of_load | String(25) | N | Port of load Eg: CNSZX USAUS | |
| load_port_type | String(80) | N | Load port type Eg: 139 145 Airport place/location | |
| port_of_discharge | String(25) | N | Port of discharge Eg: USSEA PHX | |
| discharge_port_type | String(3) | N | Discharge port type Eg: 139 145 Airport place/location | |
| requested_delivery_date | String(8) | N | Requested delivery date | |
| requested_delivery_time | String(6) | N | Requested delivery time | |
| requested_delivery_timezone | String(6) | N | Requested delivery timezone | |
| estimated_delivery_date | String(8) | N | Estimated delivery date | |
| estimated_delivery_time | String(6) | N | Estimated delivery time | |
| estimated_delivery_timezone | String(6) | N | Estimated delivery timezone | |
| estimated_departure_date | String(8) | N | Estimated (from port) date | |
| estimated_departure_time | String(6) | N | Estimated (from port) time | |
| estimated_departure_timezone | String(6) | N | Estimated (from port) time zone | |
| estimated_arrival_date | String(8) | N | Estimated (at port) date | |
| estimated_arrival_time | String(6) | N | Estimated (at port) time | |
| estimated_arrival_timezone | String(6) | N | Estimated (at port) time zone | |
| partners | Object Array | Y | Ship from code | |
| [ | array begin | partner array | ||
| { | object begin | partner object | ||
| partner_qualifier | String(2) | Y | SF=ship from; DP=delivery party (ship to); PW=dispatch party | |
| partner_id | String(10) | N | Case SF : eg: OE65 (Lenovo shipping point) Case DP Eg: 1216116133(Lenovo customer ID) | |
| partner_type | String(2) | N | DC= Distribution Center; DE= Destination; OR= Origin (Shipping Point); PL=Plant; TC= Transcontinental Freight Bureau; WH=Warehouse | |
| party_name | String(40) | N | Name | |
| street1 | String(40) | N | ||
| street2 | String(40) | N | ||
| city_name | String(40) | N | ||
| postal_code | String(10) | N | ||
| country | String(3) | N | ||
| } | array end | partner object | ||
| ] | object end | partner array | ||
| shipment_numbers | Object Array | Y | Shipment reference number(service level information of shipment) | |
| [ | Array begin | shipment number array | ||
| { | object begin | shipment number object | ||
| shipment_info_qualifier | String(3) | Y | AGW= Scheme/plan number; VM=Name of the ocean vessel; VON=Number of the ocean voyage; ALP=Number of the ocean container; SN=Seal on the ocean container or trailer; AKB=Description of the container; HWB=House Airway Bill Number from air forwarder; MWB=Master Airway Bill Number from airline; CV=Trailer number from truck shipment; ZZZ=Name of person who received and signed for delivery; BM=Ocean Master Bill of Lading; BH=Ocean House Bill of Lading; AAY=For PNL CCO; Z01=Reference text1; Z02=Reference text2; Z03=Reference text3; Z04=Reference text4; Z05=Reference text5; Z06=Reference text6; Z07=Reference text7 | |
| shipment_info_value | String(35) | Y | Base on “shipment_info_qualifier” | |
| } | array end | shipment number object | ||
| ] | object end | shipment number array | ||
| carrier_legs | Object Array | Y | 21=1st leg;22=2nd leg;23=3rd leg | |
| [ | array begin | carrier leg array | ||
| { | object begin | carrier leg object | ||
| interline_carrier_leg | String(3) | Y | 21=1st leg;22=2nd leg;23=3rd leg | |
| carrier_code | String(10) | Y | ||
| } | array end | carrier leg object | ||
| ] | object end | carrier leg array | ||
| shipment_references | Object Array | Y | ||
| [ | array begin | shipment reference array | ||
| { | object begin | shipment reference object | ||
| ref_qualifier | String(3) | Y | ABT=Customs declaration number; AWB=Ari way bill number; HWB=House Airway Bill Number from air forwarder; BM=Ocean Master Bill of Lading; CN=Carrier's reference number; BH=Ocean House Bill of Lading; LO=Load planning number; MWB=Master Airway Bill Number from airline; VM=Name of the ocean vessel | |
| identification | String(35) | Y | Refer to ref_qualifier | |
| } | object end | shipment reference object | ||
| ] | array end | shipment reference array | ||
| equipments | Object Array | Y | ||
| [ | array begin | equipment array | ||
| { | object begin | equipment object | ||
| equipment_type | String(2) | Y | Eg:CN= Number of the ocean container OR Description of the container; TE= Trailer number; Others:Equipment ID; Equipment size and type description | |
| equipment_number | String(17) | N | CCLU7280646 | |
| equipment_type_code | String(10) | N | ||
| equipment_type_desc | String(10) | N | **** | |
| } | object end | equipment object | ||
| ] | array end | equipment array | ||
| tracking_status | Object Array | Y | Status code | |
| [ | array begin | tracking status array | ||
| { | object begin | tracking status object | ||
| status_code | String(4) | Y | Refer to 3.2.1 Status Code Enum List | |
| reason_code | String(4) | N | Refer to 3.2.2 Status Code Enum List | |
| status_date | String(8) | Y | ||
| status_time | String(6) | Y | ||
| status_timezone | String(6) | Y | ||
| } | object end | tracking status object | ||
| ] | array end | tracking status array | ||
| } | object end | shipment status object |
Request body sample:
json
JSON
{
"user_name":"K*****D",
"data":{
"tracking_number":"*****",
"tracking_type":"1",
"tracking_sender_name":"*****",
"tracking_sender_id":"*****",
"forwarder_code":" ***** ",
"forwarder_id":"*****",
"employee_details":"",
"total_weight":"0",
"weight_unit":"KGM",
"total_number_of_packages":"4",
"measure_unit":"PCE",
"stauts_type":"D",
"status_code":"X1",
"reason_code":" ",
"status_date":"20200816",
"status_time":"200000",
"status_timezone":"UTC+04",
"status_location_code":"*****",
"status_location_code_type":"145",
"status_location_country":"**",
"mot":"1",
"vessel_name":"COSU",
"shipping_line_name":"*****",
"forwarder_country":"*****",
"in_bond_number":"*****",
"payment_reference_number":"*****",
"flight_number":"CA-*****",
"port_of_load":"*****",
"load_port_type":"139",
"port_of_discharge":"USLAX",
"discharge_port_type":"139",
"requested_delivery_date":"20200816",
"requested_delivery_time":"173000",
"requested_delivery_timezone":" UTC+04",
"estimated_delivery_date":"20200816",
"estimated_delivery_time":"173000",
"estimated_delivery_timezone":" UTC+04",
"estimated_departure_date":"20200815",
"estimated_departure_time":"012500",
"estimated_departure_timezone":" UTC+04",
"estimated_arrival_date":"20200816",
"estimated_arrival_time":"100100",
"estimated_arrival_timezone":" UTC+04",
"partners":[
{
"partner_qualifier":"SF",
"partner_id":"121*****27",
"partner_type":"OR*****",
"party_name":"*****",
"street1":"*****",
"street2":"*****",
"city_name":"*****",
"postal_code":"*****",
"country":"CN"
},
{
"partner_qualifier":"DP",
"partner_id":" 121*****7",
"partner_type":"Destination",
"party_name":"*****LTD",
"street1":"*****",
"street2":"*****",
"city_name":"*****",
"postal_code":"*****",
"country":"CN"
}
],
"shipment_numbers":[
{
"shipment_info_qualifier":"BM",
"shipment_info_value":"*****"
},
{
"shipment_info_qualifier":"VM",
"shipment_info_value":"*****"
},
{
"shipment_info_qualifier":"VON",
"shipment_info_value":"*****"
},
{
"shipment_info_qualifier":"ALP",
"shipment_info_value":"*****"
},
{
"shipment_info_qualifier":"AKB",
"shipment_info_value":"****"
},
{
"shipment_info_qualifier":"BH",
"shipment_info_value":"*****"
}
],
"carrier_legs":[
{
"interline_carrier_leg":"main",
"carrier_code":"*****"
}
],
"shipment_references":[
{
"ref_qualifier":"PQ",
"identification":"*****"
},
{
"ref_qualifier":"AF",
"identification":"*****"
}
],
"equipments":[
{
"equipment_type":"TE",
"equipment_number":"*****",
"equipment_type_code":"BC",
"equipment_type_desc":"*****"
},
{
"equipment_type":"railway",
"equipment_number":"*****",
"equipment_type_code":"FS",
"equipment_type_desc":"*****"
}
],
"tracking_status":[
{
"status_code":"X1",
"reason_code":"A28",
"status_date":"20200816",
"status_time":"200000",
"status_timezone":"UTC+04"
}
]
}
}Response structure:
| Field | desc | field type | mandatory | comments |
|---|---|---|---|---|
| success | successful or failed flag | Boolean | Y | true/false |
| message | general message | String(50) | Y | |
| data | message detail | String(300) | N |
Response body sample:
json
JSON
{
"success": true,
"message": "Operation Successfully",
"data": ""
}Or
JSON
{
"success": false,
"message": "Operation Failed",
"data": " tracking number [38*****53] is not exists!"
}For some typical errors, you can have this Error Handling as a reference:
| Violation Category | HTTP Status Code | Tips Format | JSON Sample |
|---|---|---|---|
| Not Null | 400 | [error type] + [field name] is required! | { "success": false, "message": "Bad request error: [tracking_number] is required", "data": "" } |
| Length Mismatch | 400 | [error type] + [field name] its length should equal [len]! | { "success": false, "message": "Bad request error: [status_date] its length should equal 8", "data": "" } |
| Not a Natural Number | 400 | [error type] + [field name] it should be a natural number! | { "success": false, "message": "Bad request error: [total_number_of_packages] it should be a natural number", "data": "" } |
| Not a Decimal | 400 | [error type] + [field name] it should be a number! | { "success": false, "message": "Bad request error: [total_weight] it should be a number", "data": "" } |
| Out of Enumeration Scope | 400 | [error type] + [field name] it should be one of [enum list]! | { "success": false, "message": "Bad request error: [weight_unit] it should be one of [KGM,LBR]", "data": "" } |
| not match the regular expression | 400 | [error type] + [field name] it should match [RegExp rule]! | { "success": false, "message": "Bad request error: [status_timezone] it should match [UTC[+-]/d/d]", "data": "" } |
Status Code ENUM List:
| Order | Desc | Status Code |
|---|---|---|
| 1 | Booked | B |
| 2 | Booking Confirmed | BF |
| 3 | Awaiting Export | AW |
| 4 | GI Date | 01 |
| 5 | Shipment Has Been Reconsigned | AI |
| 6 | Shipment Acknowledged | XB |
| 7 | Pick up | AF |
| 8 | Shipment Cancelled | CA |
| 9 | Shipment Returned To Shipper | A3 |
| 10 | Pick-Up Appointment Date and Time | AA |
| 11 | Shipment Consolidation | SB |
| 12 | Seals Altered | SC |
| 13 | Unable to Process Shipment | UP |
| 14 | Arrived At Pickup Location Loading Dock | X8 |
| 15 | Arrived at Consol Hub | H1 |
| 16 | Departed Consol Hub | H2 |
| 17 | BL Dest Date (CD Date) | B6 |
| 18 | Tendered For Delivery | AJ |
| 19 | On-Board | AE |
| 20 | In Flight/Vessel depart | F |
| 21 | Estimated to Arrive (En Route) | E |
| 22 | Paperwork Received - Did Not Receive Shipment or Equipment | O |
| 23 | Arrived In Country or Gateway | A |
| 24 | Unloaded From Vessel | UV |
| 25 | Deliverd to Air Carrier | AN |
| 26 | Loaded On Feeder Vessel/Delivery Not Completed | AP |
| 27 | No Paper Work Received with Shipment or Equipment | N |
| 28 | No Hazardous Material Document Received | NH |
| 29 | No Seal On Load | NS |
| 30 | At Terminal, Intra-Terminal Movement | T |
| 31 | Weather Prevented Movement | WE |
| 32 | Loaded On Barge | AO |
| 33 | Notification | NT |
| 34 | Estimated Delivery | AG |
| 35 | Estimated To Depart Origin Location | C |
| 36 | Customs Cleared | CT |
| 37 | Awaiting Clearance | AC |
| 38 | Arrived At Customs | K |
| 39 | Out-Gate | OA |
| 40 | Loaded On Rail | AL |
| 41 | Delivered to Connecting Line | J |
| 42 | Arrived at Terminal Location | X4 |
| 43 | Unloaded From A Rail Car | UR |
| 44 | In-Gate | I |
| 45 | Enroute to Delivery Location | X6 |
| 46 | Available for Delivery | AV |
| 47 | Completed Unloading at Delivery Location | D |
| 48 | On Hand | OH |
| 49 | Departed Terminal Location | P |
| 50 | Delivery Appointment Date and Time | AD |
| 51 | Attempted Delivery | AH |
| 52 | Loaded On Truck | AM |
| 53 | Shipment Split | SA |
| 54 | Estimated Date And/Or Time Of Arrival At Consignee Loc | X2 |
| 55 | Shipment Delayed | SD |
| 56 | Spotted at Consignee's Location | S |
| 57 | Delivered | X1 |
Reason Code ENUM List:
| Reason Code | Des |
|---|---|
| 19 | CASUALTY LOSS |
| 140 | OTHER --- UPS |
| A03 | INCORRECT ADDRESS |
| A05 | UNABLE TO LOCATE |
| A07 | REFUSED BY CONSIGNEE |
| A09 | DAMAGED - DELIVERY COMPLETED |
| A1 | MISSED DELIVERY |
| A10 | DAMAGED - DELIVERY NOT COMPLETED |
| A11 | BUSINESS CLOSED |
| A12 | PACKAGE SORTED TO WRONG ROUTE |
| A13 | OTHER |
| A14 | RETURNED TO SHIPPER |
| A15 | BUSINESS ON STRIKE |
| A17 | PENDING CUSTOMER BOOK SLOT |
| A2 | INCORRECT ADDRESS /UNABLE TO LOCATE |
| A20 | RESTRICTED ARTICLES UNACCEPTABLE |
| A22 | PACKAGE MISSED INBOUND PLANE AT ORIGIN STATION |
| A24 | ACCIDENT |
| A28 | PACKAGE MISSORTED DURING AIRCRAFT UNLOAD |
| A3 | RETURNED TO SHIPPER |
| A30 | MECHANICAL BREAKDOWN |
| A33 | OTHER CARRIER RELATED |
| A40 | SHIPPER RELATED |
| A42 | HOLIDAY - CLOSED |
| A43 | WEATHER OR NATURAL DISASTER RELATED |
| A46 | RECIPIENT UNAVAILABLE-DELIVERY DELAYED |
| A49 | ODA/CARTAGE AGENT |
| A5 | UNABLE TO LOCATE |
| A51 | CARRIER KEYING ERROR |
| A6 | ADDRESS CORRECTED-DELIVERY ATTEMPTED |
| A84 | CIVIL EVENT DELAYED |
| A90 | RE-PALLITIZED |
| A91 | MISSED DELIVERY-CARRIER ERROR |
| A92 | EXCEEDS SERVICE LIMITATION |
| A95 | PAST CUT-OFF TIME |
| A96 | LATE HANDOVER FROM PRIOR 3PL |
| A97 | PORT CONGESTION (CARRIER) |
| A98 | FORWARDER CAPACITY ISSUE |
| A99 | VESSEL SCHEDULE RESTRICTION |
| AA | MIS-SORT |
| AD | PENDING CUSTOMER BOOK SLOT |
| AE | RESTRICTED ARTICLES UNACCEPTABLE |
| AG | CONSIGNEE RELATED |
| AH | DRIVER RELATED |
| AI | MECHANICAL BREAKDOWN |
| AJ | OTHER CARRIER RELATED |
| AK | DAMAGED - REWRAPPED IN HUB |
| AM | SHIPPER RELATED |
| AN | HOLIDAY-CLOSED |
| AO | WEATHER OR NATURAL DISASTER RELATED |
| AP | DELIVERY NOT COMPLETE |
| AQ | RECIPIENT UNAVAILABLE-DELIVERY DELAYED |
| AR | IMPROPER INTERNATIONAL PAPERWORK |
| AT | UNABLE TO CONTACT RECIPIENT FOR BROKER INFORMATION |
| AU | CIVIL EVENT DELAYED |
| AV | EXCEEDS SERVICE LIMITATION |
| AW | PAST CUT-OFF TIME |
| B01 | RECONSIGNED |
| B02 | APPOINTMENT OR PRE-ARRANGED DELIVERY DATE |
| B04 | US CUSTOMS HELD FOR PAYMENT |
| B06 | CONSIGNEE CLOSED (INVENTORY, VACATION, ETC.) |
| B08 | IMPROPER UNLOADING FACILITY OR EQUIPMENT |
| B09 | RECEIVING TIME RESTRICTED |
| B1 | CONSIGNEE CLOSED |
| B10 | NOTIFY BEFORE DELIVERY |
| B11 | HELD FOR PROTECTIVE SERVICE |
| B13 | HELD PER SHIPPER |
| B16 | ROAD CONDITIONS |
| B4 | HELD FOR PAYMENT BY CUSTOMS |
| B8 | IMPROPER UNLOADING FACILITY OR EQUIPMENT |
| BB | HELD PER SHIPPER |
| BC | MISSING DOCUMENTS |
| BD | BORDER CLEARANCE |
| BE | ROAD CONDITIONS |
| BG | OTHER |
| BK | PRE-ARRANGED APPOINTMENT |
| BL | RESTRICTED / INCOMPATIBLE |
| BS | REFUSED BY CUSTOMER |
| BSS | BRAND STORE E-COMMERCE SHIPMENT |
| BT | RETURNED TO SHIPPER |
| C01 | WAITING FOR CUSTOMER PICK-UP |
| C02 | FREIGHT NOT SHOWING DESTINATION |
| C03 | TRANSFERRED FOR NEXT DAY DELIVERY |
| C04 | CUSTOMER APPROVED EARLY DELIVERY |
| C05 | EXPEDITE DELIVERY, EARLY ARRIVAL |
| C07 | WAITING FOR CUSTOMER SPECIFIED CARRIER |
| C08 | COLLECT ON DELIVERY REQUIRED |
| C09 | CASH NOT AVAILABLE FROM CONSIGNEE |
| C1 | WAITING FOR CUSTOMER PICK-UP |
| C10 | CUSTOMS (IMPORT/EXPORT) |
| C4 | CUSTOMER VACATION |
| C5 | CUSTOMER STRIKE |
| C6 | WAITING SHIPPING INSTRUCTIONS |
| C8 | COLLECT ON DELIVERY REQUIRED |
| C9 | CASH/DOCUMENT NOT AVAILABLE FROM CONSIGNEE |
| CA | CUSTOMS (IMPORT/XPORT) |
| CB | EMEA CREDIT BLOCK ORDER |
| CDP | CONTAINER DEGASSING PROCESS CATEGORIZE |
| CFS | CONSOLIDATE AT ORIGIN - DECONSOLIDATE AT DESTINATION |
| CFY | CONSOLIDATE AT ORIGIN - DIRECT TO CUSTOMER |
| CI | ESTIMATED TO DEPART TERMINAL LOCATION ---UPS |
| CO | ORDER CANCELLED BY CUSTOMER |
| CY | FULL CONTAINER TO 1 CUSTOMER DIRECT FROM SOURCE |
| CYS | DIRECT FORM SOURCE - DECONSOLIDATE AT HUB |
| E1 | ORIGIN - TRUCKING ISSUES OR DELAYS |
| E2 | FREIGHT – CAPACITY ISSUES AND CANCELLATIONS |
| E3 | TRANSPORT- BORDER DELAYS, TRANSPORT ISSUES |
| E4 | CUSTOMER - CLOSURE, DELAY |
| FOI | 3PL OPS/NETWORK RELATED PROBLEM (FORWARDER ORIGIN ISSUE) |
| GLI | HOLIDAY AT ORIGIN |
| HAZ | HAZARDOUS GOODS |
| I01 | 3PL EDI ISSUE |
| I02 | LENOVO EDI ISSUE |
| ICR | INSPECTIONS- CUSTOMER REQUIREMENT |
| J1 | DELIVERED TO CONNECTING LINE ---UPS |
| K1 | ARRIVED AT CUSTOMS --- UPS |
| LRU | LABEL RE-USED ---UPS |
| NS | NORMAL STATUS |
| OC | ORDER CANCELLED BY CUSTOMER |
| OCU | ORDER CANCELLED BY CUSTOMER |
| P01 | PROCESSING DELAY |
| P04 | HELD FOR FULL CARRIER LOAD |
| P1 | PROCESSING DELAY |
| P2 | WAITING INSPECTION |
| RC | RECONSIGNED |
| S01 | INCOMPLETE DELIVERY |
| S1 | DAMAGED - DELIVERY NOT COMPLETED |
| SIC | STILL IN CANADA |
| SLD | SERVICE LEVEL DECREASE |
| SOS | ODM/PLANT/MANUFACTURING LATE HANDOVER |
| SOW | SHIPMENT OVERWEIGHT |
| T07 | INSUFFICIENT DELIVERY TIME |
| UND | UNDETERMINED |
| W05 | ORDER DISCREPANCY |
| WEC | WAITING EXPORT FROM CANADA |
| X2 | ESTIMATED DATE AND/OR TIME OF ARRIVAL AT CONSIGNEE LOC -UPS |
| X4 | ARRIVED AT TERMINAL LOCATION --- UPS |
| X6 | EN ROUTE TO DELIVERY LOCATION --- UPS |
| X8 | ARRIVED AT PICKUP LOACATION LOADING DOCK ---UPS |
| XB | SHIPMENT ACKNOWLEDGED ---UPS |
| XF | FRAUD SHIPMENT |
| ZZZ | MUTUALLY DEFINED |
