Uploaded by Marco Cristobal

Exacta GTP - Interface Specification Document (ISD) v1.1

advertisement
Interface Specification
Document (ISD) v1.1
Exacta GTP AutoStore Peru
Effective 3/17/2023
This document contains information considered proprietary to Bastian Solutions. It may not be duplicated, used or disclosed outside
the original recipient organization, and it may not be duplicated in whole or in part, for any purpose other than to evaluate this
document. Bastian Software Solutions reserves the right to modify this document as necessary.
Exacta GTP – AutoStore - ISD
Contents
1
2
Modification Log ...................................................................................................... 5
Overview ................................................................................................................... 6
2.1
2.2
3
Summary of Interfaces ............................................................................................ 7
3.1
3.2
4
Exacta Import Gateway .......................................................................................................... 9
Exacta Export Publisher ........................................................................................................ 9
Import Overview ..................................................................................................... 11
6.1
7
Communication Protocol ....................................................................................................... 8
API Response ......................................................................................................................... 8
API Security .............................................................................................................. 9
5.1
5.2
6
Import Gateway (Host System è Exacta) ............................................................................. 7
Exacta Export Publisher (Exacta è Host System) .............................................................. 7
Communication ........................................................................................................ 8
4.1
4.2
5
Document Purpose ................................................................................................................. 6
Exacta Connect ....................................................................................................................... 6
Module Overview .................................................................................................................. 11
Exacta Import Gateway - Touchpoints ................................................................. 12
7.1
7.1.1
7.1.1
7.1.1
7.1.1
7.1.1
7.1.2
7.1.3
7.1.4
7.1.5
7.1.6
7.2
7.2.1
7.2.1
7.2.1
7.2.2
7.2.3
7.2.4
7.2.5
7.2.6
7.2.7
7.3
7.3.1
7.3.2
7.3.1
7.3.2
7.3.3
7.3.4
7.3.5
7.3.6
7.3.7
Product Master...................................................................................................................... 12
Product Header .................................................................................................................. 12
Product Alias ...................................................................................................................... 14
Product Detail ..................................................................................................................... 14
Product UOM Type ............................................................................................................. 14
Uom Zone ........................................................................................................................... 16
Schema .............................................................................................................................. 16
Example Message .............................................................................................................. 17
Response ........................................................................................................................... 18
Processing .......................................................................................................................... 18
Product Use Cases ............................................................................................................. 19
Putaway Request .................................................................................................................. 20
Order Header...................................................................................................................... 20
Container ............................................................................................................................ 21
Order Line ........................................................................................................................... 21
Detail .................................................................................................................................. 22
Schema .............................................................................................................................. 22
Example Message .............................................................................................................. 23
Response ........................................................................................................................... 23
Processing .......................................................................................................................... 24
Putaway Request Use Cases ............................................................................................. 24
Pick Request ......................................................................................................................... 25
Order Header...................................................................................................................... 25
Container ............................................................................................................................ 26
Routing Zone ...................................................................................................................... 27
Order Line ........................................................................................................................... 27
Detail .................................................................................................................................. 28
Schema .............................................................................................................................. 28
Example Message .............................................................................................................. 29
Response ........................................................................................................................... 30
Processing .......................................................................................................................... 31
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
2
Exacta GTP – AutoStore - ISD
7.3.8
7.4
7.4.1
7.4.1
7.4.2
7.4.3
7.4.4
7.4.5
7.4.6
7.4.7
7.5
7.5.1
7.5.2
7.5.1
7.5.2
7.5.3
7.5.4
7.5.5
7.5.6
7.6
7.6.1
7.6.1
7.6.2
7.6.3
7.6.4
8
9
Pick Request Use Cases .................................................................................................... 31
Cycle Count Request............................................................................................................ 32
Order Header...................................................................................................................... 32
Order Line ........................................................................................................................... 32
Order Detail ........................................................................................................................ 33
Schema .............................................................................................................................. 33
Example Message .............................................................................................................. 33
Response ........................................................................................................................... 34
Processing .......................................................................................................................... 34
Cycle Count Request Use Cases ....................................................................................... 34
Container Request ................................................................................................................ 36
Container ............................................................................................................................ 36
Routing Zone ...................................................................................................................... 37
Detail .................................................................................................................................. 37
Schema .............................................................................................................................. 38
Example Message .............................................................................................................. 38
Response ........................................................................................................................... 39
Processing .......................................................................................................................... 39
Container Request Use Cases ........................................................................................... 39
Available Inventory Request ................................................................................................ 40
Response ........................................................................................................................... 40
Product Quantity Summary ................................................................................................. 40
Response ........................................................................................................................... 41
Processing .......................................................................................................................... 41
Inventory Use Cases .......................................................................................................... 41
Export Overview .................................................................................................... 43
Exacta Export Publisher - Touchpoints ............................................................... 44
9.1
9.1.1
9.1.1
9.1.1
9.1.2
9.1.3
9.1.4
9.1.5
9.2
9.2.1
9.2.2
9.2.3
9.2.4
9.2.5
9.2.6
9.2.7
9.3
9.3.1
9.3.2
9.3.3
9.3.4
9.3.5
9.3.6
9.3.7
Putaway Confirm .................................................................................................................. 44
Putaway Control ................................................................................................................. 44
Order Line ........................................................................................................................... 44
Order Line Details ............................................................................................................... 45
Schema .............................................................................................................................. 45
Example.............................................................................................................................. 45
Processing .......................................................................................................................... 46
Putaway Confirm Use Cases .............................................................................................. 46
Pick Confirm ......................................................................................................................... 47
Pick Control ........................................................................................................................ 47
Order Line ........................................................................................................................... 47
Order Line Details ............................................................................................................... 48
Schema .............................................................................................................................. 48
Example.............................................................................................................................. 48
Processing .......................................................................................................................... 49
Pick Confirm Use Cases ..................................................................................................... 49
Cycle Count Confirm ............................................................................................................ 50
Cycle Count Control............................................................................................................ 50
Order Details ...................................................................................................................... 50
Order Line ........................................................................................................................... 50
Schema .............................................................................................................................. 50
Example.............................................................................................................................. 51
Processing .......................................................................................................................... 51
Cycle Count Complete Use Cases ..................................................................................... 51
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
3
Exacta GTP – AutoStore - ISD
9.4
9.4.1
9.4.2
9.4.3
9.4.4
9.4.5
9.4.6
9.5
9.5.1
9.5.2
9.5.3
9.5.4
9.5.5
9.6
9.6.1
9.6.2
9.6.3
9.6.4
9.6.5
9.7
9.7.1
9.7.2
9.7.3
9.7.4
9.7.5
9.8
9.8.1
9.8.2
9.8.3
10
Exception Scenario Examples........................................................................... 64
10.1.1
10.1.2
11
12
Inventory Adjustment ........................................................................................................... 53
Inventory Adjustment Control.............................................................................................. 53
Order Line ........................................................................................................................... 53
Schema .............................................................................................................................. 53
Example.............................................................................................................................. 54
Processing .......................................................................................................................... 54
Inventory Adjustment Use Cases ....................................................................................... 54
Divert Confirm....................................................................................................................... 55
Diver Confirm Control ......................................................................................................... 55
Schema .............................................................................................................................. 55
Example.............................................................................................................................. 56
Processing .......................................................................................................................... 56
Divert Confirm Adjustment Use Cases................................................................................ 56
Verification Scan................................................................................................................... 57
Verification Scan Control .................................................................................................... 57
Schema .............................................................................................................................. 57
Example.............................................................................................................................. 57
Processing .......................................................................................................................... 58
Verification Scan Adjustment Use Cases ............................................................................ 58
Weight Result ........................................................................................................................ 59
Weight Result Control ......................................................................................................... 59
Schema .............................................................................................................................. 60
Example.............................................................................................................................. 60
Processing .......................................................................................................................... 60
Divert Confirm Adjustment Use Cases................................................................................ 61
Inventory Reconciliation ...................................................................................................... 62
Inventory Reconciliation ...................................................................................................... 62
Processing .......................................................................................................................... 62
Inventory Reconciliation Use Cases ................................................................................... 62
Inbound............................................................................................................................... 64
Outbound ............................................................................................................................ 65
System Assumptions ......................................................................................... 69
Frequently Asked Questions (FAQ) .................................................................. 70
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
4
Exacta GTP – AutoStore - ISD
1
Modification Log
Document Version
Date
Author
1.0
1.1
03/13/2023
3/17/2023
D. Cromer
J. Calhoun
Summary of Changes
-
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
First version produced.
Updated Top Off Method values
Added note to Top Off Window Days
5
Exacta GTP – AutoStore - ISD
2
2.1
Overview
Document Purpose
This Interface Specification Document (ISD) describes the methods for interfacing the Exacta Warehouse
Execution System (WES) with the host system. The interface trigger events, communication protocols,
and data for Exacta’s communication with these systems are detailed within this document.
2.2
Exacta Connect
Exacta Connect consists of Exacta Import Gateway and Exacta Export Publisher. Exacta Import Gateway
communicates with a host system to receive data from the host system in the proper format, and place
the data received into internal Exacta staging tables for further processing. Exacta Export Publisher takes
data from an internal Exacta staging table, formats the data into a JSON structured message, and sends
that message to the host system. Both Exacta Import Gateway and Exacta Export Publisher
communicate with external systems and are separate from the business processing of the data.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
6
Exacta GTP – AutoStore - ISD
3
Summary of Interfaces
Exacta communicates with the host system using a web services API. Below is a summary of the touch
points for the system:
3.1
Import Gateway (Host System è Exacta)
Interface
Product Master
Putaway Order
Pick Order
Cycle Count
Order
Container
Information
Available
Inventory
3.2
Description
Used to add or update each product managed in
the system
Adds Putaways for received material
Protocol
Web API
Adds pick orders for fulfilling outbound orders
from the AutoStore
Creates a Cycle Count order within Exacta for
counting stocked inventory within the AutoStore
Used to update container information
Web API
API call to determine quantity of available (able
to be assigned) inventory within the AutoStore™
for a specific SKU
Web API
Web API
Web API
Web API
Exacta Module
Exacta Import
Gateway
Exacta Import
Gateway
Exacta Import
Gateway
Exacta Import
Gateway
Exacta Import
Gateway
Exacta Import
Gateway
Exacta Export Publisher (Exacta è Host System)
Interface
Putaway Confirm
Pick Confirm
Cycle Count
Confirm
Inventory
Adjustment
Divert Confirm
Verification Scan
Weight Check
Inventory
Reconciliation
Description
Used to notify the host system that a putaway
order has been completed
Used to notify the host system when a pick order
is completed
Used to notify the host system when a cycle
count has been completed for a product
Used to notify the host system when inventory
has been adjusted by means of:
• Pick Adjustment
• Cycle Count Order Adjustment
• Hot Cycle Count Adjustment
• Hot Pick
• Hot Putaway
Used to notify the host system when a container
has been diverted to a storage zone, pick zone,
pack lane, or ship lane
Used to send verification scan checks after a
print and apply in a system with conveyor
routing.
Used to send weight / dimension data back to the
host system when a container passes through a
weight scale or dimensioner in systems that
utilize conveyor routing.
Used to provide the host system with the total
quantity on-hand for each product. The host
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
Protocol
Web API
Web API
Web API
Web API
Exacta Module
Exacta Export
Publisher
Exacta Export
Publisher
Exacta Export
Publisher
Exacta Export
Publisher
Web API
Exacta Export
Publisher
Web API
Exacta Export
Publisher
Web API
Exacta Export
Publisher
Flat File
Exacta Export
Publisher
7
Exacta GTP – AutoStore - ISD
system can use the data to verify inventory in the
host system and Exacta are in sync.
4
4.1
Communication
Communication Protocol
The host system and Exacta will communicate via a Web Services API. The API uses JSON message
formatting.
A separate URL will be used for each touch point. Below is a list of URLs:
Exacta Import Gateway: Host System to Exacta:
• Product Master: http://<configurable url>/exactaApi/import/v1/product
• Putaway Order: http://<configurable url>/exactaApi/import/putaway
• Pick Order: http://<configurable url>/exactaApi/import/pick
• Container Routing: http://<configurable url>/exactaApi/import/container
• Cycle Count Order: http://<configurable url>/exactaApi/import/cyclecount
• Inventory: http://<configurable url>/exactaApi/import/inventory
Exacta Export Publisher: Exacta to the Host System:
• Putaway Order Confirmation: http://<configurable url>/export/putconfirm
• Pick Order Confirmation: http://<configurable url>/export/pickconfirm
• Divert Confirmation: http://<configurable url>/export/divertconfirm
• Cycle Count Confirmation: http://<configurable url>/export/cyclecountconfirm
• Inventory Adjustment: http://<configurable url>/export/invadj
4.2
API Response
The responses are outlined in each transaction type.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
8
Exacta GTP – AutoStore - ISD
5
API Security
5.1
Exacta Import Gateway
Exacta Import Gateway will use a configurable API key that is stored within a secure Exacta database.
The host system will have this API key stored within the host system. The API key will be sent as a
header when the host system sends a message to Exacta.
PowerShell Example:
$apiKey = "SOME_CONFIGURED_API_KEY"
Invoke-WebRequest -Uri "https://localhost:8080/exactaApi/import/pick" -Headers @{ "api-key" =
$apiKey } -Method Post
5.2
Exacta Export Publisher
Exacta Export Publisher will use webhook authorization to allow an endpoint to subscribe to events
published by Exacta.
At a high level, Bastian expects the following from the host system (consumer) that would like to receive
events from Exacta:
•
•
•
Consumer Host - This is the hostname or address of the consumer API (i.e. https://1.2.3.5:5678)
that would like to receive events.
Authentication Secret - This is a secret string provided by the consumer that will be stored in the
Exacta system.
Consumer API - The consumer API may be implemented in any programming language;
however, Bastian does currently offer a reference implementation in C# and has plans to produce
more reference implementations in a variety of popular technologies. We utilize Swagger to
provide an easy to access API schema that may be used by third party teams to generate a
consumer API in their language of choice.
Sample Consumer Signature Validation
While the examples in this document are written in C#, implementation in other mature technologies
(such as Java, Python, etc.) should be very similar. The following shows how a consumer in C# could
validate the authenticity of a received request
bool IsSignatureValid(System.Web.HttpRequest request, string body, string secret)
{
if (request.Headers["bastian-webhook-signature"] == null)
{
return false;
}
var base64Signature = request.Headers["bastian-webhook-signature"].ToString();
// The secret that generated the original signature is assumed to be UTF-8 encoded.
var secretBytes = Encoding.UTF8.GetBytes(secret);
// The body that was signed is assumed to be UTF-8 encoded.
var bodyBytes = Encoding.UTF8.GetBytes(body);
using (var hasher = new System.Security.Cryptography.HMACSHA256(secretBytes))
{
var hash = hasher.ComputeHash(bodyBytes);
var computedSignature = Convert.ToBase64String(hash);
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
9
Exacta GTP – AutoStore - ISD
}
}
return computedSignature == base64Signature;
Some important things to note:
• The header name that Bastian stores the signature in is “bastian-webhook-signature”.
• The secret and the body are always dealt with using UTF-8 encoding.
• The signature itself is Base64 encoded.
• If the Base64-encoded signatures match, it's safe to assume the data has not been tampered
with or sent by a malicious entity.
NOTE: If the configured secret the is shared between Bastian and the consumer becomes compromised,
it's no longer safe to keep using the same secret. A new secret should be provisioned and configured in
Exacta to remedy this scenario.
Internal Signature Implementation
The logic that Bastian uses to sign requests is actually quite similar to the consumer logic. Below is an
example of the relationship between the Bastian publisher and the consumer:
virtual void SignRequest(RestSharp.RestRequest request, string secret)
{
if (request == null)
{
throw new ArgumentNullException(nameof(request));
}
if (string.IsNullOrWhiteSpace(secret))
{
throw new ArgumentNullException(nameof(secret));
}
// In the absence of the body, an empty string will represent the body.
var serializedBody = request.Body?.Value != null ?
request.JsonSerializer.Serialize(request.Body.Value) :
string.Empty;
// It's really important that both parties involved are treating the body
// as a UTF-8 encoded string.
var bodyBytes = Encoding.UTF8.GetBytes(serializedBody);
// Similarly, the secret should be treated as a UTF-8 encoded string.
var secretBytes = Encoding.UTF8.GetBytes(secret);
using (var hmacSha256 = new System.Security.Cryptography.HMACSHA256(secretBytes))
{
var signatureBytes = hmacSha256.ComputeHash(bodyBytes);
// The signature will be encoded as a Base64 string. For right now we are only supporting
sha256.
var headerValue = Convert.ToBase64String(signatureBytes);
// The header name is bastian-webhook-signature.
request.AddHeader("bastian-webhook-signature", headerValue);
}
}
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
10
Exacta GTP – AutoStore - ISD
6
6.1
Import Overview
Module Overview
Import is the process of an external provider publishing data to the Exacta system. Exacta communicates
with the host system via Web API.
Exacta has a multi-tiered system for importing data:
• Exacta Import Gateway. The Exacta Import Gateway will read data sent, translate the data, and
insert into Exacta’s staging tables. Validations performed at this stage are basic, ensuring the
data received from the host is formatted properly for insertion into the Exacta system. The
Exacta Import Gateway is coded for the specific fields read for the interfaces and it is those
specific fields described in this document. Exacta Import Gateway can be configured to send
email alerts for errors encountered in the data translation process.
• Import Service. The Import Service will perform further validations including data formatting
checks as well as validations involving production database reads. The Import Service inserts
validated data (or performs updates depending on transaction type) in the production database.
The Import Service is standard and not modified for individual customers. If the Import Service
fails to process a transaction it remains in the Exacta staging table. The transaction received
from the host can be reset for re-process by Import Service if needed.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
11
Exacta GTP – AutoStore - ISD
7
Exacta Import Gateway - Touchpoints
7.1
Product Master
Overview
The Product Master transaction is used to add or update each
SKU managed within the system.
Sender
Host System
Trigger Event
As each product is added or updated for the warehouse
Communication
URL
Web API, JSON formatted data
1. Only the “Each” unit of measure will be sent to Exacta as all
products will be stored and picked in eaches.
2. Exacta will always update data for existing products or add the
product if it does not exist.
3. One transaction will be sent for each product, but multiple
products can be sent in one transaction
http://<application server host>/exactaApi/import/v1/product
URL Parameters
None
Method
PUT (If product resource does not exist, one will be created)
Updateable Fields
None
Assumptions
7.1.1
Product Header
FIELD
SIZE
TYPE
DESCRIPTION
REQUIRED
prod_name
20
string
prod_description
255
string
Unique identifier for the
product
Description of the product
N
prod_status
1
string
Status of the product.
N
DEFAULT
Y
0 - Active. Normal state of a
product that is in use.
1 - Inactive. Describes a
product that is inactive.
Inactive products are not
replenished and are only
reported on in inventory
reconciliation if there is
inventory stocked in the
warehouse.
2 - Deleted. Deleted products
imply there is no inventory in
the system and the product is
no longer used in any way.
Deleted products are not
reported on by inventory
reconciliation. Deleted
products are also omitted
from any product related
grids in Exacta Portal.
Deleted product will not be
replenished.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
12
Exacta GTP – AutoStore - ISD
pick_method
2
string
1 = FIFO by date received
N
3 = LIFO by date received
prod_alias
prod_details
uom_types
-
-
-
array
9 = Ignore dates
Aliased for the Product (used
to store multiple barcodes for
the product)
N
array
See product alias section for
additional details
Details for the product
N
Product Details
array
See product detail section for
additional details
Product UOM type for each’s
N
UOM Type
image_path
255
string
top_off_method
1
int
See product UOM type
section for additional details
File location where the image
for the product is stored
(must be stored on the local
Exacta application server)
Defines criteria for top off
N
N
0 = Top off not allowed
1 = Top off regardless of
dates-soley evaluates space
top_off_split
1
int
5 = Top off if received date
matches
Defines how locations may
be topped off
N
1 = Top off allowed, split PA
as need to maximize use of
space
empty_location_split
1
int
2 = Top off allowed, only if
the entire PA will fit in the
location (to reduce number of
puts)
Empty location split rule
N
0 = Allow putaway to be split
across locations, but optimize
to the lowest number of splits
top_off_window_days
5
string
1 = Do not allow putaway to
be split across locations.
When this is set to 1
putaways and entire
putaways will be forced to
assign the entire putaway to
a single location. If it will not
fit to a single location it will
not assign
Used for putaway top off to
determine if two content
records should be treated the
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
N
13
Exacta GTP – AutoStore - ISD
same date when performing
top off in a location
uom_zones
-
array
Note: A value of 0 would
indicate the date received
must be an exact match, a
value of 1 would indicate it
must be within the same day
(although the time portion of
the date received can be
different), a value of >1 would
indicate a true window.
Unit of Measure Zones for
this product zone.
Y
UomZones
REQUIRED
DEFAULT
See uom zone section for
additional details
7.1.1
Product Alias
FIELD
SIZE
TYPE
DESCRIPTION
alias_type
9
int
alias_name
255
string
Alias Type (configurable in
database)
Alias Name for the Product
7.1.1
Y
Product Detail
FIELD
SIZE
TYPE
DESCRIPTION
Detail_type
9
int
Detail_value
20
string
Detail type (configurable in
database)
Detail Value
7.1.1
Y
REQUIRED
DEFAULT
Y
N
Product UOM Type
FIELD
SIZE
TYPE
DESCRIPTION
uom_depth
(9,2)
decimal
uom_height
(9,2)
decimal
uom_weight
(9,2)
decimal
uom_width
(9,2)
decimal
count_threshold_qty
9
int
Depth for a single unit of this
uom. Stored in the type of
unit defined for the
warehouse (millimeters,
inches, etc.)
Height for a single unit of this
uom. Stored in the type of
unit defined for the
warehouse (millimeters,
inches, etc.)
Weight for a single unit of this
uom. Stored in the weight unit
defined for the warehouse
(kg, pounds, etc.)
Width for a single unit of this
uom. Stored in the type of
unit defined for the
warehouse (millimeters,
inches, etc.)
The stocked quantity of the
product at which a cycle
count will be triggered.
REQUIRED
DEFAULT
Y
N
N
N
N
0 = Never trigger
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
14
Exacta GTP – AutoStore - ISD
1 = trigger when pick results
in empty cell
velocity
1
int
>1 = trigger when post pick
remaining cell quantity is less
than this number
Product unit velocity
N
Velocity is used during the
location assignment process
to know where to put the
product
Velocity 0 is therefore highest
velocity. When the system is
using velocity, putaway
locations are assigned such
that locations that match the
products velocity and higher
are the first locations to be
chosen
family_group
1
int
Any locations that have a
lower velocity will be stored at
the end of the list. This is
currently not being used
when evaluating locations to
top off
Used in putaway location
assignment to force a product
to inventory locations
configured for the same
family group (inventory
locations must be configured
ahead of time for family
groups)
N
Putaway Location
Assignment requires an exact
match on family group, unlike
velocity. An empty product
family group value will allow a
product to be putaway
location assigned to a
location with any family group
se
Note: Since family group
requires an exact match, and
the user indicates the bin
pattern during Receipt
Putaway, the user must
override the family group
logic during putaway if the bin
presented is for a different
family group. In general,
family groups are not
recommended if Receipt
Putaway is the main mode of
putaway
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
15
Exacta GTP – AutoStore - ISD
7.1.1
Uom Zone
FIELD
SIZE
TYPE
DESCRIPTION
uom_type
3
int
int
top_off_method
1
REQUIRED
DEFAULT
uom identifier
Y
UomType
100 = Each
200 = Inner Pack
300 = Case
400 = Pallet
Defines criteria for top off
N
TopOffMethod
0 = Top off not allowed
1 = Top off regardless of
dates-solely evaluates space
top_off_split
1
int
5 = Top off if date received
matches
Defines how locations may
be topped off
N
1 = Top off allowed, split PA
as needed to maximize use
of space
empty_location_split
1
int
2 = Top off allowed, only if
the entire PA will fit in the
location (to reduce number of
puts)
Empty location split rule.
N
0 = Allow putaway to be split
across locations, but optimize
to the lowest number of splits.
1 = Do not allow putaway to
be split across locations.
When this is set to 1
putaways and entire
putaways will be forced to
assign the entire putaway to
a single location. If it will not
fit into a single location it will
not assign.
2 = Allow splitting into
multiple locations without
trying to optimize the number
of splits. We will allow
splitting across multiple
locations as they are
processed in the logic
regardless of how many
locations we split to.
7.1.2
Schema
{
"records": [
{
"prod_name": [string],
"prod_description": [string],
"prod_status": [string],
"top_off_window_days": [string],
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
16
Exacta GTP – AutoStore - ISD
"pick_method": [int],
"prod_alias": [
{
"alias_type": [int],
"alias_name": [string]
}
],
"uom_types": [
{
"uom_depth": [dec],
"uom_height": [dec],
"uom_weight": [dec],
"uom_width": [dec],
"count_threshold_qty": [int],
"velocity": [int],
"family_group": [int]
}
],
"image_path ": [string],
"top_off_method": [int],
"top_off_split": [int],
"empty_location_split": [int],
"uom_zones": [
{
"uom_type": [int],
"top_off_method": [int],
"top_off_split": [int],
"empty_location_split": [int]
}
]
}
]
}
7.1.3
Example Message
{
"records": [
{
"prod_name": "SKUABC",
"prod_description": "Description of SKUABC",
"prod_status": "0",
"top_off_window_days": "30",
"pick_method": "1",
"prod_alias": [
{
"alias_type": 1,
"alias_name": "SKUALIAS123"
},
{
"alias_type": 2,
"alias_name": "SKUALIAS345"
},
{
"alias_type": 3,
"alias_name": "SKUALIAS456"
}
],
"uom_types": [
{
"uom_depth": 3.5,
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
17
Exacta GTP – AutoStore - ISD
"uom_height": 3.5,
"uom_weight": 3.5,
"uom_width": 3.5,
"count_threshold_qty": 5,
"velocity": 2,
"family_group": 1
}
],
"image_path": "D:/Images/SKUABC",
"top_off_method": 1,
"top_off_split": 0,
"empty_location_split": 1,
"uom_zones": [
{
"uom_type": 100,
"top_off_method": 0,
"top_off_split": 1,
"empty_location_split": 1
}
]
}
]
}
7.1.4
Response
1. Success Response:
o
Code: 200
o
Content: No content will be returned in the response.
2. Error Responses:
o
Code: 400 BAD REQUEST
o
§ Description: May occur if the message syntax was malformed
§ Content: { "error" : "The reason the request was bad." }
Code: 401 UNAUTHORIZED
o
§ Description: May occur if authorization is incorrect or expired.
§ Content: { "error" : "Authentication required. Optional reason." }
Code: 500 INTERNAL SERVER ERROR
§
§
7.1.5
Description: May occur if an unexpected error occurs when processing the
request
Content: { "error" : "Exception information." }
Processing
The Exacta Import Gateway validates the data is of a proper structure and contains needed data
elements. If valid then creates the transaction in Exacta’s Import staging table and provides a response.
An invalid transaction will trigger an appropriate response and an email alert reporting the error, if
configured.
After the Exacta Import Gateway stores data in Exacta’s staging tables, standard Exacta Import picks up
the transaction and either adds the product or if existing updates. If the business processing was
successful, the transaction is marked as “imported”. If the transaction fails business processing, it’s
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
18
Exacta GTP – AutoStore - ISD
marked as “failed”. An email alert is sent reporting the error, if configured. The Transaction Utility in
Exacta Portal can be used to reprocess the transaction.
7.1.6
Product Use Cases
The use cases below illustrate the uses of this message:
ITEM # USE CASE
PRE-CONDITIONS
1.
2.
3.
POST CONDITIONS
Transaction received for a product that does not
exist
Transaction received for a product that does exist
Product does not exist
Product is added
Product does exist
Product is updated
Transaction received to update aliases for a
product that already exist
Product does exist
Product Aliases are
updated
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
19
Exacta GTP – AutoStore - ISD
7.2
Putaway Request
Overview
Used to add putaway orders to the system for stocking inventory
into AutoStore™
Sender
Host System
•
•
Trigger Event
Communication
When putaway order is created in host system
When putaway cart is build in the host system
Web API, JSON formatted data
1. One transaction will be sent for each putaway order.
2. The host system will only send Putaway Orders for products
that are already configured in Exacta. If the cart sent is
considered to still be in use (not all products are putaway),
Import Service will fail the import.
3. If a putaway order is sent to Exacta with the intention of
building a cart within Exacta with the putaway order, only one
order line / product will be included in the container.
4. If the putaway order is sent to Exacta is a host built cart, the
cart should have a putaway line represented each cart position
Assumptions
URL
http://<application server host>/exactaApi/import/putaway
URL Parameters
None
Method
PUT
Updateable Fields
None
7.2.1
Order Header
FIELD
SIZE
TYPE
DESCRIPTION
order_name
20
string
Unique Identifier for the order
Y
order_cancel
1
string
N
company_name
10
string
priority
9
int
due_date
20
string
due_time
20
string
containers
-
array
Y = Cancel
N = Don’t cancel
Company name for the
putaway order. If the
company name is populated,
the inventory from this order
will be stocked as if it belongs
to this company. Only
inventory belonging to the
same company is eligible for
top off (if for the same SKU).
Also, this inventory will only
be available for pick order
assignment if the pick order
has the same company
name.
The Priority for the order. The
lower the number the higher
the priority.
Due date for the order to be
completed
Due time for the order to be
completed
List of containers for the pick
order (only used if the host
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
REQUIRED
DEFAULT
N
N
500
N
N
20
Exacta GTP – AutoStore - ISD
system is naming the
containers outside of Exacta)
order_lines
-
array
See container section for
additional detail
List of all order lines tied to
the order/container
Y
See order line section for
additional detail.
7.2.1
Container
FIELD
SIZE
TYPE
DESCRIPTION
cntnr_type
2
int
Container type for the
putaway order
REQUIRED
DEFAULT
Y
5 = Putaway Container
9 = Host built cart
cntnr_id
20
string
cntnr_name
20
string
container_details
-
array
For cart build, ensure
that order_line.cart_position
has a value or the container
type will default to 5 in Exacta
Connect
Unique identifier for the
container
Name for the container
List of all order lines tied to
the order / container
Y
N
Y
See details section for
additional details
7.2.1
Order Line
FIELD
SIZE
TYPE
DESCRIPTION
line_num
9
Int
Order line number
Y
prod_name
20
string
Product the order is for
Y
quantity
9
int
Quantity to be putaway
Y
zone_number
9
string
N
transport_cntnr_id
20
string
Zone number to putaway
product to
Container ID
Note: Must match a
Container.container_id in the
container array
expiration_date
20
string
lot_number
20
string
date_received
20
string
Expiration date for the
product
Lot number for the product
Date the product was
received
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
REQUIRED
DEFAULT
Y – If
containers
array is
populated
N – If
containers
array is
empty
N
N
N
21
Exacta GTP – AutoStore - ISD
order_line_details
cart_position
-
array
List details to included for the
order line
See detail section for
additional information
Position on the cart if the
container is a host built cart
2
int
FIELD
SIZE
TYPE
DESCRIPTION
Detail_type
9
int
Detail_value
20
string
Detail type (configurable in
database)
Detail Value
7.2.2
7.2.3
N
N
Detail
REQUIRED
DEFAULT
Y
N
Schema
{
"records": [
{
"containers": [
{
"cntnr_type": [int],
"cntnr_id": [string],
"cntnr_name": [string],
"container_details": [
{
"detail_type": [int],
"detail_value": [string]
}
]
}
],
"due_date": [string],
"due_time": [string],
"order_lines": [
{
"line_num": [int],
"prod_name": [string],
"quantity": [int],
"zone_num": [string],
"transport_cntnr_id": [string],
"expiration_date": [string],
"lot_number": [string],
"date_received": [string],
"order_line_details": [
{
"detail_type": [int],
"detail_value": [string]
}
],
"cart_position": [int]
}
],
"order_name": [string],
"order_cancel": [string],
"company_name": [string],
"priority": [int]
}
]
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
22
Exacta GTP – AutoStore - ISD
}
7.2.4
Example Message
{
"records": [
{
"containers": [
{
"cntnr_type": 9,
"cntnr_id": "CntnrAlias123",
"cntnr_name": "CartABC",
"container_details": [
{
"detail_type": 10,
"detail_value": "Example Container Detail Value"
}
]
}
],
"due_date": "2023-03-19",
"due_time": "13:08:26.000",
"order_lines": [
{
"line_num": 1,
"prod_name": "SKUXYZ",
"quantity": 10,
"zone_num": "01",
"transport_cntnr_id": "CntnrAlias123",
"expiration_date": "2023-09-18 13:08:26.000",
"lot_number": 1215,
"date_received": "2023-03-09 13:08:26.000",
"order_line_details": [
{
"detail_type": 5,
"detail_value": "Example Order Line Detail Value"
}
],
"cart_position": 1
}
],
"order_name": "PutawayOrder1",
"order_cancel": "N",
"company_name": "Example Company",
"priority": 300
}
]
}
7.2.5
Response
1. Success Response:
Code: 200
§ Content: No content will be returned in the response.
2. Error Responses:
o
o
Code: 400 BAD REQUEST
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
23
Exacta GTP – AutoStore - ISD
o
§ Description: May occur if the message syntax was malformed
§ Content: { "error" : "The reason the request was bad." }
Code: 401 UNAUTHORIZED
o
§ Description: May occur if authorization is incorrect or expired.
§ Content: { "error" : "Authentication required. Optional reason." }
Code: 500 INTERNAL SERVER ERROR
§
§
7.2.6
Description: May occur if an unexpected error occurs when processing the
request
Content: { "error" : "Exception information." " }
Processing
The Exacta Import Gateway validates the data is of a proper structure and contains needed data
elements. If valid then creates the transaction in Exacta’s Import staging table and provides a response.
An invalid transaction will trigger an appropriate response and an email alert reporting the error, if
configured.
After the Exacta Import Gateway stores data in Exacta’s staging tables, standard Exacta Import picks up
the transaction and adds the putaway if it does not exist. If the business processing was successful, the
transaction is marked as “imported”. If the transaction fails business processing, it’s marked as “failed”.
An email alert is sent reporting the error, if configured. The Transaction Utility in Exacta Portal can be
used to reprocess the transaction.
7.2.7
Putaway Request Use Cases
The use cases below illustrate the uses of this message:
ITEM # USE CASE
PRE-CONDITIONS
1.
Transaction received for a putaway that
Putaway does not exist
does not exist
2.
Putaway exists
Transaction received for a putaway that
does exist
3.
Transaction received for a putaway with
Product does not exist
an invalid product
4.
Container has lines that
Transaction received for a putaway with
are open for a putaway
a container that has open lines
that already exists in the
system
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Putaway is added
Putaway is not
added
Putaway is not
added
Putaway is not
added
24
Exacta GTP – AutoStore - ISD
7.3
Pick Request
Overview
Used to add or update pick orders to the system
Sender
Host System
Trigger Event
Triggered when a pick order is created in the host system or updated in
the host system
Communication
Web API, JSON formatted data
1. Host system has on-hand inventory to fulfill lines sent to Exacta
2. Host will not send orders more than once unless they are
updating the priority or due date of the order
3. Orders can be updated only before any picks have occurred for
the order. If an update is received for an order that already has
a pick for it, nothing will be updated.
Assumptions
URL
http://<application server host>/exactaApi/import/v1/pick
URL Parameters
None
Method
PUT
Updateable Fields
order_cancel, due_date, due_time, priority, customer_category,
qc_reason, ship_sort_code, pack_sort_code, zone_number,
is_complete
7.3.1
Order Header
FIELD
SIZE
TYPE
DESCRIPTION
order_name
20
string
Unique identifier for the order
Y
order_cancel
1
string
N
due_date
40
string
due_time
40
string
Priority
9
int
ShipSortCode
20
string
PackSortCode
20
string
Flag to cancel the order (Y/N)
– default is N
Due date for the order. Due
date is used for choosing
which orders are sent to the
AutoStore™ first (sorted by
priority and then due date)
Due time for the order. Due
time is used for choosing
which orders are sent to the
AutoStore™ first (sorted by
priority and then due date)
Priority for the order. Priority
is used for choosing which
orders are sent to the
AutoStore™ first (sorted by
priority and then due date) –
1 is a higher priority value
than 999
Identifies the sort code
Exacta will use to route the
containers for the order to a
ship lane (configured through
the sort code configuration
utility in Exacta Portal)
Identifies the pack code
Exacta will use to route the
containers for the order to a
pack lane (configured through
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
REQUIRED
DEFAULT
N
N
N
N
N
25
Exacta GTP – AutoStore - ISD
customer_category
9
int
containers
-
array
order_details
-
array
order_lines
-
array
the sort code configuration
utility in Exacta Portal)
Customer categories can be
configured for an AutoStore™
port in Exacta. If configured,
only orders belonging to the
customer category that the
port is configured for will be
delivered to that port.
List of containers for the pick
order (only used if the host
system is naming the
containers outside of Exacta)
See container section
List of order details for the
pick order
See routing zone section
List of all order lines tied to
the order (see order line
segment for additional
details)
N
N
Y
Y
See order line section
7.3.2
Container
FIELD
SIZE
TYPE
DESCRIPTION
cntnr_type
9
int
N
cntnr_id
20
string
Container type for the pick
order
Unique container identifier
cntnr_name
20
string
Name of the container
N
container_details
-
array
N
routing_zones
-
array
See detail section for
additional information
Zones that the container will
be routed to
qc_required
-
string
qc_reason
9
string
ship_sort_code
20
string
pack_sort_code
20
string
See routing zone section for
additional information
Whether or not QC is
required {"true"/"false"}
Reason for QC
Identifies the sort code
Exacta will use to route the
containers for the order to a
ship lane (configured through
the sort code configuration
utility in Exacta Portal)
Ship sort code will replace
the current sort code if
updated
Identifies the sort code
Exacta will use to route the
containers for the order to a
pack lane (configured through
the sort code configuration
utility in Exacta Portal)
REQUIRED
DEFAULT
Y
N
N
N
N
N
Pack sort code will append a
new sort code if updated
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
26
Exacta GTP – AutoStore - ISD
estimated_wgt
19,6
dec
label_data
20
string
label_type
2
int
max_cntnr_wgt
4,2
dec
min_cntnr_wgt
4,2
dec
verification_barcode
40
string
7.3.1
N
N
N
N
N
N
Routing Zone
FIELD
SIZE
zone_number
is_complete
7.3.2
Estimated weight of the
container. Used for weight
check at a weight scale.
Tolerance % is configured
system-wide.
ZPL string for the shipping
label that will be passed to
the print and apply machine
for the container
Type of label for the container
18 – Shipping Label
Maximum container weight of
the container. Used for
weight check at a weight
scale
Minimum container weight of
the container. Used for
weight check at a weight
scale
Barcode that is used for
verification at a verification
scanner post-PANDA
(typically a tracking number)
1
TYPE
DESCRIPTION
string
Zone number for container
routing
Y = Container has already
visited zone
N = Container has not yet
visited zone
string
REQUIRED
DEFAULT
N
Y
Order Line
FIELD
SIZE
TYPE
DESCRIPTION
line_num
19
int
Line number for the order line
Y
line_cancel
1
boolean
Cancel the line? true/false
Y
prod_name
20
string
Y
quantity
9
int
zone_num
3
string
transport_cntnr_id
20
string
Name of the product to be
picked
Pick quantity requested for
product
Zone number where the
product is stored
Unique transport container
identifier
Must match a
Container.container_id in the
container array
shipping_cntnr_id
20
string
Unique shipping container
identifier
Must match a
Container.container_id in the
container array
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
REQUIRED
DEFAULT
Y
Y
Y - if
Order_Hea
der.Contain
ers is
populated
and
shipping_cn
tnr_id is
empty
Y - if
Order_Hea
der.Contain
ers is
populated
and
transport_c
27
Exacta GTP – AutoStore - ISD
serial_num_required
1
boolean
order_line_details
-
array
FIELD
SIZE
TYPE
DESCRIPTION
Detail_type
9
int
Detail_value
20
string
Detail type (configurable in
database)
Detail Value
7.3.3
7.3.4
Is a serial number required?
{true/false}
See detail section for
additional information
ntnr_id is
empty
N
N
Detail
REQUIRED
DEFAULT
Y
N
Schema
{
"records": [
{
"order_name": [string],
"order_cancel": [string],
"due_date": [string],
"due_time": [string],
"priority": [int],
"ship_sort_code": [string],
"pack_sort_code": [string],
"customer_category": [int],
"order_details": [
{
"detail_type": [int],
"detail_value": [string]
}
],
"containers": [
{
"cntnr_type": [int],
"cntnr_id": [string],
"cntnr_name": [string],
"container_details": [
{
"detail_type": [int],
"detail_value": [string]
}
],
"routing_zones": [
{
"zone_number": [string],
"is_complete": [string]
}
],
"qc_required": [string],
"qc_reason": [string],
"ship_sort_code": [string],
"pack_sort_code": [string],
"estimated_wgt": [dec],
"label_data": [string],
"label_type": [int],
"max_cntnr_wgt": [dec],
"min_cntnr_wgt": [dec],
"verification_barcode": [string]
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
28
Exacta GTP – AutoStore - ISD
}
],
"order_lines": [
{
"line_num": [int],
"line_cancel": [boolean],
"prod_name": [string],
"quantity": [int],
"zone_num": [string],
"transport_cntnr_id": [string],
"shipping_cntnr_id": [string],
"serial_num_required": [boolean],
"order_line_details": [
{
"detail_type": [int],
"detail_value": [string]
}
]
}
]
}
]
}
7.3.5
Example Message
{
"records": [
{
"order_name": "Order1234",
"order_cancel": "0",
"due_date": "11/22/2022",
"due_time": "13:08:26.000",
"priority": 100,
"ship_sort_code": "8",
"pack_sort_code": "3",
"customer_category": 1,
"containers": [
{
"cntnr_type": 4,
"cntnr_id": "cntnr123",
"cntnr_name": "Container One",
"container_details": [
{
"detail_type": 1,
"detail_value": "valueABC"
}
],
"routing_zones": [
{
"zone_number": "01",
"is_complete": "Z1"
}
],
"qc_required": "false",
"qc_reason": "1",
"ship_sort_code": "8",
"pack_sort_code": "3",
"estimated_wgt": 10.5,
"label_type": 18,
"label_data": "^XA^FO50,50^B8N,100,Y,N^FD1234567^FS^XZ",
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
29
Exacta GTP – AutoStore - ISD
"max_cntnr_wgt": 8,
"min_cntnr_wgt": 2.2,
"verification_barcode": "9400100000000000000000"
},
{
"cntnr_type": 7,
"cntnr_id": "cntnrABC",
"cntnr_name": "Container Two"
}
],
"order_details": [
{
"detail_type": 1,
"detail_value": "valueABC"
}
],
"order_lines": [
{
"line_num": 1,
"line_cancel": false,
"prod_name": "SKUABC",
"quantity": 1,
"zone_num": "11",
"transport_cntnr_id": "cntnr123",
"shipping_cntnr_id": "cntnrABC",
"serial_num_required": false,
"order_line_details": [
{
"detail_type": 1,
"detail_value": "valueABC"
}
]
}
]
}
]
}
7.3.6
Response
1. Success Response:
Code: 200
§ Content: No content will be returned in the response.
2. Error Responses:
o
o
Code: 400 BAD REQUEST
o
§ Description: May occur if the message syntax was malformed
§ Content: { "error" : "The reason the request was bad." }
Code: 401 UNAUTHORIZED
o
§ Description: May occur if authorization is incorrect or expired.
§ Content: { "error" : "Authentication required. Optional reason." }
Code: 500 INTERNAL SERVER ERROR
§
§
Description: May occur if an unexpected error occurs when processing the
request
Content: { "error" : "Exception information." " }
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
30
Exacta GTP – AutoStore - ISD
7.3.7
Processing
The Exacta Import Gateway validates the data is of a proper structure and contains needed data
elements. If valid then creates the transaction in Exacta’s Import staging table and provides a response.
An invalid transaction will trigger an appropriate response and an email alert reporting the error, if
configured.
After the Exacta Import Gateway stores data in Exacta’s staging tables, standard Exacta Import picks up
the transaction and either adds the order or if existing updates. If the business processing was
successful, the transaction is marked as “imported”. If the transaction fails business processing, it’s
marked as “failed”. An email alert is sent reporting the error, if configured. The Transaction Utility in
Exacta Portal can be used to reprocess the transaction.
7.3.8
Pick Request Use Cases
The use cases below illustrate the uses of this message:
ITEM # USE CASE
PRE-CONDITIONS
1.
Transaction received for a pick order
Pick order does not exist
that does not exist
2.
Transaction received for a pick order
Pick order exists
that does exist
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Pick order is added
Pick order is updated
31
Exacta GTP – AutoStore - ISD
7.4
Cycle Count Request
Overview
Used to add cycle count orders to the system
Sender
Host System
Trigger Event
Triggered when a cycle count order is created in the host system
Communication
URL
Web API, JSON formatted data
1. Only one cycle count is sent for each product to be counted
2. Orders cannot be updated once the order has been started
http://<application server host>/exactaApi/import/v1/cc
URL Parameters
None
Method
PUT
Updateable Fields
order_cancel, priority, and due_date
Assumptions
7.4.1
Order Header
FIELD
SIZE
TYPE
DESCRIPTION
order_name
order_cancel
20
1
string
string
prod_name
20
string
Unique identifier for the order
Flag to cancel the order (Y/N)
– default is N
Product associated to the
order. Will add an additional
order line to the order
line array
REQUIRED
DEFAULT
Y
N
N
Cannot leave order_lines field
blank when this is populated
priority
9
int
due_date
20
company_name
20
order_lines
-
order_details
-
Y
string
Priority for the order. Priority
is used when sending a task
for the count to the
AutoStore™. (sorted by
priority and then due date) –
1 is a higher priority value
than 999
Due date for the order
string
Company Name for the order
N
array
List of all order lines tied to
the order
Y
array
see order line for additional
details
List of all order details tied to
the order
Y
N
see order detail for additional
details
7.4.1
Order Line
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
32
Exacta GTP – AutoStore - ISD
FIELD
SIZE
TYPE
DESCRIPTION
line_num
9
int
int for the order line
Y
prod_name
20
string
Product for the order line
Y
FIELD
SIZE
TYPE
DESCRIPTION
detail_type
9
int
detail_value
20
string
Detail type (configurable in
database)
Detail Value
7.4.2
7.4.3
REQUIRED
DEFAULT
Order Detail
REQUIRED
DEFAULT
Y
Y
Schema
{
"records": [
{
"order_name": [string],
"order_cancel": [string],
"prod_name": [string],
"priority": [int],
"due_date": [string],
"order_lines": [
{
"line_num": [int],
"prod_name": [string]
}
],
"order_details": [
{
"detail_type": [int],
"detail_value": [string]
}
]
}
]
}
7.4.4
Example Message
{
"records": [
{
"order_name": "CCOrder1",
"order_cancel": "N",
"prod_name": "SKUXYZ",
"priority": 500,
"due_date": "2023-02-03 14:08:26.000",
"order_lines": [
{
"line_num": 1,
"prod_name": "SKUABC"
}
],
"order_details": [
{
"detail_type": 1,
"detail_value": "Sample Value"
}
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
33
Exacta GTP – AutoStore - ISD
]
},
{
"order_name": "CCOrder2",
"order_cancel": "N",
"prod_name": "SKUABC",
"priority": 500,
"due_date": "2023-02-03 14:08:26.000",
"order_lines": [
{
"line_num": 1,
"prod_name": "SKUXYZ"
}
]
}
]
}
7.4.5
Response
1. Success Response:
Code: 200
§ Content: No content will be returned in the response.
2. Error Responses:
o
o
Code: 400 BAD REQUEST
o
§ Description: May occur if the message syntax was malformed
§ Content: { "error" : "The reason the request was bad." }
Code: 401 UNAUTHORIZED
o
§ Description: May occur if authorization is incorrect or expired.
§ Content: { "error" : "Authentication required. Optional reason." }
Code: 500 INTERNAL SERVER ERROR
§
§
7.4.6
Description: May occur if an unexpected error occurs when processing the
request
Content: { "error" : "Exception information." " }
Processing
The Exacta Import Gateway validates the data is of a proper structure and contains needed data
elements. If valid then creates the transaction in Exacta’s Import staging table, otherwise triggers an
email alert reporting the error.
After the Exacta Import Gateway stores data in Exacta’s staging tables, standard Exacta Import picks up
the transaction and either adds the product or if existing updates. If the business processing was
successful, the transaction is marked as “imported”. If the transaction fails business processing, it’s
marked as “failed”. If needed the Interface Transaction Utility in Exacta Portal can be used to resend.
7.4.7
Cycle Count Request Use Cases
The use cases below illustrate the uses of this message:
ITEM # USE CASE
PRE-CONDITIONS
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
34
Exacta GTP – AutoStore - ISD
1.
Transaction received for a cycle count
order that does not exist
Cycle Count order does
not exist
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
Cycle count order is
added
35
Exacta GTP – AutoStore - ISD
7.5
Container Request
Overview
Used to update or add containers
Sender
Host System
Trigger Event
Triggered when a container needs created or updated within Exacta:
• A container with picks only in the pick module is added to the
system
• A container’s routing zones are updated (the list of zones given
in this import will overwrite any existing zones for the container)
• A container’s sort code, estimated weight, or shipping label is
updated or added
Communication
Web API, JSON formatted data
Assumptions
URL
http://<application server host>/exactaApi/import/v1/container
URL Parameters
None
Method
POST
Updateable Fields
estimated_wgt, label_data, qc_reason, qc_required, routing_zones,
is_complete, zone_number
7.5.1
Container
FIELD
SIZE
TYPE
DESCRIPTION
cntnr_name
40
string
container_type
4,0
dec
estimated_wgt
4,2
dec
label_data
20
string
label_type
2
int
max_cntnr_wgt
4,2
dec
min_cntnr_wgt
4,2
dec
ship_sort_code
20
string
Unique identifier for the
container
Type of the container. Predefined container types.
Estimated weight of the
container. Used for weight
check at a weight scale.
Tolerance % is configured
system-wide.
ZPL string for the shipping
label that will be passed to
the print and apply machine
for the container
Type of label for the container
18 – Shipping Label
Maximum container weight of
the container. Used for
weight check at a weight
scale
Minimum container weight of
the container. Used for
weight check at a weight
scale
Identifies the sort code
Exacta will use to route the
containers for the order to a
ship lane (configured through
the sort code configuration
utility in Exacta Portal)
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
REQUIRED
DEFAULT
Y
Y
N
N
N
N
N
N
36
Exacta GTP – AutoStore - ISD
pack_sort_code
20
string
qc_reason
30
string
qc_required
30
string
routing_zones
-
array
verification_barcode
40
string
ship_sort_code
20
string
pack_sort_code
container_details
7.5.2
20
-
string
array
Ship sort code will replace
the current sort code if
updated
Identifies the sort code
Exacta will use to route the
containers for the order to a
pack lane (configured through
the sort code configuration
utility in Exacta Portal)
Pack sort code will append a
new sort code if updated
Reason for QC
Whether or not QC is
required {true/false}
Zones that the container will
be routed to
See routing zone section for
additional information
Barcode that is used for
verification at a verification
scanner post-PANDA
(typically a tracking number)
Identifies the sort code
Exacta will use to route the
containers for the order to a
ship lane (configured through
the sort code configuration
utility in Exacta Portal)
Ship sort code will replace
the current sort code if
updated
Identifies the sort code
Exacta will use to route the
containers for the order to a
pack lane (configured through
the sort code configuration
utility in Exacta Portal)
Pack sort code will append a
new sort code if updated
See detail section for
additional information
N
N
Y
N
N
N
N
Routing Zone
FIELD
SIZE
zone_number
is_complete
TYPE
DESCRIPTION
string
Zone number for container
routing
Y = Container has already
visited zone
N = Container has not yet
visited zone
1
string
FIELD
SIZE
TYPE
DESCRIPTION
Detail_type
9
int
Detail_value
20
string
Detail type (configurable in
database)
Detail Value
7.5.1
N
REQUIRED
DEFAULT
Y
Y
Detail
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
REQUIRED
DEFAULT
Y
N
37
Exacta GTP – AutoStore - ISD
7.5.2
Schema
{
"records": [
{
"cntnr_name": [string],
"cntnr_type": [dec],
"estimated_wgt": [dec],
"label_type": [dec],
"label_data": [string],
"max_cntnr_wgt": [dec],
"min_cntnr_wgt": [dec],
"qc_reason": [string],
"qc_required": [string],
"ship_sort_code": [string],
"pack_sort_code": [string],
"routing_zones": [
{
"is_complete": [string],
"zone_number": [string]
}
],
"verification_barcode": [string],
"container_details": [
{
"detail_type": [int],
"detail_value": [string]
}
]
}
]
}
7.5.3
Example Message
{
"records": [
{
"cntnr_name": "Cntnr123",
"cntnr_type": 4,
"estimated_wgt": 4.1,
"label_type": 18,
"label_data": "^XA^FO50,50^B8N,100,Y,N^FD1234567^FS^XZ",
"max_cntnr_wgt": 8.0,
"min_cntnr_wgt": 2.2,
"qc_reason": "3",
"qc_required": "Y",
"ship_sort_code": "8",
"pack_sort_code": "3",
"routing_zones": [
{
"is_complete": "true",
"zone_number": "Z1"
},
{
"is_complete": "false",
"zone_number": "Z2"
}
],
"verification_barcode": "9400100000000000000000",
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
38
Exacta GTP – AutoStore - ISD
"container_details": [
{
"detail_type": 1,
"detail_value": "valueABC"
}
]
}
]
}
7.5.4
Response
1. Success Response:
Code: 200
§ Content: No content will be returned in the response.
2. Error Responses:
o
o
Code: 400 BAD REQUEST
o
§ Description: May occur if the message syntax was malformed
§ Content: { "error" : "The reason the request was bad." }
Code: 401 UNAUTHORIZED
o
§ Description: May occur if authorization is incorrect or expired.
§ Content: { "error" : "Authentication required. Optional reason." }
Code: 500 INTERNAL SERVER ERROR
§
§
7.5.5
Description: May occur if an unexpected error occurs when processing the
request
Content: { "error" : "Exception information." " }
Processing
The Exacta Import Gateway validates the data is of a proper structure and contains needed data
elements. If valid then creates the transaction in Exacta’s Import staging table and provides a response.
An invalid transaction will trigger an appropriate response and an email alert reporting the error, if
configured.
After the Exacta Import Gateway stores data in Exacta’s staging tables, standard Exacta Import picks up
the transaction and processes it. If the business processing was successful, the transaction is marked as
“imported”. If the transaction fails business processing, it’s marked as “failed”. An email alert is sent
reporting the error, if configured. The Transaction Utility in Exacta Portal can be used to reprocess the
transaction.
7.5.6
Container Request Use Cases
The use cases below illustrate the uses of this message:
ITEM # USE CASE
PRE-CONDITIONS
1.
Transaction received for a container
Container exists
2.
Transaction received for a container
Container does not exist
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Container is updated
Container is added
39
Exacta GTP – AutoStore - ISD
7.6
Available Inventory Request
Overview
Used to check the inventory that is in the system for a SKU
Sender
Host System
Trigger Event
Triggered when the host system wants to know the quantity for a SKU
that Exacta has stocked
Communication
Web API, JSON formatted data
Assumptions
http://<application server
host>/exactaApi/inventory/<product>/quantity/<company_name>
URL
•
•
URL Parameters
Method
GET
Updateable Fields
None
7.6.1
Product – URL encoded prod_name for the request
Company Name – URL encoded company_name for the
request (if company name is not included in URL, all
inventory for that SKU is returned
Response
FIELD
SIZE
TYPE
DESCRIPTION
error
20
string
prod_name
20
string
prod_not_found
1
boolean
summaries
-
array
Populated if any error
occurred while retrieving
product information
Product name that was
passed as a param in URL
true - if product was not found
false - if product was found
Array of product quantity
summaries.
REQUIRED
DEFAULT
REQUIRED
DEFAULT
See product quantity
summary section for
additional information
7.6.1
Product Quantity Summary
FIELD
SIZE
TYPE
DESCRIPTION
assigned_qty
40
int
available_qty
1
int
unavailable_qty
3
int
Quantity for the SKU that is
currently assigned to a pick
order
Quantity for the SKU that is
available for assignment
Quantity for the SKU that is
unavailable for assignment
due to the location being
unavailable (must make
location available through
Portal)
Quantity for the SKU that is
blocked due to the location
being blocked (must un-block
location through Portal)
blocked_qty
int
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
40
Exacta GTP – AutoStore - ISD
total_qty
int
zone_num
int
Total quantity that is stocked
in the AutoStore™
Zone for the request
7.6.2 Response
1. Success Response:
o
Code: 200
o
Content Example
{
"error": "",
"prod_name": "SKUXYZ",
"prod_not_found": false,
"summaries": [
{
"assigned_qty": 0,
"available_qty": 11,
"blocked_qty": 0,
"total_qty": 11,
"unavailable_qty": 0,
"zone_num": "01"
}
]
}
2. Error Responses:
o
Code: 400 BAD REQUEST
o
§ Description: May occur if the message syntax was malformed
§ Content: { "error" : "The reason the request was bad." }
Code: 401 UNAUTHORIZED
o
§ Description: May occur if authorization is incorrect or expired.
§ Content: { "error" : "Authentication required. Optional reason." }
Code: 500 INTERNAL SERVER ERROR
§
§
7.6.3
Description: May occur if an unexpected error occurs when processing the
request
Content: { "error" : "Exception information." " }
Processing
The Exacta Import Gateway validates the data is of a proper structure and contains needed data
elements. The exacta database will then be queried for the relevant information to send in the response
to the host system.
7.6.4
Inventory Use Cases
The use cases below illustrate the uses of this message:
ITEM # USE CASE
PRE-CONDITIONS
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
41
Exacta GTP – AutoStore - ISD
1.
Transaction received for a SKU that
exists
Product Exists in Exacta
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
Inventory is sent
back to the host
system
42
Exacta GTP – AutoStore - ISD
8
Export Overview
Export is the process of Exacta initiating transactions to external systems. Exacta communicates with the
host system using a Web API.
Exacta has a multi-tiered system for importing data:
• Export Service. The Export Service receives notifications from various Exacta modules to
initiate transactions back to the host system. The Export Service is standard and not modified for
individual customers.
• Exacta Export Publisher. The Exacta Export Publisher gathers transactions ready to send,
establishes connection, builds and sends a Web API transaction. The Exacta Export Publisher is
coded for the specific fields gathered and sent for the interfaces and it is those specific fields
described in this document.
The ‘configurable URL’ described in the export section of this document is an endpoint that will be hosted
by the host system.
The same data types described for the host system sending data to Exacta are used when returning data
to the host system.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
43
Exacta GTP – AutoStore - ISD
9
Exacta Export Publisher - Touchpoints
9.1
Putaway Confirm
Overview
End Recipient
Trigger Event
Communication
Notes
The Putaway Confirm transaction is used to notify the host
system that an order or order line (configurable) for a putaway has
been stocked into the AutoStore™
Host System
Export Level: Order When all lines on the order have been completed
Export Level: Line When an individual line for an order has been
completed
Web API, JSON formatted data
1. Regardless of how many locations the product was stored one transaction is returned, matching with the original
transaction received.
URL
https://<configurable url>/export/putconfirm
URL Parameters
None
Method
POST
9.1.1
Putaway Control
FIELD
TYPE
DESCRIPTION
order_name
string
Unique identifier for the order
operator_id
string
datetime_completed
string
Operator ID for the user that trigger the
adjustment
Time that the order was put complete
order_lines
array
List of all order lines tied to the order
order_line_details
array
See order line section for additional details
See order line details section for more
information
9.1.1
DEFAULT
Order Line
FIELD
TYPE
DESCRIPTION
line_num
int
prod_name
string
Line number associated with the line that was
stocked
Name of the product for the order line
quantity_requested
int
Quantity that was requested
quantity_actual
int
Quantity putaway for the order line
zone_num
string
Zone number the put was completed in
operator_id
string
datetime_completed
string
Operator ID for the user that triggered the
adjustment
Time that the order was putaway complete
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
DEFAULT
44
Exacta GTP – AutoStore - ISD
9.1.1
Order Line Details
FIELD
TYPE
DESCRIPTION
Detail_type
int
Detail type (configurable in database)
Detail_value
string
Detail Value
9.1.2
DEFAULT
Schema
{
"records": [
{
"order_name": [string],
"operator_id": [string],
"datetime_completed": [string],
"order_lines": [
{
"line_num": [int],
"prod_name": [string],
"quantity_requested": [int],
"quantity_actual": [int],
"zone_num": [string]
}
],
"order_line_detail": [
{
"detail_type": [int],
"detail_value": [string]
}
]
}
]
}
9.1.3
Example
{
"records": [
{
"order_name": "PutOrder1234",
"operator_id": "JD1234",
"datetime_completed": "11/22/2022 03:25:24 PM",
"order_lines": [
{
"line_num": 1,
"prod_name": "SKUSEF",
"quantity_requested": 4,
"quantity_actual": 4,
"zone_num": "12"
}
],
"order_line_detail": [
{
"detail_type": 1001,
"detail_value": "Example Detail Value"
}
]
}
]
}
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
45
Exacta GTP – AutoStore - ISD
9.1.4
Processing
Exacta Export Publisher finds a transaction ready to send to the host system and initiates the call. Once
sent and a successful response is received the transaction is marked as “exported” in Exacta’s staging
table. If a failure response is received the transaction is marked as “failed” and triggers an email alert
reporting the error, if configured. If needed the Interface Transaction Utility in Exacta Portal can be used
to retrigger the message.
9.1.5
Putaway Confirm Use Cases
The use cases below will be exercised in testing:
ITEM # USE CASE
1.
Transaction sent for a putaway
PRE-CONDITIONS
Putaway not complete
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Inventory is updated
46
Exacta GTP – AutoStore - ISD
9.2
Pick Confirm
Overview
End Recipient
Trigger Event
Communication
Notes
The Pick Confirm transaction is used to notify the host system
that an order or order line (configurable) for a pick has occurred
from the AutoStore™
Host System
Export Level: Order When all lines on the order have been shorted or
completed
Export Level: Line When an individual line for an order has been
shorted or completed
Web API, JSON formatted data
1. Pick export transactions are configurable in the Exacta System
configuration and can be set to export at the order level or line
level.
URL
https://<configurable url>/export/pickconfirm
URL Parameters
None
Method
POST
9.2.1
Pick Control
FIELD
TYPE
DESCRIPTION
order_name
string
Unique identifier for the order
operator_id
string
datetime_completed
string
Operator ID for the user that trigger the
adjustment
Time that the order was put complete
order_lines
Array
List of all order lines tied to the order
DEFAULT
See order line section for additional details
9.2.2
Order Line
FIELD
TYPE
DESCRIPTION
cntnr_name
String
cntrn_id
String
line_num
Int
prod_name
String
Container name(s) that the pick was
completed for line
Container ID(s) that the pick was completed
for line
Line number associated with the line that was
stocked
Name of the product for the order line
quantity_actual
Int
Quantity that was picked for the order line
quantity_requested
Int
Quantity that was requested
line_complete
Boolean
True/False indicator If the line was complete
order_line details
Array
workstation
String
operator_id
String
datetime_completed
string
See order line details section for additional
details
Workstation where the last pick for the order
line occurred
Login name for the user that triggered the
adjustment
Time that the order was pick complete
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
DEFAULT
47
Exacta GTP – AutoStore - ISD
9.2.3
Order Line Details
FIELD
TYPE
DESCRIPTION
detail_type
int
Detail type (configurable in database)
detail_value
string
Detail Value
9.2.4
DEFAULT
Schema
{
"records": [
{
"order_name": [string],
"operator_id": [string],
"datetime_completed": [string],
"order_lines": [
{
"cntnr_name": [string],
"cntnr_id ": [string],
"line_num": [int],
"prod_name": [string],
"quantity_actual": [int],
"quantity_requested": [int],
"line_complete": [boolean],
"order_line_detail": [
{
"detail_type": [int],
"detail_value": [string]
}
],
"Workstation": [string]
}
]
}
]
}
9.2.5
Example
{
"records": [
{
"order_name": "PickOrder1234",
"operator_id": "John Doe",
"datetime_completed": "11/22/2023 03:25:24 PM",
"order_lines": [
{
"cntnr_name": "CONTAINER123",
"cntnr_id": "123456",
"line_num": 1,
"prod_name": "SKUSEF",
"quantity_actual": 6,
"quantity_requested": 6,
"line_complete": true,
"order_line_detail": [
{
"detail_type": 1010,
"detail_value": "Example Detail Value"
}
],
"Workstation": "4"
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
48
Exacta GTP – AutoStore - ISD
}
]
}
]
}
9.2.6
Processing
Exacta Export Publisher finds a transaction ready to send to the host system and initiates the call. Once
sent and a successful response is received the transaction is marked as “exported” in Exacta’s staging
table. If a failure response is received the transaction is marked as “failed” and triggers an email alert
reporting the error, if configured. If needed the Interface Transaction Utility in Exacta Portal can be used
to retrigger the message.
9.2.7
Pick Confirm Use Cases
The use cases below will be exercised in testing:
ITEM # USE CASE
1.
Transaction sent for a pick
PRE-CONDITIONS
Pick not complete
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Pick order is updated
49
Exacta GTP – AutoStore - ISD
9.3
Cycle Count Confirm
Overview
The Cycle Count Confirm transaction is used to notify the host
system that a cycle count has been completed for an order
End Recipient
Trigger Event
Communication
Notes
URL
Host System
As the last count for the product is completed from the AutoStore™
Web API, JSON formatted data
Notes:
1. Regardless of how many locations that the product is stored in,
one export will be sent for the order, with multiple lines included
in the export payload
2. If inventory adjustments are made during a cycle count, a
corresponding inventory adjustment export will be triggered
3. This touchpoint is only to confirm that the cycle count was
completed, not the quantity that was confirmed by the count.
https://<configurable url>/export/cyclecountconfirm
URL Parameters
None
Method
POST
9.3.1
Cycle Count Control
FIELD
TYPE
DESCRIPTION
order_name
string
Unique identifier for the order
order_details
array
prod_name
string
See order details section for additional
details
Name of the product for the order
operator_id
string
completion_date
string
Login name for the user that completed the
count
Time that the order was counted
order_lines
array
List of all order lines tied to the order
DEFAULT
See order line section for additional details
9.3.2
Order Details
FIELD
TYPE
DESCRIPTION
detail_type
int
Detail Type (configurable in database)
detail_value
string
Detail value for the product
FIELD
TYPE
DESCRIPTION
operator_id
string
completion_date
string
Login name for the user that completed the
count
Time that the line counted
9.3.3
9.3.4
DEFAULT
Order Line
DEFAULT
Schema
{
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
50
Exacta GTP – AutoStore - ISD
"records": [
{
"order_name": [string],
"order_details": [
{
"detail_type": [int],
"detail_value": [string]
}
],
"prod_name": [string],
"operator_id": [string],
"completion_date": [string],
"order_lines": [
{
"operator_id": [string],
"completion_date": [string]
}
]
}
]
}
9.3.5
Example
{
"records": [
{
"order_name": "CCOrder1234",
"order_details": [
{
"detail_type": 1010,
"detail_value": "Sample Detail Value"
}
],
"prod_name": "SKUSEF",
"operator_id": "John Doe",
"completion_date": "11/22/2022 03:25:24 PM",
"order_lines": [
{
"operator_id": "John Doe",
"completion_date": "11/22/2022 03:25:24 PM"
}
]
}
]
}
9.3.6
Processing
Exacta Export Publisher finds a transaction ready to send to the host system and initiates the call. Once
sent and a successful response is received the transaction is marked as “exported” in Exacta’s staging
table. If a failure response is received the transaction is marked as “failed” and triggers an email alert
reporting the error, if configured. If needed the Interface Transaction Utility in Exacta Portal can be used
to retrigger the message.
9.3.7
Cycle Count Complete Use Cases
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
51
Exacta GTP – AutoStore - ISD
The use cases below will be exercised in testing:
ITEM # USE CASE
1.
Transaction sent for a cycle count line
PRE-CONDITIONS
Cycle Count order not
complete
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Cycle Count order is
completed
52
Exacta GTP – AutoStore - ISD
9.4
Inventory Adjustment
Overview
End Recipient
Trigger Event
Communication
Notes
URL
The inventory adjustment transaction is used to notify the host
system when inventory has been adjusted that is not directly tied
to a pick or putaway order
Host System
As the adjustment occurs for inventory at a location
Web API, JSON formatted data
https://<configurable url>/export/invadj
URL Parameters
None
Method
POST
9.4.1
Inventory Adjustment Control
FIELD
TYPE
DESCRIPTION
adjustment_order_name
string
oder_name
string
Unique identifier for the transaction (this is not the
pick order or putaway order that is sent from the
host system – it is a unique identifier created by
Exacta for the specific adjustment that occurred)
Order name sent to Exacta for Cycle Count
order_lines
array
List of all order lines tied to the order
DEFAULT
See order line section for additional details
9.4.2
Order Line
FIELD
TYPE
DESCRIPTION
transaction_type
int
prod_name
string
Process that initiated the adjustment:
1. Pick adjustment
2. Putaway adjustment
3. Cycle Count
4. Hot Pick
5. Hot Putaway
Name of the product that was adjusted
quantity
int
Quantity that was adjusted
reason_code
string
reason_code_description
string
operator_id
string
datetime_completed
string
Reason code is not filled for all adjustments. Only
populated for pick shortages or hot pick/hot
putaway transactions. Reason codes can also be
configured to not trigger an export if desired
Reason code description is not filled for all
adjustments. Only populated for pick shortages or
hot pick/hot putaway transactions. Reason codes
can also be configured to not trigger an export if
desired
Login name for the user that triggered the
adjustment
Time that the adjustment occurred
is_incremental_adjustme
nt
boolean
9.4.3
DEFAULT
True = Is Incremental
False = is not incremental
Schema
{
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
53
Exacta GTP – AutoStore - ISD
"records": [
{
"cntnr_name": [string],
"order_name": [string],
"sort_code": [string],
"destination": [string],
"scanner_num": [int],
"reason_code": [string],
"datetime_diverted": [string]
}
]
}
9.4.4
Example
{
"records": [
{
"cntnr_name": "CNTNR123",
"order_name": "ORDER123",
"sort_code": "UPS",
"destination": "4",
"scanner_num":
3,
"reason_code": "SUCCESS",
"datetime_diverted": "2020-09-18 13:08:26.000"
}
]
}
9.4.5
Processing
Exacta Export Publisher finds a transaction ready to send to the host system and initiates the call. Once
sent and a successful response is received the transaction is marked as “exported” in Exacta’s staging
table. If a failure response is received the transaction is marked as “failed” and triggers an email alert
reporting the error, if configured. If needed the Interface Transaction Utility in Exacta Portal can be used
to retrigger the message.
9.4.6
Inventory Adjustment Use Cases
The use cases below will be exercised in testing:
ITEM # USE CASE
1.
Transaction sent for an adjustment
PRE-CONDITIONS
Product exists
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Inventory is updated
54
Exacta GTP – AutoStore - ISD
9.5
Divert Confirm
Overview
The divert confirmation is used to notify the host system when a
container has been diverted to a zone or when a container is
diverted to a shipping lane
End Recipient
Trigger Event
Communication
Notes
Host System
As the divert confirmation is received from the conveyor control system
Web API, JSON formatted data
1. If the reason code field is populated with something other than
‘SUCCESS’, then the divert was missed. Exacta tried to divert
the container there, but due to a conveyor issue, the container
was not diverted.
URL
https://<configurable url>/export/divertconfirm
URL Parameters
None
Method
POST
9.5.1
Diver Confirm Control
FIELD
TYPE
DESCRIPTION
cntnr_name
string
order_name
string
sort_code
string
destination
string
This is the barcode that is canned by the
conveyor
Unique identifier for the order that is
associated with the container (if applicable)
Sort code for the order or container (if
applicable)
Lane or zone that the container is diverted to
reason_code
string
scanner_num
int
Reason code for the divert
Success
FAILED_TRANSFER
NO_DATA
BOX_TOO_LONG
GAP_TOO_SMALL
LANE_CLOSED
LANE_FULL
CONVEYOR_OFF
NO_AOR_DATA
Scanner that the divert confirmations is for
datetime_diverted
string
Time that the container was diverted
9.5.2
DEFAULT
Schema
{
"records": [
{
"cntnr_name": [string],
"order_name": [string],
"sort_code": [string],
"destination": [string],
"scanner_num": [int],
"reason_code": [string],
"datetime_diverted": [string]
}
]
}
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
55
Exacta GTP – AutoStore - ISD
9.5.3
Example
{
"records": [
{
"cntnr_name": "CNTNR123",
"order_name": "ORDER123",
"sort_code": "UPS",
"destination": "4",
"scanner_num":
3,
"reason_code": "SUCCESS",
"datetime_diverted": "2020-09-18 13:08:26.000"
}
]
}
9.5.4
Processing
Exacta Export Publisher finds a transaction ready to send to the host system and initiates the call. Once
sent and a successful response is received the transaction is marked as “exported” in Exacta’s staging
table. If a failure response is received the transaction is marked as “failed” and triggers an email alert
reporting the error, if configured. If needed the Interface Transaction Utility in Exacta Portal can be used
to retrigger the message.
9.5.5
Divert Confirm Adjustment Use Cases
The use cases below will be exercised in testing:
ITEM # USE CASE
1.
Transaction sent for a divert confirm
PRE-CONDITIONS
n/a
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Container is updated
56
Exacta GTP – AutoStore - ISD
9.6
Verification Scan
Overview
End Recipient
Trigger Event
Communication
Notes
URL
9.6.1
The verification scan export is used to notify the host system that
a container had the correct shipping label applied to the carton
after a print and apply scanner.
Host System
As the verification scan is received from the conveyor controls system
Web API, JSON formatted data
https://<configurable url>/export/verificationscan
URL Parameters
None
Method
POST
Verification Scan Control
FIELD
TYPE
DESCRIPTION
cntnr_name
string
order_name
string
scanner_num
int
This is the barcode that is canned by the
conveyor
Unique identifier for the order that is
associated with the container (if applicable)
Scanner that the verification scan occurred at
expected_barcodes
string
scanned_barcodes
string
check_result
boolean
datetime_verified
string
9.6.2
DEFAULT
Verification barcode received from host
system that is use to ensure that correct
shipping label was applied to the carton
Value that was scanned. Used to verify
against the verification barcode
True = (passed)
False = (did not match)
Time that the verification occurred
Schema
{
"records": [
{
"cntnr_name": [string],
"order_name": [string],
"scanner_num": [int],
"expected_barcodes": [string],
"scanned_barcodes ": [string],
"check_result": [boolean],
"datetime_verified": [string]
}
]
}
9.6.3
Example
{
"records": [
{
"cntnr_name": "CNTNR123",
"order_name": "ORDER123",
"scanner_num": 4,
"expected_barcodes": "TRACKINGNUMBERXYZ",
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
57
Exacta GTP – AutoStore - ISD
"scanned_barcodes": "TRACKINGNUMBERXYZ",
"check_result": true,
"datetime_verified": "2020-09-18 13:08:26.000"
}
]
}
9.6.4
Processing
Exacta Export Publisher finds a transaction ready to send to the host system and initiates the call. Once
sent and a successful response is received the transaction is marked as “exported” in Exacta’s staging
table. If a failure response is received the transaction is marked as “failed” and triggers an email alert
reporting the error, if configured. If needed the Interface Transaction Utility in Exacta Portal can be used
to retrigger the message.
9.6.5
Verification Scan Adjustment Use Cases
The use cases below will be exercised in testing:
ITEM # USE CASE
1.
Transaction sent for a verification
confirmation
PRE-CONDITIONS
n/a
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Container is updated
58
Exacta GTP – AutoStore - ISD
9.7
Weight Result
Overview
End Recipient
Trigger Event
Communication
Notes
URL
The Weight Result export is sent from Exacta to the host system
when a container has been weighed by a scale. Also includes
pass through values for dimensions if the system includes a
dimensioner as part of the scale
Host System
As the weight data is received from the conveyor controls system for
the container
Web API, JSON formatted data
https://<configurable url>/export/weightresult
URL Parameters
None
Method
POST
9.7.1
Weight Result Control
FIELD
TYPE
DESCRIPTION
cntnr_name
string
order_name
string
scanner_num
int
cntnr_wgt_min
string
Unique ID for the container. This is the
License Plate Number (LPN) that is read
throughout the system
Unique identifier for the order that is
associated with the container (if applicable)
Scanner that the verification scan occurred
at
Minimum weight for the container that was
sent from the host system.
cntnr_wgt_max
cntnr_wgt
cntnr_height
cntnr_depth
cntnr_width
string
string
string
string
string
DEFAULT
Note that the data type is a decimal value,
but will be sent as a string to the host system
consumer endpoint
Maximum weight for the container that was
sent from the host system.
Note that the data type is a decimal value,
but will be sent as a string to the host system
consumer endpoint
Weight for the container from the conveyor
control system
Note that the data type is a decimal value,
but will be sent as a string to the host system
consumer endpoint
Height of container determined by the
dimensioner (if applicable).
Note that the data type is a decimal value,
but will be sent as a string to the host system
consumer endpoint
Depth of container determined by the
dimensioner (if applicable).
Note that the data type is a decimal value,
but will be sent as a string to the host system
consumer endpoint
Width of container determined by the
dimensioner (if applicable).
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
59
Exacta GTP – AutoStore - ISD
check_result
boolean
datetime_weighed
string
9.7.2
Note that the data type is a decimal value,
but will be sent as a string to the host system
consumer endpoint
Will only perform a check if configured to do
so.
true = (passed)
false = (did not match)
Time that the weight result occurred
Schema
{
"records": [
{
"cntnr_name": [string],
"order_name": [string],
"scanner_num": [int],
"cntnr_wgt_min": [string],
"cntnr_wgt_max": [string],
"cntnr_wgt": [string],
"check_result": [boolean],
"cntnr_height": [string],
"cntnr_width": [string],
"cntnr_depth": [string],
"datetime_weighed": [string]
}
]
}
9.7.3
Example
{
"records": [
{
"cntnr_name": "CNTNR123",
"order_name": "ORDER123",
"scanner_num": 4,
"cntnr_wgt_min": "3.42",
"cntnr_wgt_max": "10.3",
"cntnr_wgt": "5.6",
"cntnr_height": "12.3",
"cntnr_width": "10.2",
"cntnr_depth": "15.2",
"check_result": true,
"datetime_weighed": "2020-09-18 13:08:26.000"
}
]
}
9.7.4
Processing
Exacta Export Publisher finds a transaction ready to send to the host system and initiates the call. Once
sent and a successful response is received the transaction is marked as “exported” in Exacta’s staging
table. If a failure response is received the transaction is marked as “failed” and triggers an email alert
reporting the error, if configured. If needed the Interface Transaction Utility in Exacta Portal can be used
to retrigger the message.
.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
60
Exacta GTP – AutoStore - ISD
9.7.5
Divert Confirm Adjustment Use Cases
The use cases below will be exercised in testing:
ITEM # USE CASE
1.
Transaction sent for a weight result
PRE-CONDITIONS
n/a
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
Container is updated
61
Exacta GTP – AutoStore - ISD
9.8
Inventory Reconciliation
Overview
Exacta will provide an inventory snapshot outlining the inventory
on-hand in the AutoStore™ equipment on a scheduled interval.
The output is summarized by product. One record for each
product with a quantity on-hand greater than zero.
End Recipient
Host System
Trigger Event
Configured to run at a scheduled time each day
Communication
Flat File output to a folder on the Exacta server. Can either be fixed
length (if product names are same length) or delimited with a pipe (|).
Default is delimited with a pipe.
1. This output should be scheduled for a time of day when no
activities are occurring in either Exacta or the host system
2. File is written to a shared folder on the Exacta server. The
host system will retrieve the file when needed. A dedicated
folder will be created for Inventory Reconciliation files.
3. File name is a date/time stamp with .TXT extension.
Notes
9.8.1
URL
N/A
URL Parameters
N/A
Method
N/A
File Path
Configurable in Exacta Export Adapter config
Inventory Reconciliation
FIELD
SIZE
TYPE
DESCRIPTION
Product Name
20
String
Product name being reported
Y
Available Unit Quantity
11
Int
Available quantity on_hand
Y
Record Terminator
1
string
‘CRLF’
Y
9.8.2
REQUIRED
DEFAULT
Processing
Exacta creates the file as the current date/time with a .TMP extension. When complete renames the file to
*.txt. The host system will retrieve the file and process.
EXAMPLE
772205014136|13
8023796146518|11
068921050924|11
068921092221|5
9.8.3
Inventory Reconciliation Use Cases
The use cases below will be exercised in testing:
ITEM # USE CASE
1.
Process is triggered at a specific time of
day
PRE-CONDITIONS
N/A
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
POST CONDITIONS
File is output with a
record for each
62
Exacta GTP – AutoStore - ISD
product with a
quantity on-hand
greater than 0
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
63
Exacta GTP – AutoStore - ISD
10 Exception Scenario Examples
10.1.1 Inbound
10.1.1.1 Container Quantity Short
Scenario
Container Quantity Short
Description
Host system sends a putaway order with a line where the physical quantity in the
container does not match the expected quantity.
In the below example, the host system sent the putaway order with 100 units in the
container. The operator only found 15 in the container, and thus adjusted the quantity to
15 during the putaway process.
Original
Import from
Host
{
}
Export from
Exacta
{
}
"records": [
{
"order_name": "PUT33",
"container_name": "putawaycontainer07",
"priority": 498,
"container_type": 5,
"due_date": "2022-09-18 13:08:26.000",
"order_lines": [
{
"line_num": 1,
"prod_name": "Shirt",
"quantity": 100
}
]
}
]
"records": [
{
"order_name": "PUT33",
"line_num": 1,
"prod_name": "Shirt",
"qty_requested": 100,
"qty_actual": 15,
"login_name": "ProgramDefault",
"datetime_completed": "2021-09-01T15:56:04"
}
]
10.1.1.2 Container Quantity High
Scenario
Container Quantity High
Description
Host system sends a putaway order with a line where the physical quantity in the
container does not match the expected quantity.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
64
Exacta GTP – AutoStore - ISD
In the below example, the host system sent the putaway order with 7 units in the
container. The operator found 10 in the container, and thus adjusted the quantity to 10
during the putaway process.
Original
Import from
Host
{
}
Export from
Exacta
{
}
"records": [
{
"order_name": "PUT22",
"container_name": "putawaycontainer06",
"priority": 498,
"container_type": 5,
"due_date": "2022-09-18 13:08:26.000",
"order_lines": [
{
"line_num": 1,
"prod_name": "Shorts",
"quantity": 7
}
]
}
]
"records": [
{
"order_name": "PUT22",
"line_num": 1,
"prod_name": "Shorts",
"qty_requested": 7,
"qty_actual": 10,
"login_name": "ProgramDefault",
"datetime_completed": "2021-09-01T16:00:25"
}
]
10.1.2 Outbound
10.1.2.1 Inventory Shortage (system shorted)
Scenario
Inventory Shortage (system shorted)
Description
Host system sends a pick order with a line that does not currently have inventory stocked
in the AutoStore™. Other lines are picked normally.
In the below example, the item ‘Shorts’ is not stocked in the AutoStore™
In this scenario, an inventory adjustment is exported for the inventory that was shorted.
The short pick is also reflected in the pick confirmation.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
65
Exacta GTP – AutoStore - ISD
Original
Import from
Host
{
}
Export from
Exacta
{
"records": [
{
"order_name": "Pick06",
"cancel_flag": "N",
"priority": 497,
"due_date": "2021-09-11 23:08:27.000",
"order_instruction": "Insert order instruction here",
"order_lines": [
{
"line_num": 1,
"prod_name": "Shirt",
"zone_num": "01",
"quantity": 4
},
{
"line_num": 2,
"prod_name": "WaterBottle",
"zone_num": "01",
"quantity": 2
},
{
"line_num": 3,
"prod_name": "Shorts",
"zone_num": "01",
"quantity": 3
}
]
}
]
"records": [
{
"order_name": "Pick06",
"line_num": 1,
"prod_name": "Shirt",
"cntnr_name": "TOTE-15",
"qty_requested": 4,
"qty_actual": 4,
"login_name": "ProgramDefault",
"datetime_completed": "2021-09-01T12:46:50",
"workstation": "2"
},
{
"order_name": "Pick06",
"line_num": 3,
"prod_name": "Shorts",
"cntnr_name": "",
"qty_requested": 3,
"qty_actual": 0,
"login_name": "ProgramDefault",
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
66
Exacta GTP – AutoStore - ISD
"datetime_completed": "2021-09-01T12:39:09",
"workstation": ""
},
{
}
}
"order_name": "Pick06",
"line_num": 2,
"prod_name": "WaterBottle",
"cntnr_name": "TOTE-15",
"qty_requested": 2,
"qty_actual": 2,
"login_name": "ProgramDefault",
"datetime_completed": "2021-09-01T12:47:52",
"workstation": "2"
]
10.1.2.2 Inventory Shortage (user adjustment)
Scenario
Inventory Shortage (user adjustment)
Description
Host system sends a pick order with a line that can systematically be fulfilled. When the
bin arrives to the user at the port, the physical quantity in the bin is less than what the
system thinks. The user performs a short pick adjustment, and there are no other bins to
assign the line to.
In the below example, the item ‘WaterBottle’ is improperly stocked in the AutoStore™
Original
Import from
Host
{
}
"records": [
{
"order_name": "Pick07",
"cancel_flag": "N",
"priority": 497,
"due_date": "2021-09-11 23:08:27.000",
"order_instruction": "Insert order instruction here",
"order_lines": [
{
"line_num": 1,
"prod_name": "Shirt",
"zone_num": "01",
"quantity": 4
},
{
"line_num": 2,
"prod_name": "WaterBottle",
"zone_num": "01",
"quantity": 2
}
]
}
]
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
67
Exacta GTP – AutoStore - ISD
Export from
Exacta
##Inventory Adjustment Message
{
"records": [
{
"order_name": "Pick07",
"adjust_type": "-",
"transaction_type": "1",
"prod_name": "WaterBottle",
"quantity": 30, #30 was in the inventory bin when user
shorted to 0
"reason_code": "14",
"login_name": "ProgramDefault",
"datetime_completed": "2021-09-01T13:24:27"
}
]
}
##Order Confirmation Message:
}
"records": [
{
"order_name": "Pick07",
"line_num": 2,
"prod_name": "WaterBottle",
"cntnr_name": "TOTE-17",
"qty_requested": 2,
"qty_actual": 0,
"login_name": "ProgramDefault",
"datetime_completed": "2021-09-01T13:24:14",
"workstation": "2"
},
{
"order_name": "Pick07",
"line_num": 1,
"prod_name": "Shirt",
"cntnr_name": "TOTE-17",
"qty_requested": 4,
"qty_actual": 4,
"login_name": "ProgramDefault",
"datetime_completed": "2021-09-01T13:24:33",
"workstation": "2"
}
]
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
68
Exacta GTP – AutoStore - ISD
11 System Assumptions
The following assumptions are specific to Exacta GTP – AutoStore. Changes to these assumptions may
impact delivery date, scope, or pricing for the system.
ID
Assumption
1.
No partial quantities are processed. The decimal and any numbers after that are trimmed and
discarded. For example, if a quantity of ’10.00’ is sent Exacta stores as ‘10’. For example, if a
spool of rope is stocked that may be cut it may be stocked as quantity 100 (100 feet). But if a
10-foot length of rope is stocked that will never be cut but is sold as-is it will be stocked as
quantity ‘1’.
2.
All alpha data (product ID, order number, etc.) will be in uppercase format. All alpha character
data will be imported, stored and exported back to the host as upper case. For example, the
host will send ‘ORDER1’, data is stored as such and returned as ‘ORDER1’
3.
Exacta will trim any leading spaces from all data fields sent by the host system and return the
data in that format for export.
4.
Each order will have a unique ID that is unique within the system (across all types).
5.
Product unit weight and dimensional data is sent in the same unit of measure the cartons are
configured in. Exacta doesn’t translate (kg to lbs., mm to cm, mm to inches).
6.
The host system views inventory at the macro level (knows total quantity in the equipment for
each product) and Exacta tracks at the micro level (knows product and quantity stored at each
storage location) for Exacta controlled zones.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
69
Exacta GTP – AutoStore - ISD
12 Frequently Asked Questions (FAQ)
The following assumptions are specific to Exacta GTP – AutoStore. Changes to these assumptions may
impact delivery date, scope, or pricing for the system.
1. Q: Do you use a standard authentication/authorization mechanism or is it proprietary
(custom)?
A: Proprietary
2. Q: What kind of authentication/authorization standards are supported by WES (Token Based
[Secure]: OpenID Connect, OAuth2, JWT, SAML2 / Session Based [Not secure]: Basic
Authentication, API Keys, Cookie, other)?
A: Proprietary token based
3. Q: What are the encryption standards used by the tokens (public-private key
pairs/signature)? Please include protocols/key lengths.
A: Tokens are not signed, instead they correspond to a specific user in the database,
which has configured rights used for authorization. They are unique GUIDs that only have
meaning to our User Authorization services.
4. Q: Can token expiration be configured?
A: Yes, and the token may be refreshed to extend the expiration.
5. Q: Does Exacta GTP support the implementation of TLS certificates? Does it support secure
encryption protocols and ciphersuites?
A: Encryption utilizes symmetric 256bit AES algorithms. Further encryption would need
custom development and IT effort.
6. Q: Does Exacta GTP support the configuration of HTTP security headers (hardening)?
A: Not at this time
7. Q: What kind of web server does the GTP Web API use for the interface? Is it embedded?
A: Web APIs are self-hosted ASP.NET Core services.
Exacta GTP – AutoStore - Interface Specification Document
Version 1.1, Effective 03/17/2023
70
Download