PGS360 API

Version 1.8

This API is designed to facilitate a range of business operations. All endpoints return responses in JSON format.

Authentication

The API uses Bearer token authentication with an expiration time of 60 minutes. You must generate a new token every 60 minutes using the /api/Security/Token endpoint.

Environments

EnvironmentBase URL
Productionhttps://api.pgs360.com/CustomerIntegrator
Testinghttps://apiqa.pgs360.com/CustomerIntegrator

Important Notes

  • Orders can only be updated when in Pending status. Any other status will result in no processing, with the reason recorded in the Msg field.
  • If at least one item fails, the entire order will not be processed. Check the Msg field per line for details.
  • Warehouse codes: PICO, FW, NJ, CM — default is set per client agreement.

Security

Obtain Bearer tokens for API authentication

POST/api/Security/Token

Obtain an access token

Returns a JWT Bearer token valid for 60 minutes. PGS will provide your `userId` and `passwd`.

Request Body

FieldTypeDescription
userIdrequiredstringPGS will provide this value
passwdrequiredstringPGS will provide this value

Responses

200Token issued successfully
401Missing or invalid Bearer token

Request Body

{
  "userId": "your-user-id",
  "passwd": "your-password"
}

Response 200

{
  "Access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "Client_id": 1042,
  "Expires_in": 3600,
  "Token_type": "Bearer"
}

Inbound

Create, update, and retrieve inbound shipment orders

POST/api/Inbound

Create an inbound shipment

Request Body

FieldTypeDescription
warehouse"PICO" | "FW" | "NJ" | "CM"Warehouse location code. Default is set per client agreement.
purchaseOrderNorequiredstringUser-defined order number to identify this order
orderDaterequiredstringOrder date in format: `yyyy-MM-dd`e.g. 2024-03-15
vendorNamerequiredstringName of company
vendorAddress1requiredstringFirst line of address
vendorAddress2stringSecond line of address
vendorCityrequiredstring
vendorStaterequiredstring
vendorZipCoderequiredstring
vendorCountryrequiredstringTwo-letter ISO country code (e.g. `US`)
inbound_Itemarray[InboundItem]

Responses

200Inbound shipment created. Check `Msg` per line for any item-level issues.
400Validation error in request body
401Missing or invalid Bearer token

Request Body

{
  "warehouse": "PICO",
  "purchaseOrderNo": "PO-2024-001",
  "orderDate": "2024-03-15",
  "vendorName": "Acme Corp",
  "vendorAddress1": "123 Main St",
  "vendorCity": "Los Angeles",
  "vendorState": "CA",
  "vendorZipCode": "90001",
  "vendorCountry": "US",
  "inbound_Item": [
    {
      "itemLine": "1",
      "itemNumber": "SKU-ABC-001",
      "itemDescription": "Product description",
      "qtyOrdered": 100,
      "lotNumber": "LOT-001",
      "lotReferenceDate": "2024-01-01"
    }
  ]
}
PUT/api/Inbound

Update an inbound shipment

The inbound will **only** be updated when it is in **Pending** status. If in any other status, it will not be processed and the reason will appear in the `Msg` field.

Request Body

FieldTypeDescription
warehouse"PICO" | "FW" | "NJ" | "CM"Warehouse location code. Default is set per client agreement.
purchaseOrderNorequiredstringUser-defined order number to identify this order
orderDaterequiredstringOrder date in format: `yyyy-MM-dd`e.g. 2024-03-15
vendorNamerequiredstringName of company
vendorAddress1requiredstringFirst line of address
vendorAddress2stringSecond line of address
vendorCityrequiredstring
vendorStaterequiredstring
vendorZipCoderequiredstring
vendorCountryrequiredstringTwo-letter ISO country code (e.g. `US`)
inbound_Itemarray[InboundItem]

Responses

200Inbound shipment updated. Check `Msg` per line for any item-level issues.
400Validation error in request body
401Missing or invalid Bearer token
GET/api/Inbound/Received/{date}

Get received inbounds by date

Parameters

NameInDescription
daterequiredpathDate in format: `yyyy-MM-dd`e.g. 2024-03-15

Responses

200List of received inbounds for the given date
401Missing or invalid Bearer token
GET/api/Inbound/Received/PO/{orderNo}

Get received inbounds by order number

Parameters

NameInDescription
orderNorequiredpathPurchase order numbere.g. PO-2024-001

Responses

200Received inbound details for the given order number
401Missing or invalid Bearer token

B2B

Create, update, and retrieve business-to-business outbound orders

POST/api/Outbound/B2B

Create a B2B order

Request Body

FieldTypeDescription
warehouse"PICO" | "FW" | "NJ" | "CM"Warehouse location code. Default is set per client agreement.
orderNorequiredstringUser-defined order number to identify this order
orderDaterequiredstringOrder date in format: `yyyy-MM-dd`e.g. 2024-03-15
shipToNamerequiredstringName of company
shipToAddress1requiredstringFirst line of address
shipToAddress2stringSecond line of address
shipToCityrequiredstring
shipToStaterequiredstring
shipToZipCoderequiredstring
shipToCountryCoderequiredstringTwo-letter ISO country code (e.g. `US`)
emailAddressstringEmail address of consignee
phoneNumberstringPhone number of consignee
commentstringOrder notes
b2B_Itemarray[B2BItem]

Responses

200B2B order created. Check `Msg` per line for any item-level issues.
400Validation error in request body
401Missing or invalid Bearer token

Request Body

{
  "warehouse": "PICO",
  "orderNo": "SO-2024-001",
  "orderDate": "2024-03-15",
  "shipToName": "Retailer Corp",
  "shipToAddress1": "456 Commerce Blvd",
  "shipToCity": "New York",
  "shipToState": "NY",
  "shipToZipCode": "10001",
  "shipToCountryCode": "US",
  "emailAddress": "receiving@retailer.com",
  "b2B_Item": [
    {
      "itemLine": "1",
      "itemCode": "SKU-ABC-001",
      "quantityOrdered": 50
    }
  ]
}
PUT/api/Outbound/B2B

Update a B2B order

The outbound will **only** be updated when it is in **Pending** status. If in any other status, it will not be processed and the reason will appear in the `Msg` field.

Request Body

FieldTypeDescription
warehouse"PICO" | "FW" | "NJ" | "CM"Warehouse location code. Default is set per client agreement.
orderNorequiredstringUser-defined order number to identify this order
orderDaterequiredstringOrder date in format: `yyyy-MM-dd`e.g. 2024-03-15
shipToNamerequiredstringName of company
shipToAddress1requiredstringFirst line of address
shipToAddress2stringSecond line of address
shipToCityrequiredstring
shipToStaterequiredstring
shipToZipCoderequiredstring
shipToCountryCoderequiredstringTwo-letter ISO country code (e.g. `US`)
emailAddressstringEmail address of consignee
phoneNumberstringPhone number of consignee
commentstringOrder notes
b2B_Itemarray[B2BItem]

Responses

200B2B order updated. Check `Msg` per line for any item-level issues.
400Validation error in request body
401Missing or invalid Bearer token
GET/api/Outbound/B2B/Open

Get all open B2B orders

Responses

200List of all open B2B orders
401Missing or invalid Bearer token
GET/api/Outbound/B2B/Shipped/{date}

Get shipped B2B orders by date

Parameters

NameInDescription
daterequiredpathShipped date in format: `yyyy-MM-dd`e.g. 2024-03-15

Responses

200List of shipped B2B orders for the given date
401Missing or invalid Bearer token
GET/api/Outbound/B2B/Shipped/SO/{orderNo}

Get shipped B2B orders by order number

Parameters

NameInDescription
orderNorequiredpathOrder number (SO)e.g. SO-2024-001

Responses

200Shipped B2B order details for the given order number
401Missing or invalid Bearer token

B2C

Create, update, and retrieve business-to-consumer outbound orders

POST/api/Outbound/B2C

Create a B2C order

Request Body

FieldTypeDescription
warehouse"PICO" | "FW" | "NJ"Warehouse location. Default set per client agreement. B2C supported warehouses: `PICO`, `FW`, `NJ`
orderNumberrequiredstringUser-defined order number to identify this order
orderDaterequiredstringOrder date in format: `yyyy-MM-dd`e.g. 2024-03-15
shipToFirstNamerequiredstringFirst name of recipient
shipToLastNamerequiredstringLast name of recipient
shipToAddress1requiredstringFirst line of address
shipToAddress2stringSecond line of address
shipToCityrequiredstring
shipToStaterequiredstring
shipToZipCoderequiredstring
shipToCountryCode_Alfa2requiredstringTwo-letter ISO country code (e.g. `US`)
shipToPhonestringPhone number of consignee
serviceTyperequiredstringService type mapping — set per client agreement between stakeholders
sourcestringOrder source channel
notesstringOrder notes
b2c_Itemarray[B2CItem]

Responses

200B2C order created
401Missing or invalid Bearer token
500Server error or processing failure

Request Body

{
  "warehouse": "PICO",
  "orderNumber": "ORD-2024-001",
  "orderDate": "2024-03-15",
  "shipToFirstName": "Jane",
  "shipToLastName": "Doe",
  "shipToAddress1": "789 Residential Ave",
  "shipToCity": "Miami",
  "shipToState": "FL",
  "shipToZipCode": "33101",
  "shipToCountryCode_Alfa2": "US",
  "serviceType": "Standard",
  "b2c_Item": [
    {
      "itemLine": "1",
      "sku": "SKU-ABC-001",
      "quantity": 2
    }
  ]
}
PUT/api/Outbound/B2C

Update a B2C order

The outbound will **only** be updated when it is in **Pending** status. If in any other status, it will not be processed and the reason will appear in the `Msg` field.

Request Body

FieldTypeDescription
warehouse"PICO" | "FW" | "NJ"Warehouse location. Default set per client agreement. B2C supported warehouses: `PICO`, `FW`, `NJ`
orderNumberrequiredstringUser-defined order number to identify this order
orderDaterequiredstringOrder date in format: `yyyy-MM-dd`e.g. 2024-03-15
shipToFirstNamerequiredstringFirst name of recipient
shipToLastNamerequiredstringLast name of recipient
shipToAddress1requiredstringFirst line of address
shipToAddress2stringSecond line of address
shipToCityrequiredstring
shipToStaterequiredstring
shipToZipCoderequiredstring
shipToCountryCode_Alfa2requiredstringTwo-letter ISO country code (e.g. `US`)
shipToPhonestringPhone number of consignee
serviceTyperequiredstringService type mapping — set per client agreement between stakeholders
sourcestringOrder source channel
notesstringOrder notes
b2c_Itemarray[B2CItem]

Responses

200B2C order updated
401Missing or invalid Bearer token
500Server error or processing failure
GET/api/Outbound/B2C/Shipped/{date}

Get shipped B2C orders by date

Parameters

NameInDescription
daterequiredpathShipped date in format: `yyyy-MM-dd`e.g. 2024-03-15

Responses

200List of shipped B2C orders for the given date
401Missing or invalid Bearer token
GET/api/Outbound/B2C/Shipped/ON/{orderNo}

Get shipped B2C orders by order number

Parameters

NameInDescription
orderNorequiredpathOrder numbere.g. ORD-2024-001

Responses

200Shipped B2C order details for the given order number
401Missing or invalid Bearer token

SKU

Create and manage SKU / product catalog entries

POST/api/Sku

Create a new SKU

Creates a new SKU in the PGS360 system. All required fields must be provided. For hazmat SKUs, `storageCategory`, `hazardousClassificationStorage`, and `hazardousClassificationTransportation` are required.

Request Body

FieldTypeDescription
skurequiredstringSKU code
shortDescriptionrequiredstringShort description (max 150 characters)
longDescriptionrequiredstringLong description (max 250 characters)
upcstringSKU UPC code
itemTypeCoderequired"Component" | "Finished Goods" | "Work in Process or Intermediary" | "Raw Material" | "Promotional" | "Funnel Web" | "Packaging components" | "Sample"Item type
lotControlrequiredboolean`true` if the SKU is lot-controlled
isHazmatrequiredboolean`true` if the SKU is hazardous material
storageCategory"A" | "B" | "C" | "D"Required if `isHazmat` is `true`
cycleCountCategory"A" | "B" | "C" | "D"
hazardousClassificationStorage"Flammable Liquid" | "Oxidizer" | "Aerosol"Required if `isHazmat` is `true`
hazardousClassificationTransportation"Flammable Liquid" | "Oxidizer" | "Aerosol"Required if `isHazmat` is `true`
masterCaseUpcrequiredstringMaster case UPC
masterCaseLengthrequiredintegerMaster case length
masterCaseWidthrequiredintegerMaster case width
masterCaseHeightrequiredintegerMaster case height
skuUomrequired"Pieces" | "Pallet" | "Tote" | "Case" | "Sheet"Unit of measure
piecesPerCaserequiredinteger
casesPerPalletrequiredinteger
pieceLengthinteger
pieceWidthinteger
pieceHeightinteger
pieceWeightrequiredintegerPiece weight (required)
pieceDimsUOM"Centimeters" | "Foot" | "Inch" | "Meters" | "Yard"Unit of measure for piece dimensions
pieceWeightUOM"LB" | "KG" | "OZ"Unit of measure for piece weight
isHazardousTransportationbooleanSKU is hazardous for transportation
isHazardousStoragebooleanSKU is hazardous for storage
CompanyIDstringLine of business
measureUnitrequired"Centimeters" | "Foot" | "Inch" | "Meters" | "Yard"Master case dimension unit of measure
stockReleaseMethodrequired"FIFO" | "FEFO"Stock release method: - **FIFO**: Allocates based on earliest manufacturing date - **FEFO**: Allocates based on earliest expiration date

Responses

200SKU created successfully
401Missing or invalid Bearer token
500Server error or processing failure

Request Body

{
  "sku": "SKU-ABC-001",
  "shortDescription": "Product short description",
  "longDescription": "Full product long description for warehouse use",
  "upc": "012345678901",
  "itemTypeCode": "Finished Goods",
  "lotControl": false,
  "isHazmat": false,
  "cycleCountCategory": "A",
  "masterCaseUpc": "012345678902",
  "masterCaseLength": 12,
  "masterCaseWidth": 8,
  "masterCaseHeight": 6,
  "skuUom": "Case",
  "piecesPerCase": 12,
  "casesPerPallet": 48,
  "pieceWeight": 2,
  "measureUnit": "Inch",
  "stockReleaseMethod": "FIFO"
}

Inventory

Query real-time inventory levels

GET/api/Inventory/CurrentInventory

Get current inventory levels

Returns current inventory status with pagination support. Default page size is 30, maximum is 100 records per page.

Parameters

NameInDescription
SKUqueryFilter by SKU codee.g. SKU-ABC-001
startPositionqueryStarting position for pagination. Default: 1
maxResultsqueryNumber of records per page. Default: 30, max: 100

Responses

200Current inventory levels
401Missing or invalid Bearer token