Receive

The Receive API allows you to receive LPNs. You can use this API to receive LPNs based on Shipment or Purchase Order.

Note: Receipt can be done using the Purchase Order (PO) number or Inbound Shipment. If the PO number is provided, then the Inbound Shipment is created automatically.

URL

POST .../wms/lgfapi/v10/entity/iblpn/receive

Request Parameters

Parameter/Field Name Type Required Description
facility_id Integer Conditional

Facility context by id.

Either facility_id or facility_id__code is mandatory to send.

facility_id__code String Conditional

Facility context by code.

Either facility_id or facility_id__code is mandatory to send.

company_id Integer Conditional

Company context by id.

Either company_id or company_id__code is mandatory to send.

company_id__code String Conditional

Company context by code.

Either company_id or company_id__code is mandatory to send.

shipment_nbr Conditional String

IB shipment number

Either IB shipment number or purchase order is mandatory to send.

po_nbr Conditional String

Purchase order number

Either IB shipment number or purchase order is mandatory to send.

container_nbr Yes String IB container number
pallet_nbr No String Pallet number
lpn_type No String LPN type code
trailer_nbr No String Trailer number
recv_dock_nbr_or_location_barcode No String The dock number or dock location barcode at which the LPN is being received.
marked_for_qc_flg No Boolean

By default, the value is False.

You can use this field to mark the received LPNs for QC.

xdock_mode No String

You can use this field cross dock mode for cross dock receiving.

The following are the supported cross docking mode values:

  • lpn
  • lpn-and-one-sku
  • lpn-one-and-multi-facility
  • lpn-one-and-multi

The following are the key details about the supported modes:

  • lpn: It will first check the receiving LPN with orders that required lpn number.
  • lpn-and-one-sku: It will first check the receiving LPN with orders that have a required lpn number. If doesnt match, it will try to do single SKU xdock (as long as it is single-SKU lpn).
  • lpn-one-and-multi-facility: It will first try to match LPN with an order. If it doesn’t match, then will try to cross dock single SKU. If it is a multi-SKU, it will try to xdock facility (but it has to be a facility order).
  • lpn-one-and-multi: It will first try to match LPN with an order. If it doesn’t match, then will try to cross dock single sku. If it is a multi-SKU, it will try to xdock.
default_lockcode No String A valid lock code to apply on the received lpns.
allow_inv_exp_override_flg No Boolean

By default, the value is False.

Any inbound SKUs with an expiry date earlier than the existing inventory of available, the system will not allow you to receive the inventory and displays an error message.

allow_rem_exp_override_flg No Boolean

By default, the value is False.

If the expiration date entered does not pass the “% acceptable” validation, the system does not allow you to receive the SKU and displays an error message “Rem prod life below accept percent”.

item_list Array (List) SKU list.

Item List

Parameter/Field Name Type Required Description
item_barcode Yes String Item Barcode
qty Yes Integer Item Received Quantity
po_nbr No String Purchase order number
po_seq_nbr No Integer Purchase order sequence number
case_qty No Integer

Case Quantity

The API allows passing of one of these fields: case_qty, pack_qty, or receiving_uom. You cannot pass all fields in a payload.

pack_qty No Integer

Pack Quantity

The API allows passing of one of these fields: case_qty, pack_qty, or receiving_uom. You cannot pass all fields in a payload.

receiving_uom No String

Receiving UOM

The API allows passing of one of these fields: case_qty, pack_qty, or receiving_uom. You cannot pass all fields in a payload.

batch_nbr Conditional String

Batch number

If item is batch tracked, then batch number is mandatory.

expiry_date Conditional Date

Expiry date for a batch

Format is "YYYY-MM-DD" example: 2010-11-01.

If item is expiry tracked, then expiry date is mandatory. However, if existing batch has expiry date, then expiry date is not mandatory.

serial_nbr_list Conditional String

List of serial numbers in an LPN.

When the company is configured for end-to-end serial tracking, then serial number is mandatory.)

inv_attr_x (x varies from ‘a’ to ‘o’) Conditional String

Value provided for inventory attributes a-o.

If item is tracking corresponding inventory attribute, then respective inventory attribute is mandatory.)

manufacture_date Conditional Date

Manufacture date. Format is "YYYY-MM-DD" example: 2010-11-01.

If item is expiry tracked, then either expiry date or manufacture date is mandatory to pass.

Request Body (Receive a Shipment without item list – for Cartonized shipments without detailed receiving only)

If item list is not passed, the API receives the LPNs and considers the items from the Ib shipment details.

{
 "facility_id__code":"Facility01",
 "company_id__code":"Company01",
 "shipment_nbr":"SS181201",
 "container_nbr":"SSIBLPN041209"
}

Sample Response

204 No Content

Request Body (Receive a Shipment with item list)

{
  "facility_id_code": "Facility01",
  "company_id_code": "Company01",
  "shipment_nbr": "ASN38609",
  "container_nbr": "SSLPN181207", 
  "pallet_nbr": "",
  "lpn_type": "",
  "trailer_nbr": "",
  "recv_dock_nbr_or_location_barcode": "",
  "marked_for_qc_flg":"FALSE",
  "xdock_mode": "lpn-and-one-sku",  
  "default_lockcode": "PA",
  "allow_inv_exp_override_flg": "TRUE",
  "allow_rem_exp_override_flg": "TRUE",
  "item_list": [
        {
          "item_barcode": "NORITM01",
          "qty": "5",
          "po_nbr": "",
          "po_seq_nbr": "",
          "pack_qty": "",
          "case_qty": "",
          "receiving_uom": "",
          "batch_nbr": "",
          "expiry_date": "",
          "serial_nbr_list": [],
          "invn_attr_a": "",
          "invn_attr_b": "",
          "invn_attr_c": "",
          "invn_attr_d": "",
          "invn_attr_e": "",
          "invn_attr_f": "",
          "invn_attr_g": "",
          "invn_attr_h": "",
          "invn_attr_i": "",
          "invn_attr_j": "",
          "invn_attr_k": "",
          "invn_attr_l": "",
          "invn_attr_m": "",
          "invn_attr_n": "",
          "invn_attr_o": "",
          "manufacture_date": ""
        }
  ]
}

Sample Response

204 No Content

Request Body (PO-based Receiving)

{
  "facility_id__code": "Facility01",
  "company_id_code": "Company01",
  "po_nbr": "SS181202",
  "container_nbr": "SSLPN181211", 
  "pallet_nbr": "",
  "lpn_type": "",
  "trailer_nbr": "",
  "recv_dock_nbr_or_location_barcode": "",
  "marked_for_qc_flg":"FALSE",
  "xdock_mode": "lpn-and-one-sku",  
  "default_lockcode": "PA",
  "allow_inv_exp_override_flg": "TRUE",
  "allow_rem_exp_override_flg": "TRUE",
  "item_list": [
        {
          "item_barcode": "SSITEM01",
          "qty": "5",
          "po_seq_nbr": "1",
          "pack_qty": "",
          "case_qty": "",
          "receiving_uom": "",
          "batch_nbr": "",
          "expiry_date": "",
          "serial_nbr_list": [],
          "invn_attr_a": "",
          "invn_attr_b": "",
          "invn_attr_c": "",
          "invn_attr_d": "",
          "invn_attr_e": "",
          "invn_attr_f": "",
          "invn_attr_g": "",
          "invn_attr_h": "",
          "invn_attr_i": "",
          "invn_attr_j": "",
          "invn_attr_k": "",
          "invn_attr_l": "",
          "invn_attr_m": "",
          "invn_attr_n": "",
          "invn_attr_o": "",
          "manufacture_date": ""
        }
  ]
}

Sample Response

204 No Content

Additional Notes

This API doesn't support the following:
  • LPN as a Physical Pallet.
  • Handling over-receipt warning message.
Note: If you are sending a case or pack quantity, it must be a multiple of standard case or standard pack quantity. For a cartonized shipment, you can pass LPN information including item list information for detailed receiving.
If a PO number is passed in the API header, the PO is converted to a shipment for a PO based receiving.
Note: For PO-based receiving, the system considers the passed PO Sequence. You can pass po_nbr at the header and po_seq_nbr at item list.

Track User Activity

If you have purchased WFM (Oracle Workforce Management), you can also send user activity data using the following parameters in the Receive API

  • Screen_name: Name of the application or screen in the external system that was used by the user to perform receiving.
  • Begin_ts: Time at which the user started receiving the relevant item.
  • End_ts: Time at which the user completed receiving the relevant item.

If all the three parameters are sent in the API, and if WFM is enabled, user activity is written to the WMS Activity view and subsequently interfaced to WFM, enabling you to analyze user productivity through productivity reports in WFM.

Note:
  • All three parameters must be sent for WMS Activity to be written.
  • If WFM is not enabled, WMS Activity is not written even if the three parameters are sent.
  • Begin_ts and end_ts are parameters at the line level and must be sent on all lines.
  • Activity tracking is currently not supported for cartonized receiving (payloads without lines)
  • In order for WMS Activity data to interface successfully to WFM, screen_name that is sent in the API has to be configured as a screen in WMS using an RF module and mapped to a work area activity in WFM.
  • Screen_name sent on the API is also written on the corresponding IHTs that are written with this API.
  • If only screen_name is sent without begin_ts and end_ts, the screen_name is written on the IHT, even if WFM is not enabled.
  • Begin_ts and End_ts cannot be greater than the current timestamp of the facility in the API.

Request Body with User Activity Data

{
    "facility_id": "268",
    "company_id": "572",
    "container_nbr": "LPN123",
    "screen_name": "Dtl Recv Screen",
    "item_list": [                
    {
        "item_barcode": "s1",  
        "qty": 10,
        "begin_ts": "2024-05-21T18:30:00",
        "end_ts": "2024-05-21T18:45:00"
    },
    {
        "item_barcode": "s2",  
        "qty": 10,
        "begin_ts": "2024-05-21T18:50:00",
        "end_ts": "2024-05-21T18:55:00"
    }
  ]
}

Receive Entire Shipment

The Receive Entire Shipment API allows you to receive all LPNs and items under a shipment in one call. This API is enhanced to support a new parameter default_lockcode, which applies the lock code to all LPNs and inventory created during shipment receiving.

URL

POST .../wms/lgfapi/v10/entity/ib_shipment/receive_entire_shipment

Request Body (by shipment number)

{
  "parameters": {
    "facility_id__code": "APIFAC05",
    "company_id__code": "APIPC",
    "shipment_nbr": "TC34SHP11"
  },
  "options": {
    "consider_mark_for_qc_flg": false,
    "default_lockcode": "PA"
  }
}

Request Body (by shipment ID)

{
  "parameters": {
    "facility_id__code": "APIFAC05",
    "company_id__code": "APIPC",
    "id": "98765"
  },
  "options": {
    "consider_mark_for_qc_flg": false,
    "default_lockcode": "PA"
  }
}

Sample Response

{
  "success": true,
  "response": {
    "message": "Shipment received successfully",
    "shipment_nbr": "TC34SHP11",
    "applied_lock_code": "PA",
    "lpns_received_count": 12
  }
}