API Documentation

In-depth reference documentation for iQmetrix API's.

NAV

OVERVIEW

The Vendor Inventory API facilitates Vendor Managed Inventory flows.

The service is consumed using JSON (Content-Type: application/json) and relays information to other iQmetrix services on behalf of the calling Vendor.

The Vendor Inventory API is in Beta and subject to change.

ENDPOINTS

Sandbox: https://apirc.iqmetrix.net/vendorinventory/v1/
Production: https://api.iqmetrix.net/vendorinventory/v1/

RESOURCES

Company

{
    "Id": 14146,
    "Name": "Kentel"
}
Name Description
Id (Int32) Company identifier
Name (String) Company name

LocationDetails

{
    "CompanyId": 14146,
    "LocationId": 11412,
    "BillToStore": 11412,
    "ShipToStore": 11412,
    "Name": "Store",
    "Address": "5594 Main St.",
    "City": "Regina",
    "ProvinceState": "SK",
    "PostalZipCode": "S4Z9H7",
    "Country": "Canada",
    "PhoneNumber": "3065555555"
}
Name Description
CompanyId (Int32) Company Identifier
LocationId (Int32) Location Identifier
BillToStore (Int32) Store identifier the purchase order is billed to
ShipToStore (Int32) Store identifier the purchase order is being shipped to
Name (String) Store name
Address (String) Store’s address
City (String) Store’s City
ProvinceState (String) Store’s province or state
PostalZipCode (String) Store’s postal or zip code
Country (String) Store’s country
PhoneNumber (String) Store’s phone number

InventoryReportData

{
    "LocationId": 11412,
    "VendorSku": "Folio Black for Samsung Galaxy S8",
    "CategoryPath": " >> Phones",
    "RetailPrice": 899.99,
    "MaximumLevel": 0,
    "MinimumLevel": 0,
    "MinMaxLocked": false,
    "DoNotOrder": false,
    "QuantityInStock": 0,
    "QuantityOnOrder": 0,
    "QuantityTransferIn": 0,
    "QuantityTransferOut": 0,
    "QuantitySold": 0,
    "QuantityOnUncommittedOrder": 0,
    "QuantityCommittedOnOrderEntry": 0,
    "QuantityOnBackorder": 0
}
Name Description
VendorSku (String) This vendor’s configured sku
CategoryPath (String) The product’s categorization
RetailPrice (Decimal) The price the retailer set for this product
MaximumLevel (Int32) The maximum in-stock quantity the location desires for this product
MinimumLevel (Int32) The minimum in-stock quantity the location desires for this product
MinMaxLocked (Boolean) Shows if the minimum and maximum levels could be altered
DoNotOrder (Boolean) The store does not accept orders for this product
QuantityInStock (Int64) Quantity in-stock at the location
QuantityOnOrder (Int64) Quantity of this product that is on a committed purchase order but hasn’t been received
QuantityTransferIn (Int64) Quantity of this product being transferred into this location
QuantityTransferOut (Int64) Quantity of this product being transferred out of this location
QuantitySold (Int64) The amount of this product sold between StartDate and EndDate
QuantityOnUncommittedOrder (Int64) Amount on uncommitted order
QuantityCommittedOnOrderEntry (Int64) Amount committed on an order entry
QuantityOnBackorder (Int64) Amount on back order

PurchaseOrderStatus

{
    "PurchaseOrderGuid": "c4779519-cc52-4274-be88-627cdd245faa",
    "VendorInvoiceNumber": "54266726",
    "Status": "Completed"
}
Name Description
PurchaseOrderGuid (GUID) Identifier of purchase order
VendorInvoiceNumber (String) Invoice Number associated with the Purchase Order
Status (String) State of the purchase order (pending, committed, partially received, complete)

PurchaseOrder

{
  "PurchaseOrderGuid": "5dd9bb57-3702-469b-9428-360b2e738277",
  "VendorInvoiceNumber": "4235",
  "Status": "Committed",
  "Products": [
      {
          "VendorSku": "VGQA0291",
          "QuantityOrdered": 1,
          "QuantityReceived": 0,
          "Cost": 0.0,
          "SerialNumbersReceived": []
      }
  ]
}
Name Description
PurchaseOrderGuid (String) Identifier of purchase order
VendorInvoiceNumber (String) Invoice Number associated with the Purchase Order
Status (String) State of the purchase order (pending, committed, partially received, complete)
Products (Array[PurchaseOrderProduct]) List of products

PurchaseOrderProduct

{
  "VendorSku": "VGQA0291",
  "QuantityOrdered": 1,
  "QuantityReceived": 0,
  "Cost": 0.0,
  "SerialNumbersReceived": []
}
Name Description
VendorSku (String) Vendors product sku
QuantityOrdered (String) Quantity ordered on purchase order
QuantityReceived (Int32) Quantity received
Cost (Number) Cost of the product
SerialNumbersReceived (Array[String]) All the serial numbers that have already been received

TransferReport

{
    "ShipFromLocationId": 11412,
    "ShipFromLocationId": 11412,
    "TransferId": "84FWERT333",
    "TransferProducts": [
        {
            "VendorSku": "AV101945",
            "Quantity": 1,
            "ShippingInfo": [
                {
                    "SerialNumber": "326954987012345",
                    "DateReceived": "2019-05-28",
                    "DateShipped": "2019-05-28"
                }
            ]
        }
    ],
    "RequestingComments": "",
    "ShippingComments": "",
    "ReceivingComments": "",
    "TransferCommitted": true
}
Name Description
ShipFromLocationId (Int32) Identifier of the location of this transfer began at
ShipToLocationId (Int32) Identifier of the location this transfer is going to
TransferId (String) The identifier of this transfer.a.k.a TransferIdByStore
TransferProducts (Array[TransferProduct]) List of products
RequestingComments (String) Comments
ShippingComments (String) Comments
ReceivingComments (String) Comments
TransferCommitted (Boolean) Comments

TransferProduct

{
    "VendorSku": "AV101945",
    "Quantity": 1,
    "ShippingInfo": [
        {
            "SerialNumber": "326954987012345",
            "DateReceived": "2019-05-28",
            "DateShipped": "2019-05-28"
        }
    ]   
}
Name Description
VendorSku (String) Vendor sku of this product for this vendor
Quantity (Int32) Quantity of this product being transferred
ShippingInfo (Array[TransferProductShipping]) The individual details of the shipping/receiving information of this product quantity

TransferProductShipping

{
    "SerialNumber": "326954987012345",
    "DateReceived": "2019-05-28",
    "DateShipped": "2019-05-28"
}
Name Description
SerialNumber (String) If the product is serialized, this is the serial number
DateRecieved (DateTime) When this product was received
DateShipped (DateTime) When this product was shipped

ReceivingInformation

[
    {
        "ReceivingId": "84DTWFE1130",
        "DateReceived": "2019-05-29T09:51:39.73",
        "LocationId": 11412,
        "PurchaseOrderId": "123cd907-3bf4-4192-8ffc-8fe6c708fdf7",
        "Products": [
            {
                "VendorSku": "AV101945",
                "Quantity": 1,
                "SerialNumbers": [
                    "123456789032154"
                ]
            }
        ]
    }
]
Name Description
ReceivingId (String) ReceivingIdByStore
DateReceived (DateTime) Date received
LocationId (Int32) The location identifier that received the shipment
PurchaseOrderId (GUID) The purchase order Identifier related to this received shipment
Products (Array(ReceivedProduct)) List of products

ReceivedProduct

{
    "VendorSku": "AV101945",
    "Quantity": 1,
    "SerialNumbers": [
        "123456789032154"
    ]
}
Name Description
VendorSku (String) Vendor sku of the calling vendor
Quantity (Int32) Quantity
SerialNumbers (Array[String]) All known serial numbers received in this shipment

Invoice

{
    "InvoiceId": "84WOBG19666",
    "OriginalInvoiceId": "",
    "InvoiceDate": "2019-05-22T14:02:41.207",
    "LocationId": 11412,
    "InvoicedByEmployee": {
        "Id": 2447,
        "FirstName": "Test",
        "LastName": "Admin"
    },
    "InvoiceProducts": [
        {
            "VendorSku": "AV101945",
            "SerialNumber": "51231516123125",
            "Quantity": 1,
            "ListPrice": 49.99,
            "InvoiceAction": "Sold"
        }
    ]
}
Name Description
InvoiceId (String) Invoice identifier
OriginalInvoiceId (String) The original invoice id (in the case of an exchange or refund)
InvoiceDate (String) Invoice Date
LocationId (Int32) Location identifier
InvoicedByEmployee (InvoiceEmployee) Employee
InvoiceProducts (Array[InvoiceProduct]) List of products

InvoiceProduct

{
    "VendorSku": "AV101945",
    "SerialNumber": "51231516123125",
    "Quantity": 1,
    "ListPrice": 49.99,
    "InvoiceAction": "Sold"
}
Name Description
VendorSku (String) The vendor sku of the product
Quantity (Int32) Quantity
ListPrice (Number) List price
InvoiceAction (String) The action this invoice took on the product: Can be on of Sold, Refunded, Exchange

InvoiceEmployee

{
    "Id": 2447,
    "FirstName": "Test",
    "LastName": "Admin"
}
Name Description
Id (Int32) Identifier of the employee
FirstName (String) First name of employee. May include extra given names
LastName (String) Last or Family name of employee

InventoryAdjustment

{
    "AdjustmentId": "84GQWE2579",
    "LocationId": 11412,
    "AdjustmentDate": "2019-05-06T14:40:33.283",
    "Products": [
        {
            "VendorSku": "AV101945",
            "Quantity": 1,
            "SerialNumber": "51231516123125",
            "AdjustmentReason": "Unexplained Shrinkage"
        }
    ]
}
Name Description
Products (Array[InventoryAdjustmentProduct]) List of products
AdjustmentId (String) AdjustmentIdByStore
LocationId (Int32) Location identifier
AdjustmentDate (DateTime) Adjustment date

InventoryAdjustmentProduct

{
    "VendorSku": "AV101945",
    "Quantity": 1,
    "SerialNumber": "51231516123125",
    "AdjustmentReason": "Unexplained Shrinkage"  
}
Name Description
VendorSku (String) Calling Vendor’s Sku for the product
Quantity (Int32) Quantity affected by this adjustment
AdjustmentReasonId (Int32) The reason the product received adjustment
AdjustmentReason (String) Adjustment reason
SerialNumbers (Array[String]) The serial numbers affected by this adjustment

REQUESTS

GET Enabled Companies

This call will find a list of all enabled companies for the requesting vendor.

Request

GET /vendors/{VendorId}/companyRelationships

Example Request

GET /vendors/5123/companyRelationships
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json

URI Parameters

Response Parameters

Array[Company]

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 14146,
        "Name": "Kentel"
    }
]

GET Enabled Locations

This call will find a list of all enabled locations and their associated shipping details for a given company.

Request

GET /vendors/{VendorId}/companyRelationships/{CompanyId}/locations

Example Request

GET /vendors/5123/companyRelationships/14616/locations
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json

URI Parameters

Response Parameters

Array[LocationDetails]

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "CompanyId": 14146,
        "LocationId": 11412,
        "BillToStore": 11412,
        "ShipToStore": 11412,
        "Name": "Store",
        "Address": "5594 Main St.",
        "City": "Regina",
        "ProvinceState": "SK",
        "PostalZipCode": "S4Z9H7",
        "Country": "Canada",
        "PhoneNumber": "3065555555"
    }
]

GET Inventory Report

This call will get inventory details for all products that are both enabled and mapped at a given location for the provided date range.

Request

GET /vendors/{VendorId}/companies/{CompanyId}/locations/{LocationId}/reports/inventory?StartDate={StartDate}&EndDate={EndDate}

Example Request

GET /vendors/5123/companies/14616/locations/11412/inventoryReport?StartDate=2019-01-01&EndDate=2019-01-02
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json

URI Parameters

Response Parameters

Array[InventoryReportData]

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "LocationId": 11412,
        "VendorSku": "Folio Black for Samsung Galaxy S8",
        "CategoryPath": " >> Phones",
        "RetailPrice": 899.99,
        "MaximumLevel": 0,
        "MinimumLevel": 0,
        "MinMaxLocked": false,
        "DoNotOrder": false,
        "QuantityInStock": 0,
        "QuantityOnOrder": 0,
        "QuantityTransferIn": 0,
        "QuantityTransferOut": 0,
        "QuantitySold": 0,
        "QuantityOnUncommittedOrder": 0,
        "QuantityCommittedOnOrderEntry": 0,
        "QuantityOnBackorder": 0
    }
]

Create Purchase Order

This call will Create a Purchase Order for the given location.

Note: The endpoint doesn’t immediately create the purchase order. They are created in the background. You can check the status of the purchase order by calling the CheckStatusEndpoint or by registering a Webhook with the service. Having a webhook registered will have our service call yours when the purchase order is created.

Request

POST /vendors/{VendorId}/companies/{CompanyId}/locations/{LocationId}/purchaseOrders

URI Parameters

Request Parameters

Example Request

POST /vendors/5123/companies/14616/locations/11412/purchaseOrders
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json
Content-Type: application/json
{
  "VendorEntityId": 5123,
  "BillToStore": 11412,
  "ShipToStore": 11412,
  "EstimatedArrivalDate": "2019-01-09",
  "VendorInvoiceNumber": "4123152",
  "Comments": "",
  "ShippingMethod": "UPS",
  "ShippingCost": 12.91,
  "Committed": false,
  "Products": [
    {
      "VendorSku": "AV101945",
      "Quantity": 1,
      "Cost": 9.99
    }
  ]
}

Response Parameters

Example Response

HTTP 202 Content-Type: application/json
{
    "checkStatusEndpoint": "v1/vendors/5123/companies/14616/locations/11412/purchaseOrders/c4779519-cc52-4274-be88-627cdd245faa/status",
    "purchaseOrderId": "c4779519-cc52-4274-be88-627cdd245faa"
}

GET Purchase Orders

This call will find a list of all Purchase Orders for a given location and provided date range.

Request

GET /vendors/{VendorId}/companies/{CompanyId}/purchaseOrders?startDate={StartDate}&endDate={EndDate}

Example Request

GET /vendors/5123/companies/14616/purchaseOrders?StartDate=2019-01-01&EndDate=2019-01-02
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json

URI Parameters

Response Parameters

Array[PurchaseOrderStatus]

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "PurchaseOrderGuid": "c4779519-cc52-4274-be88-627cdd245faa",
        "VendorInvoiceNumber": "54266726",
        "Status": "Completed"
    }
]

Get Purchase Order by PO ID

This call will find a purchase order by ID. Results will include product details.

Request

GET /vendors/{VendorId}/companies/{CompanyId}/purchaseOrders/{PurchaseOrderId}

Example Request

GET /vendors/5123/companies/14616/purchaseOrders/5dd9bb57-3702-469b-9428-360b2e738277
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json

URI Parameters

Response Parameters

PurchaseOrder

Example Response

HTTP 200 Content-Type: application/json
{
  "PurchaseOrderGuid": "5dd9bb57-3702-469b-9428-360b2e738277",
  "VendorInvoiceNumber": "4235",
  "Status": "Committed",
  "Products": [
      {
          "VendorSku": "VGQA0291",
          "QuantityOrdered": 1,
          "QuantityReceived": 0,
          "Cost": 0.0,
          "SerialNumbersReceived": []
      }
  ]
}

Update Purchase Order

This call will provide the ability to update the cost or quantity of any unreceived product on a given purchase order.

Request

PUT /vendors/{VendorId}/companies/{CompanyId}/purchaseOrders/{PurchaseOrderId}/products

Example Request

PUT /vendors/5123/companies/14616/purchaseOrders/5dd9bb57-3702-469b-9428-360b2e738277/products
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json
Content-Type: application/json
[
  {
    "VendorSku": "AV101945",
    "Quantity": 1,
    "Cost": 9.99
  }
]

URI Parameters

Request Parameters

Example Response

HTTP 204 No Content

Add Product to Purchase Order

This call provides the ability to add a product to a given purchase order.

Request

POST /vendors/{VendorId}/companies/{CompanyId}/purchaseOrders/{PurchaseOrderId}/products

Example Request

POST /vendors/5123/companies/14616/purchaseOrders/5dd9bb57-3702-469b-9428-360b2e738277/addProducts
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json
Content-Type: application/json
[
  {
    "VendorSku": "{VendorSku}",
    "Quantity": {Quantity},
    "Cost": {Cost}
  }
]

URI Parameters

Request Parameters

Example Response

HTTP 204 No Content

Remove Product From Purchase Order

This call will provide the ability to remove any unreceived product from a given purchase order.

Request

DELETE /vendors/{VendorId}/companies/{CompanyId}/purchaseOrders/{PurchaseOrderId}/products

Example Request

DELETE /vendors/5123/companies/14616/purchaseOrders/5dd9bb57-3702-469b-9428-360b2e738277/products
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json
{
    [ "123", "456"]
}

URI Parameters

Request Parameters

Example Response

HTTP 204 No Content

GET Transfer Order Details

This call will get transfer orders details for inventory received at a given location for the provided date range.

Request

GET /vendors/{VendorId}/companies/{CompanyId}/locations/{LocationId}/reports/transfers?StartDate={StartDate}&EndDate={EndDate}

Example Request

GET /vendors/5123/companies/14616/locations/11412/reports/transfers?StartDate=2019-01-01&EndDate=2019-01-02
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json

URI Parameters

Response Parameters

TransferReport

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "ShipFromLocationId": 11412,
        "ShipFromLocationId": 11412,
        "TransferId": "84FWERT333",
        "TransferProducts": [
            {
                "VendorSku": "AV101945",
                "Quantity": 1,
                "ShippingInfo": [
                    {
                        "SerialNumber": "326954987012345",
                        "DateReceived": "2019-05-28",
                        "DateShipped": "2019-05-28"
                    }
                ]
            }
        ],
        "RequestingComments": "",
        "ShippingComments": "",
        "ReceivingComments": "",
        "TransferCommitted": true
    }
]

GET Receiving History

This call will get inventory receiving details for a given location for the provided date range.

Request

GET /vendors/{VendorId}/companies/{CompanyId}/locations/{LocationId}/reports/receiving?StartDate={StartDate}&EndDate={EndDate}

Example Request

GET /vendors/5123/companies/14616/locations/11412/reports/receiving?StartDate=2019-01-01&EndDate=2019-01-02
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json

URI Parameters

Response Parameters

Array[ReceivingInformation]

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "ReceivingId": "84DTWFE1130",
        "DateReceived": "2019-05-29T09:51:39.73",
        "LocationId": 11412,
        "PurchaseOrderId": "123cd907-3bf4-4192-8ffc-8fe6c708fdf7",
        "Products": [
            {
                "VendorSku": "AV101945",
                "Quantity": 1,
                "SerialNumbers": [
                    "123456789032154"
                ]
            }
        ]
    }
]

GET Inventory Adjustments

This call will get inventory adjustment details for a given location for the provided date range.

Request

GET /vendors/{VendorId}/companies/{CompanyId}/locations/{LocationId}/reports/adjustments?StartDate={StartDate}&EndDate={EndDate}

Example Request

GET /vendors/5123/companies/14616/locations/11412/reports/adjustments?StartDate=2019-01-01&EndDate=2019-01-02
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json

URI Parameters

Response Parameters

Array[InventoryAdjustment]

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "AdjustmentId": "84GQWE2579",
        "LocationId": 11412,
        "AdjustmentDate": "2019-05-06T14:40:33.283",
        "Products": [
            {
                "VendorSku": "AV101945",
                "Quantity": 1,
                "SerialNumber": "51231516123125",
                "AdjustmentReason": "Unexplained Shrinkage"
            }
        ]
    }
]

GET Product Sales Details

This call will get sales details (including refunds) for a given location for the provided date range.

Request

GET /vendors/{VendorId}/companies/{CompanyId}/locations/{LocationId}/productSales?StartDate={StartDate}&EndDate={EndDate}

Example Request

GET /vendors/5123/companies/14616/locations/11412/productSales?StartDate=2019-01-01&EndDate=2019-01-02
Authorization: Bearer aG1FVmhtRVZpCEVWaP51VmhsdC
Accept: application/json

URI Parameters

Response Parameters

Array[Invoice]

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "InvoiceId": "84WOBG19666",
        "OriginalInvoiceId": "",
        "InvoiceDate": "2019-05-22T14:02:41.207",
        "LocationId": 11412,
        "InvoicedByEmployee": {
            "Id": 2447,
            "FirstName": "Test",
            "LastName": "Admin"
        },
        "InvoiceProducts": [
            {
                "VendorSku": "AV101945",
                "SerialNumber": "51231516123125",
                "Quantity": 1,
                "ListPrice": 49.99,
                "InvoiceAction": "Sold"
            }
        ]
    }
]

ERRORS

HTTP Status Code Description
HTTP 400 The call was incorrectly formatted
HTTP 401 The caller did not specify an authorization token or the token was invalid
HTTP 403 The caller lacked required permission for the service to fulfill the request
HTTP 404 The endpoint doesn’t exist or the resource doesn’t exist. If the resource doesn’t exist, there should be an error message in the body that explains this to the caller
HTTP 500 The service is experiencing problems
Was this page helpful?