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
| Environment | Base URL |
|---|---|
| Production | https://api.pgs360.com/CustomerIntegrator |
| Testing | https://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
Msgfield. - If at least one item fails, the entire order will not be processed. Check the
Msgfield per line for details. - Warehouse codes:
PICO,FW,NJ,CM— default is set per client agreement.
Security
Obtain Bearer tokens for API authentication
/api/Security/TokenObtain an access token
Returns a JWT Bearer token valid for 60 minutes. PGS will provide your `userId` and `passwd`.
Request Body
| Field | Type | Description |
|---|---|---|
| userIdrequired | string | PGS will provide this value |
| passwdrequired | string | PGS will provide this value |
Responses
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
/api/InboundCreate an inbound shipment
Request Body
| Field | Type | Description |
|---|---|---|
| warehouse | "PICO" | "FW" | "NJ" | "CM" | Warehouse location code. Default is set per client agreement. |
| purchaseOrderNorequired | string | User-defined order number to identify this order |
| orderDaterequired | string | Order date in format: `yyyy-MM-dd`e.g. 2024-03-15 |
| vendorNamerequired | string | Name of company |
| vendorAddress1required | string | First line of address |
| vendorAddress2 | string | Second line of address |
| vendorCityrequired | string | |
| vendorStaterequired | string | |
| vendorZipCoderequired | string | |
| vendorCountryrequired | string | Two-letter ISO country code (e.g. `US`) |
| inbound_Item | array[InboundItem] |
Responses
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"
}
]
}/api/InboundUpdate 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
| Field | Type | Description |
|---|---|---|
| warehouse | "PICO" | "FW" | "NJ" | "CM" | Warehouse location code. Default is set per client agreement. |
| purchaseOrderNorequired | string | User-defined order number to identify this order |
| orderDaterequired | string | Order date in format: `yyyy-MM-dd`e.g. 2024-03-15 |
| vendorNamerequired | string | Name of company |
| vendorAddress1required | string | First line of address |
| vendorAddress2 | string | Second line of address |
| vendorCityrequired | string | |
| vendorStaterequired | string | |
| vendorZipCoderequired | string | |
| vendorCountryrequired | string | Two-letter ISO country code (e.g. `US`) |
| inbound_Item | array[InboundItem] |
Responses
/api/Inbound/Received/{date}Get received inbounds by date
Parameters
| Name | In | Description |
|---|---|---|
| daterequired | path | Date in format: `yyyy-MM-dd`e.g. 2024-03-15 |
Responses
/api/Inbound/Received/PO/{orderNo}Get received inbounds by order number
Parameters
| Name | In | Description |
|---|---|---|
| orderNorequired | path | Purchase order numbere.g. PO-2024-001 |
Responses
B2B
Create, update, and retrieve business-to-business outbound orders
/api/Outbound/B2BCreate a B2B order
Request Body
| Field | Type | Description |
|---|---|---|
| warehouse | "PICO" | "FW" | "NJ" | "CM" | Warehouse location code. Default is set per client agreement. |
| orderNorequired | string | User-defined order number to identify this order |
| orderDaterequired | string | Order date in format: `yyyy-MM-dd`e.g. 2024-03-15 |
| shipToNamerequired | string | Name of company |
| shipToAddress1required | string | First line of address |
| shipToAddress2 | string | Second line of address |
| shipToCityrequired | string | |
| shipToStaterequired | string | |
| shipToZipCoderequired | string | |
| shipToCountryCoderequired | string | Two-letter ISO country code (e.g. `US`) |
| emailAddress | string | Email address of consignee |
| phoneNumber | string | Phone number of consignee |
| comment | string | Order notes |
| b2B_Item | array[B2BItem] |
Responses
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
}
]
}/api/Outbound/B2BUpdate 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
| Field | Type | Description |
|---|---|---|
| warehouse | "PICO" | "FW" | "NJ" | "CM" | Warehouse location code. Default is set per client agreement. |
| orderNorequired | string | User-defined order number to identify this order |
| orderDaterequired | string | Order date in format: `yyyy-MM-dd`e.g. 2024-03-15 |
| shipToNamerequired | string | Name of company |
| shipToAddress1required | string | First line of address |
| shipToAddress2 | string | Second line of address |
| shipToCityrequired | string | |
| shipToStaterequired | string | |
| shipToZipCoderequired | string | |
| shipToCountryCoderequired | string | Two-letter ISO country code (e.g. `US`) |
| emailAddress | string | Email address of consignee |
| phoneNumber | string | Phone number of consignee |
| comment | string | Order notes |
| b2B_Item | array[B2BItem] |
Responses
/api/Outbound/B2B/OpenGet all open B2B orders
Responses
/api/Outbound/B2B/Shipped/{date}Get shipped B2B orders by date
Parameters
| Name | In | Description |
|---|---|---|
| daterequired | path | Shipped date in format: `yyyy-MM-dd`e.g. 2024-03-15 |
Responses
/api/Outbound/B2B/Shipped/SO/{orderNo}Get shipped B2B orders by order number
Parameters
| Name | In | Description |
|---|---|---|
| orderNorequired | path | Order number (SO)e.g. SO-2024-001 |
Responses
B2C
Create, update, and retrieve business-to-consumer outbound orders
/api/Outbound/B2CCreate a B2C order
Request Body
| Field | Type | Description |
|---|---|---|
| warehouse | "PICO" | "FW" | "NJ" | Warehouse location. Default set per client agreement. B2C supported warehouses: `PICO`, `FW`, `NJ` |
| orderNumberrequired | string | User-defined order number to identify this order |
| orderDaterequired | string | Order date in format: `yyyy-MM-dd`e.g. 2024-03-15 |
| shipToFirstNamerequired | string | First name of recipient |
| shipToLastNamerequired | string | Last name of recipient |
| shipToAddress1required | string | First line of address |
| shipToAddress2 | string | Second line of address |
| shipToCityrequired | string | |
| shipToStaterequired | string | |
| shipToZipCoderequired | string | |
| shipToCountryCode_Alfa2required | string | Two-letter ISO country code (e.g. `US`) |
| shipToPhone | string | Phone number of consignee |
| serviceTyperequired | string | Service type mapping — set per client agreement between stakeholders |
| source | string | Order source channel |
| notes | string | Order notes |
| b2c_Item | array[B2CItem] |
Responses
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
}
]
}/api/Outbound/B2CUpdate 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
| Field | Type | Description |
|---|---|---|
| warehouse | "PICO" | "FW" | "NJ" | Warehouse location. Default set per client agreement. B2C supported warehouses: `PICO`, `FW`, `NJ` |
| orderNumberrequired | string | User-defined order number to identify this order |
| orderDaterequired | string | Order date in format: `yyyy-MM-dd`e.g. 2024-03-15 |
| shipToFirstNamerequired | string | First name of recipient |
| shipToLastNamerequired | string | Last name of recipient |
| shipToAddress1required | string | First line of address |
| shipToAddress2 | string | Second line of address |
| shipToCityrequired | string | |
| shipToStaterequired | string | |
| shipToZipCoderequired | string | |
| shipToCountryCode_Alfa2required | string | Two-letter ISO country code (e.g. `US`) |
| shipToPhone | string | Phone number of consignee |
| serviceTyperequired | string | Service type mapping — set per client agreement between stakeholders |
| source | string | Order source channel |
| notes | string | Order notes |
| b2c_Item | array[B2CItem] |
Responses
/api/Outbound/B2C/Shipped/{date}Get shipped B2C orders by date
Parameters
| Name | In | Description |
|---|---|---|
| daterequired | path | Shipped date in format: `yyyy-MM-dd`e.g. 2024-03-15 |
Responses
/api/Outbound/B2C/Shipped/ON/{orderNo}Get shipped B2C orders by order number
Parameters
| Name | In | Description |
|---|---|---|
| orderNorequired | path | Order numbere.g. ORD-2024-001 |
Responses
SKU
Create and manage SKU / product catalog entries
/api/SkuCreate 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
| Field | Type | Description |
|---|---|---|
| skurequired | string | SKU code |
| shortDescriptionrequired | string | Short description (max 150 characters) |
| longDescriptionrequired | string | Long description (max 250 characters) |
| upc | string | SKU UPC code |
| itemTypeCoderequired | "Component" | "Finished Goods" | "Work in Process or Intermediary" | "Raw Material" | "Promotional" | "Funnel Web" | "Packaging components" | "Sample" | Item type |
| lotControlrequired | boolean | `true` if the SKU is lot-controlled |
| isHazmatrequired | boolean | `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` |
| masterCaseUpcrequired | string | Master case UPC |
| masterCaseLengthrequired | integer | Master case length |
| masterCaseWidthrequired | integer | Master case width |
| masterCaseHeightrequired | integer | Master case height |
| skuUomrequired | "Pieces" | "Pallet" | "Tote" | "Case" | "Sheet" | Unit of measure |
| piecesPerCaserequired | integer | |
| casesPerPalletrequired | integer | |
| pieceLength | integer | |
| pieceWidth | integer | |
| pieceHeight | integer | |
| pieceWeightrequired | integer | Piece weight (required) |
| pieceDimsUOM | "Centimeters" | "Foot" | "Inch" | "Meters" | "Yard" | Unit of measure for piece dimensions |
| pieceWeightUOM | "LB" | "KG" | "OZ" | Unit of measure for piece weight |
| isHazardousTransportation | boolean | SKU is hazardous for transportation |
| isHazardousStorage | boolean | SKU is hazardous for storage |
| CompanyID | string | Line 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
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
/api/Inventory/CurrentInventoryGet current inventory levels
Returns current inventory status with pagination support. Default page size is 30, maximum is 100 records per page.
Parameters
| Name | In | Description |
|---|---|---|
| SKU | query | Filter by SKU codee.g. SKU-ABC-001 |
| startPosition | query | Starting position for pagination. Default: 1 |
| maxResults | query | Number of records per page. Default: 30, max: 100 |