Download OpenAPI specification:Download
The CATAPULT Passport API Suite describes REST-like endpoints for adding, updating, or deleting data from a CATAPULT® system.
Authentication for all Passport API endpoints is granted by API Keys. API Keys are created in CATAPULT Web Office and assigned to individual employees in the API Keys section of their Employee Record.
Any Employee Record marked as Inactive, Locked, or terminated (Termination Date is populated) will not be able to use their associated API Key with any endpoint in Passport API suite; no action will be taken through the endpoints in these scenarios.
API Keys are not shared between stores in a multi-store system. This means an API Key created for a specific store, for a specific employee, can only be used when the employee performing the API request is doing so for the associated store. Because API Keys are not shared between stores, additional API Keys must be manually added on the desired Employee record(s) at the desired Remote Store(s). Doing so is optional, but necessary if you wish to grant the employee authentication to call select endpoints from the Remote Store Web Office uniform resource identifier (URI).
For security Best Practices, it is recommended to include the API Key value in the X-ECRS-APIKEY request header, instead of the query string, wherever possible.
X-ECRS-APIKEYX-ECRS-APIKEY request header whenever possible.It is recommended that all API calls be made to the Headquarters (HQ) location and filtered with available parameters. Authentication for API calls to non-HQ Web Office addresses are possible, however. This requires the creation of separate API Keys on employee records in the respective Web Office interface. For example:
The API Key visible in the HQ Web Office interface is used to authenticate HQ requests, while the API Key from the RS1 Web Office interface is used for RS1 requests.
CATAPULT Passport API endpoints support these content-types in a request's accept: header:
application/json
application/xml
text/csv
API response content-type is determined by agent-driven, or client-based, content negotiation.
accept: header, Passport API will default to using JSON.Best Practice
All Passport API endpoints support JSON requests. Therefore, it is a best practice to use JSON as the primary content-type for all Passport API interactions.
Content with a CSV content-type will be accepted by most endpoints, provided the incoming request adheres to the formatting critereia:
IMPORTANT: The request's accept: header must have a value of "text/csv".
,.' character placed after a row or column delimiter will start the next row or column as quoted.\ character.Unless otherwise noted, CSV requests are accepted by Passport API endpoints. A small number of endpoints do not support CSV requests. In these scenarios, Passport API relies on structured data - such as JSON or XML - to correctly parse the request. In these scenarios, JSON or XML requests must be used. Each endpoint's documentation will indicate if CSV is unsupported.
Certain data types allow for more leeway with accepted values, while others expect a strict input format. For consistency, unless where otherwise noted and when present in a query parameter, the data types listed here will accept:
true or false values or binary 0, 1 numeric values.YYYY-MM-DDThh:mm:ss or YYYY-MM-DD hh:mm:ss ISO8601/RFC3339 format.parameter="".12.50Performing requests or updates via the Passport Services API is not possible over Wide-Area-Network (WAN) connections without an active VPN. Requests are only accepted from the same environment where cardholder data is located. More specifically, requests are only accepted from non-routable RFC1918 private network addresses; communication is not possible with any cloud-based platforms or applications.
In order for a CATAPULT merchant - or their chosen third party - to perform requests through the Passport Services API, the CATAPULT store that contains the database where requests will be sent must have one of the following "Passport API" licenses enabled:
Passport API Read Only - This license allows authorized personnel to submit requests to endpoints that only support GET methods (e.g., Transaction Journal, Items, Dynamic Promotions, etc.). Endpoints that support a variety of methods - such as Customers and Profiles - cannot be sent requests with this license, even though they support one or more GET methods. In turn, this means that no updates to the merchant's CATAPULT database can be made via Passport Services API with this license. Please note, responses like "Passport APIs are not licensed for this server" and "The requested service is not valid" will be returned should a request be made to an ineligible endpoint.
Passport API Read & Write - This license allows authorized personnel to use all Passport Services API endpoints to the fullest by submitting GET requests and/or performing PUT, POST, or DEL updates.
Please note that unique licenses cannot be assigned to individual users of the Passport Services API for each store. Meaning, if User 1 and User 2 both needed to submit requests via the Passport Services API to a store, both users would have the same level of access (i.e., Read Only or Read/Write); User 1 could not have Read Only access while User 2 had Read/Write.
api.YYYY-MM-DD.logEndpoint:
batch/customerMaintenance(Batch Updates > POST Batch Customer Maintenance)
Endpoint:
batch/addresses(Batch Updates > POST Batch Addresses)
Endpoint:
batch/checkFile(Batch Updates > POST Batch Check File)
Endpoint:
/Customer(Customers > PUT Edit & Update)
Endpoint:
/prescriptionTransactionData(Pharmacy > GET Prescription Transaction Data)
Endpoint:
batch/FuelPrices(Batch Updates > POST Batch Fuel Prices)
Endpoint:
/storeGroupProfileDetail(Profiles > GET Store Group Details)
Endpoint:
/dynamicPromotionsDetail(Dynamic Promotions > GET Dynamic Promotion Details)
/dynamicPromotionsDetail endpoint has been improved to include these properties in the response if a merchant is running 5.8.167.21 or newer.Endpoint:
/batch/X(Batch Updates > All Endpoints)
Endpoint:
/itemDetail(Items > GET Detailed Search)
Endpoint:
/batch/itemStoreData(Batch Updates > POST Batch Item Store Data)
Endpoint:
/batch/customerMaintenance(Batch Updates > POST Batch Customer Maintenance)
Endpoint:
/batch/PriceCost(Batch Updates > POST Batch Price and Cost)
Endpoint:
/batch/PermanentPriceCost(Batch Updates > POST Batch Permanent Price and Cost)
Endpoint:
/storeGroupProfileDetail(Profiles > GET Store Group Details)
Endpoint:
/dynamicPromotionsDetail(Dynamic Promotions > GET Dynamic Promotion Details)
0 or 1.0: The Dynamic Promotion is NOT allowed to adjust the Price Level 1 price of items. 1: The Dynamic Promotion will adjust the Price Level 1 price of items.0 or 1.0: The Dynamic Promotion is NOT allowed to adjust the Price Level 2 price of items. 1: The Dynamic Promotion will adjust the Price Level 2 price of items.0 or 1.0: The Dynamic Promotion is NOT allowed to adjust the Price Level 3 price of items. 1: The Dynamic Promotion will adjust the Price Level 3 price of items.0 or 1.0: The Dynamic Promotion is NOT allowed to adjust the Price Level 4 price of items. 1: The Dynamic Promotion will adjust the Price Level 4 price of items.Endpoint:
/departmentDetail(Item Heirarchy > GET Department Detail)
Endpoint:
/supplierDetail(Suppliers > GET Supplier Detail)
Endpoint:
/TransactionJournal(Transaction Journal > GET View & Search)
Endpoint:
/labelDataExport(Items > GET Deli Item Data)
Endpoint:
/TransactionJournal(Transaction Journal > GET View & Search)
Endpoint:
/batch/PriceCost(Batch Updates > POST Batch Price and Cost)
Endpoint:
/batch/PermanentPriceCost(Batch Updates > POST Batch Permanent Price and Cost)
Endpoint:
/batch/itemMaintenance(Batch Updates > POST Batch Item Maintenance)
Fixed the behavior of the endpoint so that all levels of Item Hierarchy are updated correctly when certain values are passed. For more information, click here.
Fixed the behavior of the discountList field so that if an empty string or DEFAULT is included with the field, an item's existing Manual Discounts will not be removed. This field's documentation reflects the correct behavior with CATAPULT 5.8.166 and newer.
Endpoint:
/batch/PriceCost(Batch Updates > POST Batch Price and Cost)
Added the appendExistingWorksheets query parameter to the endpoint, which determines if Passport API adds data included in the request to a new worksheet or an existing worksheet (if one exists).
Added the autoCommit query parameter to the endpoint, which determines if Passport API automatically commits any worksheet created within the batch or not.
Endpoint:
/batch/PermanentPriceCost(Batch Updates > POST Batch Permanent Price and Cost)
Added the appendExistingWorksheets query parameter to the endpoint, which determines if Passport API adds data included in the request to a new worksheet or an existing worksheet (if one exists).
Added the autoCommit query parameter to the endpoint, which determines if Passport API automatically commits any worksheet created within the batch or not.
Endpoint:
/giftCardUpdate(Gift Cards > PUT Update Gift Cards in Bulk)
/giftCardUpdate endpoint to allow for the dollar amount of existing CATAPULT gift cards to be updated via an adjustment amount or set to a specific value.Endpoint:
/summaryItemData(Summary Item Data > GET Summary Item Data)
0 or 1. 0: The record is NOT omitted from sales.1: The record is omitted from sales.General
Endpoint:
/Customer(Customers > PUT Edit & Update)
Endpoint:
/batch/PermanentPriceCost(Batch Updates > POST Batch Permanent Price and Cost)
Endpoint:
/batch/PriceCost(Batch Updates > POST Batch Price and Cost)
Endpoint:
/batch/removePriceCost(Batch Updates > POST Batch Remove Temporary Price Change)
Endpoint:
/batch/itemMaintenance(Batch Updates > POST Batch Item Maintenance)
Endpoint:
/batch/X(Batch Updates > All POST Type Batch Update Endpoints)
Endpoint:
/inventoryAdjustmentDetail(Inventory Adjustments > GET Inventory Adjustments)
Added the following fields to the endpoint's response to allow for easier and clearer identification of the associated data:
Endpoint:
/batch/itemOrderingInformation(Batch Updates > POST Batch Item Ordering Information)
Endpoint:
/giftCardBulk(Gift Cards > POST Create Gift Cards in Bulk)
Endpoint:
/Customer(Customers > PUT Edit & Update)
Endpoint:
/TransactionJournal(Transaction Journal > GET View & Search)
Endpoint:
/batch/itemOrderingInformation(Batch Updates > POST Batch Item Ordering Information)
Endpoint:
/batch/storePromotions(Batch Updates > POST Batch Store Promotions)
Endpoint:
/batch/itemPromotions(Batch Updates > POST Batch Item Promotions)
Endpoint:
/itemDetail(Items > GET Detailed Search)
Endpoint:
/allItems(Items > GET View All)
Endpoint:
/batch/shelfInformation(Batch Updates > POST Batch Item Shelf Information)
Endpoint:
/purchaseOrderItems(Purchase Orders > PUT Purchase Order Items)
Endpoint:
/Customers(Customers > PUT Edit & Update)
The Batch Update endpoints are the recommended method for secure manipulation of data outside of the Web Office interface. Each Batch Update endpoint is used for bulk additions and modifications to a specific dataset or task, such as inventory and suppliers or worksheet processing and promotion configuration.
The Batch Update endpoints are commonly used for synchronizing data from Legacy systems during migration or the automation of certain tasks. Each endpoint is limited to POST requests unless where noted otherwise in the operation description.
The Batch Update endpoints are extensions of the Staging Tables procedures, and as such are only used when the Staging Tables module is present on a database.
When using any of the Batch Update endpoints, the order of the data records included in each request does not determine the order in which the API will process the data and make the corresponding updates.
Perform all batch updates (i.e., use of the endpoints) be made at the Headquarters location. Doing so will leverage CATAPULT's data synchronization model and correctly update corresponding data records at applicable remote stores.
Avoid sending multiple rows in a single batch referencing the same item, as this can cause slow performance in batch processing.
When any of the Batch Update endpoints are used, only fields with updated values should be included in the request. If fields need to be preserved/unchanged, then those fields should NOT be included in the request. If a field is included in the request with an empty value, the API will use that empty value and create a corresponding empty record.
When any of the Batch Update endpoints are used, the associated data is temporarily stored in a table within the CATAPULT database at the store (where the endpoint was used). After the data is processed for any of the endpoints, the table will be automatically cleared/purged to prevent bloat. This self-cleaning behavior cannot be changed or modified, and no action is required for it to occur.
With CATAPULT 5.7.142 and newer, if the Staging Tables are used outside of the Batch Update endpoints, please note that the database tables associated with each endpoint - except for batch_ImportMessages - will be cleared upon database restart.
/batch/importMessages endpoint.| Endpoint HTTP Method | Endpoint |
|---|---|
| POST | /batch/addresses |
This endpoint allows you to add, update, or delete physical addresses (as points of contact or reference) to Customer, Employee, Store, and Supplier records that already exist in a CATAPULT system.
In CATAPULT, there can be different types of physical addresses. These are called Address Descriptions.
If Passport API processes a batch with a new Address Description, the Address Description will be created, assigned to the entered physical address, and made available in CATAPULT for reuse.
The following parts of a physical address can be updated on a prexisting Customer, Employee, Store, or Supplier record in a CATAPULT system:
When updating a physical address on prexisting Customer, Employee, Store, or Supplier records, the Address Description must be specified. When updating an address, the Address Description entered with the endpoint request must match an Address Description in the CATAPULT system. If it does not match, a new Address Description will be created.
Beginning with CATAPULT 5.6.112+, this endpoint will only update addresses for records where CATAPULT detects there is a change (or a new address is being added). This prevents records from being unnecessarily updated with the same data each time the endpoint is used.
This endpoint does not allow you to add or populate the Latitude or Longitude coordinates that correlate to a record's physical address. Those values are automatically populated when the address is entered or updated.
This endpoint does not allow you to update or remove address identifiers on any record. Instead, these must be managed for the address on the applicable record in CATAPULT Web Office. Address identifiers are unique to each record (e.g., Customer, Employee, Store, or Supplier), and are used by CATAPULT to help determine what address to use or populate in specific scenarios. The following identifiers are present on addresses in CATAPULT:
This endpoint does not allow you to add, update, or delete email addresses on records; the Batch Email Addresses endpoint - /batch/emailAddresses - is used for that purpose.
When adding a new physical address to a record, if an existing Address Description is being used for the address, ensure the exact name of the Address Description - as entered in CATAPULT Web Office - is used/entered with the address. Otherwise, a new Address Description will be created, which will cause confusion and mislabeled addresses.
When updating a record's physical address, ensure the name of the Address Description used/entered exactly matches the name of the desired Address Description, as entered in CATAPULT Web Office. If the name of the Address Description entered in the request does not match an existing Address Description in CATAPULT, a new one will be created, which will cause confusion and mislabeled addresses.
Change a customer's "Home" address because they moved to a different house
Customer's New Address
Endpoint Properties Used to Meet Use Case
| Endpoint Property | Value of Property |
|---|---|
| action | U - To update the address |
| category | C - To specify that a Customer Address is being updated |
| entityId | The Customer ID of the customer, as found on their Customer Record in CATAPULT Web Office |
| description | Home |
| streetaddressline1 | 277 Howard Street |
| city | Boone |
| stateProvince | NC |
| country | US |
| postalCode | 28607 |
Add a "Home" address to a record of a new employee
Employee's Home address
Endpoint Properties Used to Meet Use Case
| Endpoint Property | Value of Property |
|---|---|
| action | U - To insert the address |
| category | E - To specify that an Employee Address is being added |
| entityId | The Employee ID of the employee, as found on their Employee Record in CATAPULT Web Office |
| description | Home |
| streetaddressline1 | 150 Market Hills Drive |
| city | Boone |
| stateProvince | NC |
| country | US |
| postalCode | 28607 |
Delete a "Business" address from a Store record in CATAPULT because the store closed and will not be reopened
Store Address to be Removed
Endpoint Properties Used to Meet Use Case
| Endpoint Property | Value of Property |
|---|---|
| action | R - To remove the address |
| category | S - To specify that a Store Address is being removed |
| entityId | The Store ID of the store, as found on the associated Store Record in CATAPULT Web Office |
| description | Business |
| streetaddressline1 | 18551 Ilene Islands Rd |
| streetaddressline2 | Suite 299 |
| city | New Sunny |
| stateProvince | WY |
| country | US |
| postalCode | 92907 |
Add a new "Warehouse" address to a Supplier record
New Address of Supplier's Warehouse
Endpoint Properties Used to Meet Use Case
| Endpoint Property | Value of Property |
|---|---|
| action | U - To insert the address |
| category | V - To specify that an Supplier (i.e., Vendor) Address is being added |
| entityId | The Supplier ID of the supplier, as found on the Supplier Record in CATAPULT Web Office |
| description | Warehouse |
| streetaddressline1 | 41675 McGlynn Roads |
| city | Tyreechester |
| stateProvince | WV |
| country | US |
| postalCode | 35718 |
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Addresses to be updated.
| action required | string Enum: "U" "R" This property allows you to control what action the
|
| category required | string Enum: "C" "E" "S" "V" This property allows you to choose what type of record will have an address added, updated, or removed. This property supports the following options:
Passport API will use this property and the entityId property to determine the specific record where an address will be added, updated, or removed. |
| entityId required | string <= 30 characters This property is where you enter the ID of the desired record for a Customer, Employee, Store, or Supplier. Passport API will use this property and the category property to determine the specific record where an address will be added, updated, or removed. EXAMPLE: If Customer ID 4133696682008 needed to have their Home address updated, the entityId in the batch update request would be "4133696682008" and the associated category would be "C". |
| description required | string <= 30 characters Purpose of Property
Using this Property
|
| streetaddressline1 | string <= 50 characters This property is where you enter the first line of the record's address (e.g., 277 Howard Street). |
| streetaddressline2 | string <= 50 characters This property is where you enter the second line of the record's address (e.g., Suite 299). |
| city | string <= 20 characters This property is where you enter the city of the record's address (e.g., Boone). |
| stateProvince | string <= 2 characters Purpose of Property
State/Province Two-Character Abbreviations
|
| country | string <= 2 characters Purpose of Property
Country Two-Character Abbreviations
|
| postalCode | string <= 15 characters This property is where you enter the postal or ZIP code of the record's address (e.g., 28607). |
[- {
- "action": "U",
- "category": "C",
- "entityId": "4133696682008",
- "description": "Home",
- "streetaddressline1": "277 Howard Street",
- "streetaddressline2": "Suite 299",
- "city": "Boone",
- "stateProvince": "NC",
- "country": "US",
- "postalCode": "28607"
}
]The BIN Lookup Overrides endpoint is one of two endpoints built to assist with offline transactions, in this case offline transactions tendered by card (credit or debit). BIN records are imported via request content then distributed to applicable POS terminals to enable automatic acceptance/rejection of tendered cards if transaction server (TS) goes offline and the the tendered card is referenced in the BIN Lookup. The process is enabled at the terminal-level and above by Advanced Setting in WebOffice:
KEY = com.ecrsoft.tserver.control.useImportedBinOverride
VALUE = true
This has been effectively replaced by the Secure Store & Forward (SaF) process, however the endpoint is still maintained as a secure and viable option. Note the BIN Lookup table is rebuilt in the database with every post of the endpoint procedure (data submitted in a request will overwrite/replace any existing list of BIN Lookup records), so individual entries can't be inserted or sequentally added to an existing list.
See also: Secure Store & Forward.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of BIN Lookup Overrides to update.
| min required | string <= 20 characters Minimum BIN for range. Note any records within the min and max range are subject to normal type restrictions. |
| max | string <= 20 characters Maximum BIN for range. Defaults to MIN value if not set. |
| type | integer Enum: 0 1 2 0 - Not Allowed in SaF processing. |
[- {
- "min": "string",
- "max": "string",
- "type": 0
}
]The Catalog Cost (Item) endpoint is used to post supplier catalog cost updates to your inventory. It is one of two endpoints available for this task: here the Item ID (UPC scancode) is used to refine the operational scope and direct which inventory maintenance records receive the cost modifications. Each row in this batch operation represents one such inventory record to update.
It's recommended to use a unique batch number for each store and/or supplier: in this way you more easily reference importMessages for those store- or supplier-specific changes using the unique batch number.
See also: Importing Supplier Catalogs, View & Modify Catalog Cost.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of item catalog costs to be updated.
| itemId required | string <= 14 characters The Item ID (UPC scancode) of the recipient inventory record. See also: Item ID. |
| storeId required | string <= 10 characters Store Number where the item is located and where the cost will update. See also: Store ID. |
| supplierId required | string The unique supplier identification code to verify recipient catalog. See also: Supplier ID. |
| catalogCost required | string <decimal(16,4)> See also: Catalog Cost. |
[- {
- "itemId": "774200055",
- "storeId": "HQ",
- "supplierId": "59913",
- "catalogCost": "4.77"
}
]The Catalog Cost (SUID) endpoint is used to post supplier catalog cost updates to your inventory. It is one of two endpoints available for this task: here the Supplier Unit ID (SUID) is used to refine the operational scope and direct which inventory maintenance records receive the cost modifications. Each row in this batch operation represents one such inventory record to update.
It's recommended to use a unique batch number for each store and/or supplier: in this way you can more easily reference importMessages for those store- or supplier-specific changes with the unique batch number.
See also: Importing Supplier Catalogs, View & Modify Catalog Cost.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of item catalog costs to be updated.
| importType required | string <= 1 characters Enum: "P" "T" P - Permanent |
| storeId required | string <= 10 characters Specify the store where the catalog cost change will take effect. See also: Store ID. |
| supplierId required | string The unique supplier identification code to verify recipient SUID and catalog. See also: Supplier ID. |
| supplierUnitId required | string Supplier-specific item code to verify which inventory record receives the cost change. See also: Supplier Unit ID. |
| catalogCost | string <decimal(16,4)> See also: Catalog Cost. |
| allowance | string <decimal(16,4)> |
| stacked | string <= 1 characters Enum: "A" "R" A - Additive |
| startDate | string <date> Format yyyy-mm-dd. |
| endDate | string <date> Format yyyy-mm-dd. |
[- {
- "importType": "P",
- "storeId": "HQ",
- "supplierId": "59913",
- "supplierUnitId": "5991377055",
- "catalogCost": "4.77",
- "allowance": "string",
- "stacked": "A",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
]| Endpoint HTTP Method | Endpoint |
|---|---|
| POST | /batch/customerMaintenance |
This endpoint allows you to add or update Customer Records in bulk, or one at a time, in a CATAPULT system.
This endpoint does not allow you to delete/remove Customer Records; only add or update them.
What are Customer Records?
In CATAPULT, Customer Records are tied to customers who shop in a store and/or online. Each Customer Record contains information, settings, and preferences that are unique to each customer, and these records are a critical component in tracking shopping history, marketing, and more.
When adding or updating a Customer Record, the following fields are available to populate or update:
This endpoint only supports JSON requests; XML and CSV are unsupported. Only JSON is supported because the dependentList property relies on ASCII Record and Group Separator characters to differentiate dependents and their associated data. Passport API cannot read or parse these ASCII characters correctly with XML or CSV.
When adding or updating Customer Records, this endpoint only allows you to manage general information on each record (e.g., Customer ID, Names, Birthday, etc.). It does not allow or facilitate more precise updates for the customer's physical address, email address, or phone number. The following Passport API batch endpoints will help facilitate those updates, respectively.
batch_addressesbatch_emailAddressbatch_phoneNumbers| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Customers to Update
| action required | string Value: "U"
| ||||||||||||||||||||||||
| customerId required | string <= 16 characters Purpose of Property
Using this Property
| ||||||||||||||||||||||||
| newCustomerId | string <= 16 characters Available in CATAPULT 5.8.170+ IMPORTANT
Purpose
Potential Use Cases of Property
Property Behavior for Existing Customers
Property Behavior for New Customers
Best Practices
"RAISERROR" Scenarios The following scenarios will return a
| ||||||||||||||||||||||||
| prefix | string <= 30 characters
| ||||||||||||||||||||||||
| firstName | string <= 25 characters
| ||||||||||||||||||||||||
| middleName | string <= 25 characters
| ||||||||||||||||||||||||
| lastName | string <= 25 characters
| ||||||||||||||||||||||||
| suffix | string <= 30 characters
| ||||||||||||||||||||||||
| alias | string <= 25 characters
| ||||||||||||||||||||||||
| pf1 | string <= 30 characters
| ||||||||||||||||||||||||
| pf2 | string <= 30 characters
| ||||||||||||||||||||||||
| pf3 | string <= 30 characters
| ||||||||||||||||||||||||
| pf4 | string <= 30 characters
| ||||||||||||||||||||||||
| pf5 | string <= 30 characters
| ||||||||||||||||||||||||
| pf6 | string <= 30 characters
| ||||||||||||||||||||||||
| pf7 | string <= 30 characters
| ||||||||||||||||||||||||
| pf8 | string <= 30 characters
| ||||||||||||||||||||||||
| title | string <= 25 characters
| ||||||||||||||||||||||||
| company | string <= 50 characters
| ||||||||||||||||||||||||
| memo | string <= 254 characters
| ||||||||||||||||||||||||
| birthDate | string <date> <= 30 characters
| ||||||||||||||||||||||||
| priceLevel | string Enum: 1 2 3 4
| ||||||||||||||||||||||||
| returnLimits | string Context
Purpose
Property Behavior
| ||||||||||||||||||||||||
| optOutReceipt | boolean Use this property to set or update the customer's "Opt Out Printed Receipt" preference.
If this property is included in the request, but no value is entered, the customer will NOT be opted out of printed receipts (i.e., default behavior). | ||||||||||||||||||||||||
| blockSuspendedSales | boolean Use this property to set or update the customer's "Block Suspended Sales" setting.
If this property is included in the request, but no value is entered, the customer will NOT be blocked from suspending transactions (i.e., default behavior). | ||||||||||||||||||||||||
| hideInLookup | boolean Use this property to set or update the customer's "Hide from Customer Lookup" setting.
If this property is included in the request, but no value is entered, the customer will NOT be hidden in customer lookup (i.e., default behavior). | ||||||||||||||||||||||||
| inactive | boolean Use this property to set or update the customer's "Inactive" status. If set to If set to
If this property is included in the request, but no value is entered, the customer will NOT be "Inactive" (i.e., default behavior). | ||||||||||||||||||||||||
| loyalty | boolean Use this property to set or update whether or not the customer earns loyalty points.
If this property is included in the request, but no value is entered, the customer will be opted out of earning loyalty points (i.e., default behavior). | ||||||||||||||||||||||||
| loyaltyAccrualMultiplier | number <numeric(4,3)>
| ||||||||||||||||||||||||
| taxExempt | boolean Purpose Use this property to set or update a customer's tax exempt status for ALL taxes.
Conditional Property Behavior
| ||||||||||||||||||||||||
| taxExemptState | string Context
Purpose
Example
Requirements to Use this Property
Conditional Property Behavior
| ||||||||||||||||||||||||
| storeCouponList | string <long varchar> Purpose
Restrictions
Property Behavior
| ||||||||||||||||||||||||
| householdMainCustomerId | string <= 16 characters
| ||||||||||||||||||||||||
| householdRelation | string <= 30 characters Purpose Use this property to set or update the customer's relationship to the specified Head of Household. This property depends on the Head of Household specified with the householdMainCustomerId property.
Property Behavior
| ||||||||||||||||||||||||
| householdCanRedeem | boolean Purpose Use this property to allow or prevent the customer from redeeming loyalty points earned by their household. This property depends on the Head of Household specified with the householdMainCustomerId property. Property Behavior
| ||||||||||||||||||||||||
| dependentList | string <long varchar> Purpose
Dependent Details In CATAPULT, each dependent has the following indentification details:
When specifying a dependent for a customer, both the Name and the Type are required; the dependent's Birth Date is optional. Property Formatting Requirements
Conditional Property Behavior
|
[- {
- "action": "U",
- "customerId": "4845153524",
- "newCustomerId": "4845154582",
- "prefix": "Mrs.",
- "firstName": "Jane",
- "middleName": "Doe",
- "lastName": "Smith",
- "suffix": "III",
- "alias": "Janey",
- "pf1": "string",
- "pf2": "string",
- "pf3": "string",
- "pf4": "string",
- "pf5": "string",
- "pf6": "string",
- "pf7": "string",
- "pf8": "string",
- "title": "Nurse",
- "company": "ECRS",
- "memo": "string",
- "birthDate": "01/01/1970",
- "priceLevel": 1,
- "returnLimits": "Return Limit $100/day",
- "optOutReceipt": false,
- "blockSuspendedSales": false,
- "hideInLookup": false,
- "inactive": false,
- "loyalty": true,
- "loyaltyAccrualMultiplier": 1,
- "taxExempt": false,
- "taxExemptState": "NC",
- "storeCouponList": "BOGO Free:Happy Birthday:10% Off",
- "householdMainCustomerId": "4845135385",
- "householdRelation": "Brother",
- "householdCanRedeem": true,
- "dependentList": "Spouse\\u001eCameron\\u001e1991-06-10\\u001dPet\\u001eFido\\u001e2015-10-14"
}
]The Email Addresses endpoint allows you to manage the email addresses associated with select records in the CATAPULT system. Specifically:
This endpoint creates new email addresses on a supported record and will create new Email Descriptions ('labels', i.e. Home Email, Work Email, Vendor Support Email, etc.) where they do not already exist. When entered in a row of the request body,the category corresponds to the type of maintenance record ultimately called by the entityId in the same row.
EXAMPLE - A request is posted to update entityId '7101' in Category 'S' with a new email. This instructs the Email Address procedure that a Store record (i.e., Category 'S') where storeId = entityId is to receive the new email.
Beginning with CATAPULT 5.6.112+, this endpoint will only update email addresses for records where the system detects there is a change (or a new email address is being added). This prevents records from being unnecessarily updated with the same data each time the endpoint is used.
See also: Email Descriptions (Profiles).
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Phone Numbers to Update
| action required | string Enum: "U" "R" Type of Action to be Performed:
|
| category required | string Enum: "C" "E" "S" "V" Category of the address:
|
| entityId required | string <= 30 characters Exact value of the entityId depends entirely on, and must correspond to, the selected category: it can conditionally be the customerId, employeeId, storeId, or supplierId. |
| description required | string <= 30 characters Enter the name of the Email Description to use. See also: E-mail Description. |
| address required | string <= 254 characters See also: E-mail Address. |
| marketingOptIn | boolean Declares if this e-mail address, and subject of the associated maintenance record by extension, has agreed to receive marketing messages. Defaults to 0 (disabled) if left empty or not otherwise specified. See also: Marketing Opt-In. |
[- {
- "action": "U",
- "category": "C",
- "entityId": "string",
- "description": "string",
- "address": "string",
- "marketingOptIn": true
}
]Endpoint = /batch/FuelPrices
This endpoint can be used to update the "Cash" and/or "Credit" prices of desired fuel products at a specified store. Note that the fuel products must already exist in the CATAPULT database.
If a third-party service is used to determine and set fuel pricing at stores, this endpoint can be used by the third-party to update fuel pricing as needed.
This endpoint does not allow you to create new Fuel Products, only update the "Cash" or "Credit" price of existing Fuel Products. To create and/or manage Fuel Products, use the CATAPULT Fuel™ section of the new look and feel of CATAPULT Web Office.
This endpoint does not allow you to update the "Cash" or "Credit" price of Fuel Products for all stores in a single batch. With each batch pricing update, a single store must be specified.
This endpoint does not allow you to update any other quality about a fuel product (e.g., Fuel Number, Blend Ratio, Name, etc.).
Employee Performing the Batch Update Must be Authorized - The user performing the /batch/FuelPrices update must have an employee record in CATAPULT Web Office, and their assigned Authorization Security profile must have the Edit Fuel Products & Pricing checkpoint enabled.
The Fuel Product Number(s) Must be Known - Prior to updating the "Cash" and/or "Card" prices of fuel products, the Fuel Number (i.e., the Fuel Product Number) of each desired product - at each desired store - must be known. If the fuel product's respective number is not known, the associated pricing cannot be updated.
The Correct Version of CATAPULT is Required - In order for the batch updates initated and performed with this endpoint to take effect, the merchant must be running CATAPULT 5.8.167.23+ or 5.8.172+ in their store (where the batch update is being made).
/batch/importMessages endpoint.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
| fuelProductNumber required | integer Purpose
Scenario-Based Property Behavior
| ||||||||||
| storeId required | string <= 4 characters Purpose
Scenario-Based Property Behavior
| ||||||||||
| cashPrice | number <= 99.999 Purpose
Using This Property To Update A Fuel Product's Cash Price
Scenario-Based Property Behavior
| ||||||||||
| creditPrice | number <= 99.999 Purpose
Using This Property To Update A Fuel Product's Credit Price
Scenario-Based Property Behavior
|
[- {
- "fuelProductNumber": 1,
- "storeId": "828",
- "cashPrice": 3.47,
- "creditPrice": 3.52
}
]The Import Messages endpoint is provided to for logging purposes. Every individual action taken by a batch loading operation, down to the particular line item event, is recorded here (one action/event per row). Use it to retrieve the message log for any previously executed 'batch' operation. Response metrics include, but are not limited to, the date (message_time), type (information or error), and message content (message_text). Batch number (batchId) is required for the request parameters.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
| messageTime | string <datetime> The time at which the message was generated. |
| batchType | string The type of batch for which this message was generated. |
| messageType | string Enum: "I" "E" "W" The type of message
|
| messageText | string The textual message associated with the import batch. |
| detail | string Available with CATAPULT 5.7.143 and newer, if a failure condition is encountered, this field provides details on why the record(s) failed. |
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/batch/importMessages?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&batch=123'
[- {
- "messageTime": "2022-02-04 19:50:36.852",
- "batchType": "batch_ItemMaintenance",
- "messageType": "I",
- "messageText": "Processing ItemMaintenance with 1 records"
}, - {
- "messageTime": "2022-02-04 19:50:36.955",
- "batchType": "batch_ItemMaintenance",
- "messageType": "I",
- "messageText": "Processed ItemMaintenance 1 records | FAILED 0 records"
}, - {
- "messageTime": "2022-02-04 19:50:37.012",
- "batchType": "batch_ItemMaintenance",
- "messageType": "I",
- "messageText": "Processed ItemMaintenance 1 records"
}, - {
- "messageTime": "2022-02-04 19:50:37.014",
- "batchType": "batch_ItemMaintenance",
- "messageType": "E",
- "messageText": "RAISERROR executed: Invalid Item Hierarchy\n",
- "detail": "Action:U Item Id: 8303 Dept Number: 400 Dept Name: NULL Name: NULL Receipt Alias: NULL Brand: NULL Size: NULL Prompt List:NULL Discount List:NULL Suggested Retail: NULL Link Item Group:NULL Pf1: NULL Pf2: NULL Pf3: NULL Pf4: NULL Pf5: NULL Pf6: NULL Pf7: NULL Pf8: NULL Memo: NULL Non-Returnable: NULL Embedded Price As Unit: NULL Country of Origin: NULL SubDepartment Number: 526 Category Number: NULL SubCategory Number: NULL Variety Number: NULL"
}, - {
- "messageTime": "2022-02-04 19:50:37.018",
- "batchType": "batch_ItemMaintenance",
- "messageType": "I",
- "messageText": "Processed ItemMaintenance 1 records | FAILED 1 records"
}
]inventoryLabel endpoint allows for the creation and posting of Inventory Label Worksheets.See also: Inventory Label (IL) Worksheet, Label Catalog.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Inventory Labels to Update
| name required | string <= 40 characters See also: Worksheet Name (IL). |
| storeNumber required | string <= 10 characters See also: Store ID. |
| itemId required | string <= 14 characters See also: Add Items (IL). |
| itemTagQuantity | string <= 3 characters See also: Type (IL). |
| shelfLabelQuantity | string <= 1 characters See also: Type (IL). |
| signsQuantity | string <= 1 characters See also: Type (IL). |
[- {
- "name": "string",
- "storeNumber": "string",
- "itemId": "string",
- "itemTagQuantity": "str",
- "shelfLabelQuantity": "s",
- "signsQuantity": "s"
}
]The Item Alternate ID endpoint provides you with a means to post bulk updates for managing the Alternate IDs associated with targeted inventory records. As a single inventory record can have multiple Alternate IDs, the base Item ID is required for each line item of the request body (one line item, or row, for each Alternate ID). The same base Item ID can be used as many times as needed to affect all necessary Alternate IDs on its respective maintenance record.
See also: Inventory Alternate IDs.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Item Alternate Ids
| action required | string Enum: "U" "R" Type of Action to be Performed:
|
| itemId required | string <= 14 characters See also: Item ID. |
| alternateId required | string <= 14 characters See also: Alternate ID Scancode. |
| alternateIdReceiptAlias | string <= 32 characters See also: Alternate ID Receipt Alias. |
| alternateIdQty required | string <decimal(12,3)> See also: Alternate ID Quantity. |
[- {
- "action": "U",
- "itemId": "string",
- "alternateId": "string",
- "alternateIdReceiptAlias": "string",
- "alternateIdQty": "string"
}
]The Conventional Item Groups endpoint enables you to post changes to existing Item Groups and/or to create new ones. An Item Group includes all inventory records that contain the same itemGroupName. Note this process will replace rather than update, so if an existing itemGroupName is presently defined in the database it, along with any itemIds which are listed in that group, will be replaced by the value(s) supplied in the request.
See also: Item Group Profiles.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Conventional Item Groups to Update
| itemGroupName required | string <= 30 characters See also: Item Groups, Linked Items. |
| itemId required | string <= 14 characters See also: Item ID. |
[- {
- "itemGroupName": "string",
- "itemId": "string"
}
]The Item Groups Store Level endpoint functions similarly to the Conventional Item Group endpoint, but with the added Store Group filter. This allows you to post more refined changes to Item Groups so as to include or exclude certain stores. Note while it can create new Item Groups, it does not create new Store Groups: requests must therefore reference Store Groups that already exist in your database. Additionally, it will replace rather than update existing records, so if an itemGroupName is already defined in the database it will be replaced by the value(s) supplied in the request.
See also: Store Group Profiles.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Store Level Item Groups to Update
| itemGroupName required | string <= 30 characters See also: Item Groups, Linked Items. |
| itemId required | string <= 14 characters See also: Item ID. |
| storeGroupName | string <= 30 characters If no Store Group is defined then the function defaults to all stores. See also: Name (Store Group). |
[- {
- "itemGroupName": "string",
- "itemId": "string",
- "storeGroupName": "string"
}
]The /batch/itemMaintenance endpoint is used to post bulk, multi-store additions or changes to your inventory records.
This endpoint can create Departments (when a Department Number does not exist and a Department Name is entered), Brands, and Power Fields. New entries are added to their respective tables when not found in the database.
This endpoint can only be used when performing batch updates to the Headquarters CATAPULT database; meaning, the fully-qualified domain name of the Headquarters location must be used in the URL/call of the endpoint. Using the endpoint for Remote Stores will result in an error.
New items created by this batch process will inherit all applicable department default values associated with the Department Number entered in the batch record. Additional item hierarchy defaults are pulled from the Sub-Department Number, Category Number, Sub-Category Number, and Variety Number field values, if subsequently entered in the batch record. The full item hierarchy (numbers) must be included to update or insert item records.
With CATAPULT 5.8.166 or newer, the following is true:
RAISERROR - Invalid Item Hierarchy will be returned.With CATAPULT 5.8.165 or older, the following is true:
promptForPrice setting will be set to enabled (i.e., 1) on Price Level 1 and disabled (i.e., 0) with a dollar value of $0.00 on Price Levels 2-4. promptForPrice disabled and a $0.00 Base Price on Price Level 1, apply the following (global) Advanced Setting:KEY = stagingTables.NewItemsAddWithZeroPrice
VALUE = true
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
Beginning with CATAPULT 5.7.143 and newer, if one or more items within a batch fails or encounters an error, the items that failed - and why - will be included in the detail line of the importMessages response.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Items To Be Updated
| action required | string Enum: "U" "R" Type of Action to be Performed:
|
| itemId required | string <= 14 characters The Item ID of the item being added or edited. |
| replaceItemID | string <= 14 characters Available with CATAPULT 5.8.163 or Newer IMPORTANT
Purpose
Potential Use Cases of Property
Property Behavior
Best Practices
|
| deptNo | integer
|
| deptName | string <= 30 characters
|
| name | string <= 254 characters The descriptive name of the item. |
| receiptAlias | string <= 32 characters
|
| brand | string <= 30 characters
|
| size | string <= 20 characters The package size of the item (e.g., 16 OZ). |
| promptList | string <= 30 characters
|
| discountList | string <= 30 characters Purpose
Property Behavior
Additional Property Values
|
| suggestedRetail | string <decimal(16,4)> The suggested retail price (SRP) of the item. |
| pf1 | string <= 30 characters
|
| pf2 | string <= 30 characters
|
| pf3 | string <= 30 characters
|
| pf4 | string <= 30 characters
|
| pf5 | string <= 30 characters The item's Power Field 5 assignment. |
| pf6 | string <= 30 characters The item's Power Field 6 assignment. |
| pf7 | string <= 30 characters The item's Power Field 7 assignment. |
| pf8 | string <= 30 characters The item's Power Field 8 assignment. |
| memo | string <= 254 characters Any text that should be entered into the Memo field on the item's inventory record. |
| linkGroup | string
|
| nonReturnable | boolean Determines if the item is returnable or not.
|
| embeddedPriceAsUnit | boolean Determines if the sale of the embedded price package for the item will be treated as a single unit.
|
| countryOfOrigin | string <= 28 characters The item's "Country of Origin Label" text that can be used for identification and marketing purposes. |
| subDeptNumber | integer
|
| categoryNumber | integer
|
| subCategoryNumber | integer
|
| varietyNumber | integer
|
[- {
- "action": "U",
- "itemId": "6",
- "name": "New Item Name",
- "receiptAlias": "New Receipt Alias",
- "deptNo": 1,
- "nonReturnable": true
}
]/batch/itemStoreData) must also be used to specify the item's Default Supplier. If the item's Default Supplier is not set, when the item is edited in CATAPULT Web Office, it will require that a Default Supplier be specified before any other changes can be saved./batch/importMessages endpoint.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Item Ordering Information
| action required | string Enum: "U" "R" "D" Type of Action to be Performed:
|
| itemId required | string <= 14 characters The Item ID of the item - as entered in CATAPULT Web Office on the Inventory Record - that is to have ordering information updated. |
| supplierId required | string <= 10 characters The ID Number of the item's Supplier, as entered in CATAPULT Web Office on the Supplier Record. This ID should match the Supplier for the item where ordering information needs to be updated. |
| orderId required | string <= 15 characters The Supplier Unit ID (SUID) of the item - as entered in CATAPULT Web Office on the Inventory Record - that is to have ordering information updated. |
| orderQty | string <decimal(12,3)> [ 1 .. 999999999999 ] characters
|
| orderUnitName | string <= 30 characters A descriptive name for the unit that the order item comes as (e.g., CS or EA). Adding/Inserting New Supplier Unit ID Records
Updating Existing Supplier Unit ID Records
|
| orderPrimary | boolean Determines whether or not the SUID is the Default ordering preference for the item for the specified Supplier.
|
| vendorDistributionCenterID | string <= 32 characters Available with CATAPULT 5.6.101 and newer
|
| vendorDistributionCenterName | string <= 32 characters Available with CATAPULT 5.6.101 and newer
|
| minimumOrder | number <= 999999999999.999 characters This field allows you to specify the Supplier Unit ID's minimum order quantity (i.e., the quantity of the Supplier Unit ID (SUID) that must be ordered from the supplier at any given time). Note the following:
|
| suggestedMultiple | integer <= 999999999 characters This field allows you to specify the Supplier Unit ID's Case Pack Multiple, which is the multiple that the SUID must be ordered by. For example, if an item's Note the following:
|
[- {
- "action": "U",
- "itemId": "string",
- "supplierId": "string",
- "orderId": "string",
- "orderQty": "3.000",
- "orderUnitName": "EA",
- "orderPrimary": true,
- "vendorDistributionCenterID": "string",
- "vendorDistributionCenterName": "string",
- "minimumOrder": "12.000",
- "suggestedMultiple": "2"
}
]The Item Pricing endpoint is used to post bulk, multi-store additions or changes to the Price Levels on your inventory maintenance records. Discounts are not created by this operation and must be created separately in WebOffice before being used in the request parameters. The operation will, however, create new Family Lines if one is entered in the parameters and does not already exist.
Note promptForPrice defaults to disabled 0 when not specified in the request. To adjust this behaviour and have promptForPrice
default to enabled 1 when A) not defined in the request and B) the price of the respective inventory item is $0.00, add the
following Global-level Advanced Setting in WebOffice:
KEY = stagingTables.automaticPromptForPrice
VALUE = true
If the inventory price is any other dollar amount then it will default to disabled.
See also: Inventory Pricing & Costs.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Item Prices to be updated
| itemId required | string <= 14 characters See also: Item ID. |
| zoneId required | string <= 30 characters See also: Zones. |
| retail1 | string <decimal(16,4)> See also: Price Levels. |
| promptForPrice1 | boolean See also: Prompt for Price. |
| discount1 | string <= 30 characters See also: Auto Discount. |
| quantityOnly1 | boolean See also: Count Towards Quantity. |
| idealMargin1 | string <decimal(16,4)> See also: Ideal Margin. |
| divider1 | integer [ 1 .. 99 ] See also: Pricing Divider. |
| retail2 | string <decimal(16,4)> |
| promptForPrice2 | boolean |
| discount2 | string <= 30 characters |
| quantityOnly2 | boolean |
| idealMargin2 | string <decimal(16,4)> |
| divider2 | integer [ 1 .. 99 ] |
| retail3 | string <decimal(16,4)> |
| promptForPrice3 | boolean |
| discount3 | string <= 30 characters |
| quantityOnly3 | boolean |
| idealMargin3 | string <decimal(16,4)> |
| divider3 | integer [ 1 .. 99 ] |
| retail4 | string <decimal(16,4)> |
| promptForPrice4 | boolean |
| discount4 | string <= 30 characters |
| quantityOnly4 | boolean |
| idealMargin4 | string <decimal(16,4)> |
| divider4 | integer [ 1 .. 99 ] |
| familyLine | string <= 30 characters Family Line name. Enter 'NONE' to set to null/no choice. See also: Family Lines. |
| retailAccountingPrice | string <decimal(16,4)> Applies to all stores in the Zone specified. Use 'Batch Item Store Data' for updates to a single store. This value will be recorded with transactions. See also: Retail Value. |
| retailAccountingReportCode | string <= 30 characters Applies to all stores in the Zone specified. Use 'Batch Item Store Data' for updates to a single store. This value will be recorded with transactions. See also: Report Code. |
[- {
- "itemId": "string",
- "zoneId": "string",
- "retail1": "string",
- "promptForPrice1": true,
- "discount1": "string",
- "quantityOnly1": true,
- "idealMargin1": "string",
- "divider1": 1,
- "retail2": "string",
- "promptForPrice2": true,
- "discount2": "string",
- "quantityOnly2": true,
- "idealMargin2": "string",
- "divider2": 1,
- "retail3": "string",
- "promptForPrice3": true,
- "discount3": "string",
- "quantityOnly3": true,
- "idealMargin3": "string",
- "divider3": 1,
- "retail4": "string",
- "promptForPrice4": true,
- "discount4": "string",
- "quantityOnly4": true,
- "idealMargin4": "string",
- "divider4": 1,
- "familyLine": "string",
- "retailAccountingPrice": "string",
- "retailAccountingReportCode": "string"
}
]U) action is used with this endpoint, it will only be to insert new records./batch/storePromotions) endpoint to create new Dynamic Store Promotions.RAISERROR 50001 will return. /batch/importMessages endpoint.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Item Promotions to Update
| action required | string Enum: "U" "R" "D" Type of Action to be Performed:
|
| name | string <= 128 characters See also: Name). |
| zoneName | string <= 30 characters See also: Pricing Zone. |
| storeGroupName | string <= null characters See also: Store Groups. |
| receiptAlias required | string <= 32 characters See also: Receipt Alias. |
| minPurchase | string <decimal(16,4)> See also: Minimum Purchase Amount. |
| requireMin | boolean |
| maxPerTrans | integer See also: Maximum Purchase Amount. |
| maxTransactionDiscount | string <decimal(16,4)> See also: Maximum Transaction Discount. |
| maxDiscountPerPromo | boolean See also: Maximum Discount/Promotion. |
| itemGroups | string <= 30 characters
See also: Item Groups. |
| scheduleName | string <= 30 characters Must provide name of an existing schedule in WebOffice. Providing a Schedule Name means StartDate and EndDate will not be used. See also: Promotion Schedule. |
| startDate required | string <date> Format yyyy-mm-dd. See also: Promotion Start Day. |
| endDate required | string <date> Format yyyy-mm-dd. See also: Promotion End Day. |
| startTime | string <time> Start Time for each day of schedule. 24-hour format (hh:mm:ss) required, defaults to 00:00:00. See also: Promotion Start Time. |
| endTime | string <time> End Time for each day of schedule. 24-hour format (hh:mm:ss) required, defaults to 00:00:00. See also: Promotion End Time. |
| type | integer 1 - Price |
| value | string <decimal(16,4)> Meaning of this value depends on type of promotion selected. |
| excludeGroup | string <= 30 characters See also: Excluded Item Groups (Promo). |
| storeCoupon | string <= 30 characters See also: Store Coupon (Promo). |
| customers | string <long varchar> List of customer numbers separated by colon (:). This field is only used if named Store Coupon is supplied. See also: Customer Groups (Promo). |
| oneTimeUse | boolean |
| couponEntryType | integer See also: Store Coupon Triggers. |
| stackLevel | integer See also: Promotion Stack Levels. |
| applyToPl1 | boolean See also: Promotion Price Levels. |
| applyToPl2 | boolean |
| applyToPl3 | boolean |
| applyToPl4 | boolean |
[- {
- "action": "U",
- "name": "string",
- "zoneName": "string",
- "storeGroupName": "string",
- "receiptAlias": "string",
- "minPurchase": "string",
- "requireMin": "true",
- "maxPerTrans": 0,
- "maxTransactionDiscount": "string",
- "maxDiscountPerPromo": true,
- "itemGroups": "string",
- "scheduleName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "startTime": "14:15:22Z",
- "endTime": "14:15:22Z",
- "type": 0,
- "value": "string",
- "excludeGroup": "string",
- "storeCoupon": "string",
- "customers": "string",
- "oneTimeUse": true,
- "couponEntryType": 0,
- "stackLevel": 0,
- "applyToPl1": true,
- "applyToPl2": true,
- "applyToPl3": true,
- "applyToPl4": true
}
]/batch/itemStoreData endpoint is used to perform bulk updates to your inventory taxes, restrictions, costs, and other related fields at a per-store level./batch/importMessages endpoint.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Item Store Data to be Updated
| itemId required | string <= 14 characters See also: Item ID. |
| storeId required | string <= 10 characters See also: Store ID. |
| taxList | string <= 30 characters List of tax names separated by colon(:). Enter 'NONE' to remove all; 'DEFAULT' to use department default. |
| specialTendersList | string <= 30 characters List of tender names separated by colon(:). Enter 'NONE' to remove all; 'DEFAULT' to use department default. |
| itemRestriction | string <= 30 characters Enter 'NONE' to set to null/no choice; 'DEFAULT' to use department default. |
| lastCost | string <decimal(16,4)> Context
Purpose of Property
Property Behavior
|
| replaceAverageCost | boolean Available in CATAPULT 5.8.170+ Context
Purpose
Property Values
Conditional Property Behavior
|
| defaultSupplierId | string <= 10 characters Enter 'NONE' to set to null/no choice. |
| loyaltyMultiplier | string <decimal(4,3)> Negative number will use department default. See also: Loyalty Accrual Multiplier. |
| weightProfile | string <= 30 characters Enter 'NONE' to set to null/no choice; 'DEFAULT' to use department default. |
| qtyEntry | boolean See also: Require Quantity Entry at POS. |
| discontinued | boolean See also: Discontinued (Inventory). |
| promptForPriceMin | string <decimal(16,4)> See also: Prompt for Price Ranges. |
| promptForPriceMax | string <decimal(16,4)> See also: Prompt for Price Ranges. |
| retailAccountingPrice | string <decimal(16,4)> See also: Retail Value. |
| retailAccountingReportCode | string <= 30 characters See also: Report Code. |
| linkGroup | string <= 30 characters See also: Item Groups, Linked Items. |
| pf1 | string <= 30 characters See also: PowerFields. |
| pf2 | string <= 30 characters |
| pf3 | string <= 30 characters |
| pf4 | string <= 30 characters |
| pf5 | string <= 30 characters |
| pf6 | string <= 30 characters |
| pf7 | string <= 30 characters |
| pf8 | string <= 30 characters |
| location | string <= 30 characters See also: Location. |
| shelfSequence | integer See also: Shelf Information Tab. Note that this field can support a maximum value of 999999999. |
[- {
- "itemId": "string",
- "storeId": "string",
- "taxList": "string",
- "specialTendersList": "string",
- "itemRestriction": "string",
- "lastCost": "string",
- "replaceAverageCost": true,
- "defaultSupplierId": "string",
- "loyaltyMultiplier": "string",
- "weightProfile": "string",
- "qtyEntry": true,
- "discontinued": true,
- "promptForPriceMin": "string",
- "promptForPriceMax": "string",
- "retailAccountingPrice": "string",
- "retailAccountingReportCode": "string",
- "linkGroup": "string",
- "pf1": "string",
- "pf2": "string",
- "pf3": "string",
- "pf4": "string",
- "pf5": "string",
- "pf6": "string",
- "pf7": "string",
- "pf8": "string",
- "location": "string",
- "shelfSequence": 0
}
]The Phone Numbers endpoint allows you to manage the phone numbers associated with select records in the CATAPULT system. Specifically:
When entered in a row of the request body,the category corresponds to the type of maintenance record ultimately called by the entityId in the same row.
EXAMPLE: - A value of '1234567' is in the respective ID field for two unrelated customer and employee records in CATAPULT.
We only want to post a new phone number on the customer record, so in the request body we would enter 'C' and '1234567' for the
Category and entityId parameters, respectively. This directs the procedure to identify and update the customer (Category 'C') maintenance record
whose customerId matches the provided entityId ('1234567').
Beginning with CATAPULT 5.6.111+, this endpoint will only update phone numbers for records where the system detects there is a change (or a new phone number is being added). This prevents records from being unnecessarily updated with the same data each time the endpoint is used.
See also: Phone Descriptions (Profiles).
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Phone Numbers to Update
| action required | string Enum: "U" "R" Type of Action to be Performed:
|
| category required | string Enum: "C" "E" "S" "V" Category of the address:
|
| entityId required | string <= 30 characters Exact value of the entityId depends entirely on, and must correspond to, the selected category: it can conditionally be the customerId, employeeId, storeId, or supplierId. |
| description required | string <= 30 characters Name of the Phone Number description to use. See also: Phone Description. |
| phoneNumber required | string <= 14 characters See also: Phone Number. |
[- {
- "action": "U",
- "category": "C",
- "entityId": "string",
- "description": "string",
- "phoneNumber": "string"
}
]The /batch/PriceCost endpoint allows you to create and commit Price & Cost Change Worksheets.
These worksheets are applied at the Zone level through the required zoneName property, but particular stores within a zone can be specified to narrow the recipients of committed changes.
Both the startDate and endDate properties are required to specify when the changes made by the worksheet will take effect and end.
When using the /batch/PriceCost endpoint, each row in the batch represents an item and includes fields that determine which worksheet the item should be placed on. If any of the fields listed below differ between rows, separate worksheets will be created. If you want to ensure all rows (i.e., items) are placed into the same worksheet, make sure these fields match across all rows:
name
zoneName
startDate
endDate
commitAtStore
worksheetTypeProfileName (available with CATAPULT 5.6.121 and newer)
Beginning with CATAPULT 5.6.107, should the /batch/PriceCost endpoint initially fail to commit a worksheet, it will reattempt the commit until successful (up to 10 times). After 10 failed attempts, the entry for the failed batch/worksheet will display an 'E' (for error) in /batch/importMessages, at which point you will need to commit the worksheet through CATAPULT Web Office.
/batch/importMessages endpoint.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
| appendExistingWorksheets | boolean Example: appendExistingWorksheets=0 Available with CATAPULT 5.8.165+, this query parameter supports values of
|
| autoCommit | boolean Example: autoCommit=1 Available with CATAPULT 5.8.165+, this query parameter supports values of
|
List of Prices and Costs to update
| name | string <= 40 characters Purpose This property allows you to enter the name of a temporary Price & Cost Change worksheet that the associated inventory item record will be added to. When the worksheet name is entered, Passport API will honor the setting of the appendExistingWorksheets query parameter accordingly. See the corresponding documentation of this parameter (above) to understand the endpoint's behavior. Using this Property If the appendExistingWorksheets query parameter is not used, the following behavior will be true when the batch completes for the
Best Practices
|
| zoneName required | string <= 30 characters See also: Zones (P&CC). |
| stores | string <= 10 characters List of store numbers separated by colon(:). |
| startDate required | string <date-time> Allows you to specify the date and time that the temporary changes included on the Price and Cost Change worksheet are to take effect. The format of this field is: |
| endDate required | string <date-time> Allows you to specify the date and time that the temporary changes included on the Price and Cost Change worksheet are to end. Omitting this field will not result in a permanent Price & Cost Change worksheet; this field must be populated to determine when the worksheet's changes will end. The format of this field is: |
| priority | integer Worksheet priority if multiple start at the same time. |
| commitAtStore | boolean Defaults to |
| itemType | string Enum: "I" "F" "G" I - Item (Default) |
| itemId required | string <= 30 characters Identifier for itemType parameter: Use |
| cost | string <decimal(16,4)>
|
| costIsOrderUnit | bit Available with CATAPULT 5.8.166 or Newer Purpose
Property Values
Best Practices
Updating the Order Unit Cost If
|
| price1 | string <decimal(16,4)> See also: Adjust Price. |
| promptForPrice1 | boolean See also: Prompt for Price (P&CC). |
| discount1 | string <= 30 characters Define the PL1 auto discount to use. |
| qtyOnly1 | boolean See also: Count Towards Quantity (P&CC). |
| idealMargin1 | string <decimal(16,4)> See also: Ideal Margin (P&CC). |
| noManualDiscount1 | boolean See also: No Manual Discounts (P&CC). |
| divider1 | integer [ 1 .. 99 ] See also: Pricing Divider (P&CC). |
| priceLabel1 | string <= 30 characters Available with CATAPULT 5.7.144 or Newer Purpose
Property Behavior
|
| price2 | string <decimal(16,4)> |
| promptForPrice2 | boolean |
| discount2 | string <= 30 characters Define the PL2 auto discount to use. |
| qtyOnly2 | boolean |
| idealMargin2 | string <decimal(16,4)> |
| noManualDiscount2 | boolean |
| divider2 | integer [ 1 .. 99 ] |
| priceLabel2 | string <= 30 characters Available with CATAPULT 5.7.144 or Newer Purpose
Property Behavior
|
| price3 | string <decimal(16,4)> |
| promptForPrice3 | boolean |
| discount3 | string <= 30 characters Define the PL3 auto discount to use. |
| qtyOnly3 | boolean |
| idealMargin3 | string <decimal(16,4)> |
| noManualDiscount3 | boolean |
| divider3 | integer [ 1 .. 99 ] |
| priceLabel3 | string <= 30 characters Available with CATAPULT 5.7.144 and Newer Purpose
Property Behavior
|
| price4 | string <decimal(16,4)> |
| promptForPrice4 | boolean |
| discount4 | string <= 30 characters Define the PL4 auto discount to use. |
| qtyOnly4 | boolean |
| idealMargin4 | string <decimal(16,4)> |
| noManualDiscount4 | boolean |
| divider4 | integer [ 1 .. 99 ] |
| priceLabel4 | string <= 30 characters Available with CATAPULT 5.7.144 and Newer Purpose
Property Behavior
|
| worksheetTypeProfileName | string <= 30 characters Available with CATAPULT 5.6.121 or Newer Purpose
Assigning a Worksheet Type Profile The profile assignment relies on the
|
[- {
- "name": "June Sale",
- "zoneName": "Zone 1",
- "stores": "sto1:sto2",
- "startDate": "2024-05-01 00:00:00",
- "endDate": "2024-05-10 23:59:59",
- "priority": 0,
- "commitAtStore": true,
- "itemType": "I",
- "itemId": "string",
- "cost": "string",
- "costIsOrderUnit": 0,
- "price1": "string",
- "promptForPrice1": true,
- "discount1": "string",
- "qtyOnly1": true,
- "idealMargin1": "string",
- "noManualDiscount1": true,
- "divider1": 1,
- "priceLabel1": "3-Day Deals",
- "price2": "string",
- "promptForPrice2": true,
- "discount2": "string",
- "qtyOnly2": true,
- "idealMargin2": "string",
- "noManualDiscount2": true,
- "divider2": 1,
- "priceLabel2": "Every Day Low Price",
- "price3": "string",
- "promptForPrice3": true,
- "discount3": "string",
- "qtyOnly3": true,
- "idealMargin3": "string",
- "noManualDiscount3": true,
- "divider3": 1,
- "priceLabel3": "Weekend Deals",
- "price4": "string",
- "promptForPrice4": true,
- "discount4": "string",
- "qtyOnly4": true,
- "idealMargin4": "string",
- "noManualDiscount4": true,
- "divider4": 1,
- "priceLabel4": "Members Special",
- "worksheetTypeProfileName": "string"
}
]The /batch/PermanentPriceCost endpoint allows you to create and commit permanent Price & Cost Change Worksheets.
Worksheets created with this endpoint do not include an end date (thus the "permanent" context), but changes can be overridden by future worksheets.
These worksheet are applied at the Zone level, so committed price changes will be reflected in every store included in the selected pricing zone.
When using the /batch/PermanentPriceCost endpoint, each row in the batch represents an item and includes fields that determine which worksheet the item should be placed on. If any of the fields listed below differ between rows, separate worksheets will be created. If you want to ensure all rows (i.e., items) are placed into the same worksheet, make sure these fields match across all rows:
name
zoneName
startDate
commitAtStore
worksheetTypeProfileName (available with CATAPULT 5.6.121 and newer)
Beginning with CATAPULT 5.6.107, should the /batch/PermanentPriceCost endpoint initially fail to commit a worksheet, it will reattempt the commit until successful (up to 10 times). After 10 failed attempts, the entry for the failed worksheet/batch will display an 'E' (for error) in /batch/importMessages/, at which point you will need to commit the worksheet through CATAPULT Web Office.
/batch/importMessages endpoint.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
| appendExistingWorksheets | boolean Example: appendExistingWorksheets=0 Available with CATAPULT 5.8.165+, this query parameter supports values of
|
| autoCommit | boolean Example: autoCommit=1 Available with CATAPULT 5.8.165+, this query parameter supports values of
|
List of Permanent Prices and Costs to update
| name | string <= 40 characters Purpose This property allows you to enter the name of a permanent Price & Cost Change worksheet that the associated inventory item record will be added to. When the worksheet name is entered, Passport API will honor the setting of the appendExistingWorksheets query parameter accordingly. See the corresponding documentation of this parameter (above) to understand the endpoint's behavior. Using this Property If the appendExistingWorksheets query parameter is not used, the following behavior will be true when the batch completes for the
Best Practices
|
| zoneName required | string <= 30 characters See also: Zones (P&CC). |
| startDate required | string <date-time> The date and time on which the price and/or cost changes for the items on the permanent Price & Cost Change worksheet take effect. The format of this field is: |
| memo | string <= 254 characters The optional memo text entered for the permanent Price & Cost Change worksheet. |
| commitAtStore | boolean List of store numbers separated by colon(:). If not supplied then it will default to all stores in the Pricing Zone. |
| itemType | string Enum: "I" "F" "G" I - Item (Default) |
| itemId required | string <= 30 characters Identifier for itemType parameter: Use |
| cost | string <decimal(16,4)>
|
| costIsOrderUnit | bit Available with CATAPULT 5.8.166 or Newer Purpose
Property Values
Best Practices
Updating the Order Unit Cost If
|
| price1 | string <decimal(16,4)> See also: Adjust Price. |
| promptForPrice1 | boolean See also: Prompt for Price (P&CC). |
| discount1 | string <= 30 characters Define the PL1 auto discount to use. |
| qtyOnly1 | boolean See also: Count Towards Quantity (P&CC). |
| idealMargin1 | string <decimal(16,4)> See also: Ideal Margin (P&CC). |
| noManualDiscount1 | boolean See also: No Manual Discounts (P&CC). |
| divider1 | integer [ 1 .. 99 ] See also: Pricing Divider (P&CC). |
| priceLabel1 | string <= 30 characters Available with CATAPULT 5.7.144 or Newer Purpose
Property Behavior
|
| price2 | string <decimal(16,4)> |
| promptForPrice2 | boolean |
| discount2 | string <= 30 characters Define the PL2 auto discount to use. |
| qtyOnly2 | boolean |
| idealMargin2 | string <decimal(16,4)> |
| noManualDiscount2 | boolean |
| divider2 | integer [ 1 .. 99 ] |
| priceLabel2 | string <= 30 characters Available with CATAPULT 5.7.144 or Newer Purpose
Property Behavior
|
| price3 | string <decimal(16,4)> |
| promptForPrice3 | boolean |
| discount3 | string <= 30 characters Define the PL3 auto discount to use. |
| qtyOnly3 | boolean |
| idealMargin3 | string <decimal(16,4)> |
| noManualDiscount3 | boolean |
| divider3 | integer [ 1 .. 99 ] |
| priceLabel3 | string <= 30 characters Available with CATAPULT 5.7.144 and Newer Purpose
Property Behavior
|
| price4 | string <decimal(16,4)> |
| promptForPrice4 | boolean |
| discount4 | string <= 30 characters Define the PL4 auto discount to use. |
| qtyOnly4 | boolean |
| idealMargin4 | string <decimal(16,4)> |
| noManualDiscount4 | boolean |
| divider4 | integer [ 1 .. 99 ] |
| priceLabel4 | string <= 30 characters Available with CATAPULT 5.7.144 and Newer Purpose
Property Behavior
|
| worksheetTypeProfileName | string <= 30 characters Available with CATAPULT 5.6.121 or newer Purpose
Assigning a Worksheet Type Profile The profile assignment relies on the
|
[- {
- "name": "June Price Adjustment",
- "zoneName": "Zone 1",
- "startDate": "2024-05-01 00:00:00",
- "memo": "string",
- "commitAtStore": true,
- "itemType": "I",
- "itemId": "string",
- "cost": "string",
- "costIsOrderUnit": 0,
- "price1": "string",
- "promptForPrice1": true,
- "discount1": "string",
- "qtyOnly1": true,
- "idealMargin1": "string",
- "noManualDiscount1": true,
- "divider1": 1,
- "priceLabel1": "Base Price Adjustment",
- "price2": "string",
- "promptForPrice2": true,
- "discount2": "string",
- "qtyOnly2": true,
- "idealMargin2": "string",
- "noManualDiscount2": true,
- "divider2": 1,
- "priceLabel2": "Every Day Low Price",
- "price3": "string",
- "promptForPrice3": true,
- "discount3": "string",
- "qtyOnly3": true,
- "idealMargin3": "string",
- "noManualDiscount3": true,
- "divider3": 1,
- "priceLabel3": "Employee Price Adjustment",
- "price4": "string",
- "promptForPrice4": true,
- "discount4": "string",
- "qtyOnly4": true,
- "idealMargin4": "string",
- "noManualDiscount4": true,
- "divider4": 1,
- "priceLabel4": "Members Special",
- "worksheetTypeProfileName": "string"
}
]The Remove Temporary Price Change endpoint allows you to delete any non-permanent Price & Cost Change Worksheets, including those temporary worksheets created by the Batch Item Price Cost endpoint. Only entering the name will remove all applicable temporary worksheets with a matching name, regardless of dates. Specify the startDate and endDate parameters as needed to narrow the scope of the removal.
See also: Price & Cost Change (P&CC) Worksheets.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Temporary Price Changes to Remove
| name required | string <= 40 characters See also: Name (P&CC). |
| startDate | string <date-time> The start date and time for the temporary Price & Cost Change worksheet that is to be deleted. The format of this field is: |
| endDate | string <date-time> The end date and time for the temporary Price & Cost Change worksheet that is to be deleted. The format of this field is: |
[- {
- "name": "string",
- "startDate": "2024-05-01 00:00:00",
- "endDate": "2024-05-10 23:59:59"
}
]XXX-XXX-XXX. Typically, the Shelf Information represents the item's Aisle-Shelf-Sequence position within a store. EXAMPLE
A complete Shelf Information value of
001-002-003would be entered in the request body using the three sequence parts as:
- sequencePart1 =
001- sequencePart2 =
002- sequencePart3 =
003
/batch/shelfInformation endpoint was designed to delete the Shelf Information value from inventory records not specified in a batch. Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
| storeId required | string <= 10 characters This field accepts the Store Number where the item - whose Shelf Information will be updated - is located. |
| itemId required | string <= 14 characters This field accepts a the Item ID (UPC scancode) of the inventory record which will be updated. |
| sequencePart1 required | string
|
| sequencePart2 required | string
|
| sequencePart3 required | string
|
[- {
- "storeId": "RS07",
- "itemId": 774200035,
- "sequencePart1": "001",
- "sequencePart2": "002",
- "sequencePart3": "003"
}
]U) action is used with this endpoint, it will only be to insert new records./batch/itemPromotions) endpoint to create new Dynamic Item Promotions.RAISERROR 50001 will return./batch/importMessages endpoint.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Store Promotions to Update
| action required | string Enum: "U" "R" "D" Type of Action to be Performed:
|
| name | string <= 128 characters See also: Name. |
| zoneName | string <= 30 characters See also: Pricing Zone. |
| storeGroupName | string <= 30 characters See also: Store Groups. |
| receiptAlias required | string <= 32 characters See also: Receipt Alias. |
| minPurchase | string <decimal(16,4)> See also: Minimum Purchase Amount. |
| requireMin | boolean |
| maxPerTrans | integer See also: Maximum Purchase Amount. |
| maxTransactionDiscount | string <decimal(16,4)> See also: Maximum Discount/Transaction. |
| maxDiscountPerPromo | boolean See also: Maximum Discount/Promotion. |
| scheduleName | string <= 30 characters Must provide name of an existing schedule in Web Office. Providing a Schedule Name means StartDate and EndDate will not be used. See also: Promotion Schedule. |
| startDate | string <date> Format yyyy-mm-dd. See also: Promotion Start Day. |
| endDate | string <date> Format yyyy-mm-dd. See also: Promotion End Day. |
| startTime | string <time> Start Time for each day of schedule. 24-hour format (hh:mm:ss) required, defaults to 00:00:00. See also: Promotion Start Time. |
| endTime | string <time> End Time for each day of schedule. 24-hour format (hh:mm:ss) required, defaults to 00:00:00. See also: Promotion End Time. |
| type required | integer 2 - Amount |
| value required | string <decimal(16,4)> Meaning of this value depends on type of promotion selected. |
| excludeGroup | string <= 30 characters See also: Excluded Item Groups. |
| storeCoupon | string <= 30 characters See also: Store Coupon. |
| customers | string <long varchar>
See also: Customer Groups. |
| deferrable | boolean See also: Deferrable Usages. |
| usesPerPeriod | integer See also: Uses per Period. |
| resetPeriod | integer 1 - Never |
| periodDow | integer Required when resetPeriod = 3 (Weekly). Accepted values: |
| periodDays | integer Required when resetPeriod = 2 (Every X Days). |
| applyToPl1 | boolean See also: Promotion Price Levels. |
| applyToPl2 | boolean |
| applyToPl3 | boolean |
| applyToPl4 | boolean |
[- {
- "action": "U",
- "name": "string",
- "zoneName": "string",
- "storeGroupName": "string",
- "receiptAlias": "string",
- "minPurchase": "string",
- "requireMin": "true",
- "maxPerTrans": 0,
- "maxTransactionDiscount": "string",
- "maxDiscountPerPromo": true,
- "scheduleName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "startTime": "14:15:22Z",
- "endTime": "14:15:22Z",
- "type": 0,
- "value": "string",
- "excludeGroup": "string",
- "storeCoupon": "string",
- "customers": "string",
- "deferrable": true,
- "usesPerPeriod": 0,
- "resetPeriod": 0,
- "periodDow": 0,
- "periodDays": 0,
- "applyToPl1": true,
- "applyToPl2": true,
- "applyToPl3": true,
- "applyToPl4": true
}
]The Customer endpoint provides a means to quickly view, create or update customer records outside your Web Office interface.
Use GET to obtain customer information that already exists in your database. You can provide a particular customerId to check individual records or, by leaving the customerId parameter blank, check all available records. Use PUT to create new customer records or update existing ones. Be sure the Web Office login associated with the apikey in the PUT request has the necessary Add Customer, Edit Customer Authorization Security checkpoints enabled. That security access will be inherited by the request.
customerId and/or modifiedSince, or exclude optional parameters to return all available data.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| customerId | string <= 16 characters Example: customerId=401234567890 The unique ID of a customer record. To request data for all customer records, do not send this parameter. See also: Customer ID. |
| modifiedSince | datetime Last modified date. Filters response data by Note: Use datetime format to further refine search results from a date-only request.'' |
object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/Customer?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&customerId=401234567890&modifiedSince=SOME_DATETIME_VALUE'
<?xml version="1.0" encoding="UTF-8"?> <root> <row customerId="40100637000029" lastName="Smith" firstName="John" middleName="Doe" nickName="Johnny" memo="Memo Text for this Customer" powerField1="string" powerField2="string" powerField3="string" powerField4="string" powerField5="string" powerField6="string" powerField7="string" powerField8="string" birthDate="1970-01-01" lastModified="2019-12-19 14:43:55.041" membershipAccount="Smith40100637000029" checkAcceptanceProfile="Approve" priceLevel="3 Senior" automaticDiscount="Senior 10% Discount" suppressReceipt="false" loyaltyEnabled="true" loyaltyAccrualMultiplier="1.000" suffix="Jr." prefix="Mr." title="string" company="ECRS" checkFileMemo="Check File Memo Text for this Customer" billToPhoneNumber="8281112222" billToPhoneDescription="Business" billToEmailAddress="string" billToEmailDescription="Business" billToEmailMarketing="false" billToEmailReceipt="false" billToAddressLine1="string" billToAddressLine2="string" billToAddressCity="string" billToAddressStateProv="string" billToAddressPostalCode="string" billToAddressDescription="Business" membershipAccountJoined="2023-09-12 03:30:25.213" hideInLookup="false" customerInactive="false" loyaltyBalances="Default Program=.0200|Program A=0.0000|Program B=0.0000" HeadOfHousehold="string" HouseholdAccounts="string" Dependents="PetFido2017-12-18" lastPurchaseStore="123" lastPurchaseDate="2014-08-17" membershipProfileName="Ownership" taxExemption="State Tax" DateCreated="2022-02-04 11:30:00.000" HomeStore="Spring Valley Store"/> </root>
Use this endpoint to insert new - or update existing - customer records in your CATAPULT database.
The lastName parameter is only required for new customer records. This operation is limited to the creation and modification of customer maintenance records.
This endpoint does not create Discounts, Price Levels, Check Profiles, or Membership Profiles. These must be created separately, either in WebOffice or by a supported API endpoint, before being used in a query parameter with this endpoint.
With CATAPULT 5.8.160 and newer, the following billToAddress fields can be cleared/emptied from an existing customer record if NONE is entered as the query parameter value:
If an entire address needs to be removed from a customer's record, the /batch/addresses endpoint should be used. See the Batch Addresses section below for more information.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| customerId | string <= 16 characters
|
| firstName | string <= 25 characters This field contains the Customer’s First Name. |
| lastName | string <= 25 characters This field contains the Customer’s Last Name. Required for new records. |
| middleName | string <= 25 characters This field contains the Customer’s Middle Name. |
| nickName | string <= 25 characters This field contains the Customer’s Alias. |
| prefix | string <= 30 characters This field contains the Customer’s Prefix (Rev., Mrs., Mr., etc.). |
| suffix | string <= 30 characters This field contains the Customer’s Suffix (Jr.,Sr.,MD., etc.). |
| title | string <= 25 characters This field contains the Customer’s Title. |
| company | string <= 50 characters This field contains the Company associated with the Customer. |
| memo | string <= 254 characters This field contains a string for entering notes about the Customer to save to the record. |
| automaticDiscount | string <= 30 characters Enter name of the Automatic Discount to apply on a Customer's record. Send empty string to remove an Automatic Discount from existing customer record. WARNING: If the specified Discount does not exist, an error will be returned and the record will not be created or updated. If an Automatic Discount is specified, it will take priority over Automatic Discount Groups entered in the same query and remove those that already exist on the customer record. Records cannot have both an Automatic Discount and an Automatic Discount Group. |
| automaticDiscountGroup | string This field contains the name of the Automatic Discount Group to apply to a Customer. Send empty string to remove an Automatic Discount Group from the customer record. WARNING: If the specified Discount Group does not exist, an error will be returned and the record will not be created or updated. If an Automatic Discount is specified in the same query, then any entered Automatic Discount Group will be blocked/dropped. Records cannot have both an Automatic Discount and an Automatic Discount Group. |
| priceLevel | tinyint This field contains the Price Level assigned to the Customer. You may specify the name of the Price Level or the number (1, 2, 3, or 4). WARNING: If the specified Price Level does not exist, an error will be returned and the record will not be created or updated. |
| powerField1 | string <= 30 characters This field contains the value of Power Field 1. |
| powerField2 | string This field contains the value of Power Field 2. |
| powerField3 | string <= 30 characters This field contains the value of Power Field 3. |
| powerField4 | string <= 30 characters This field contains the value of Power Field 4. |
| powerField5 | string <= 30 characters This field contains the value of Power Field 5. |
| powerField6 | string <= 30 characters This field contains the value of Power Field 6. |
| powerField7 | string <= 30 characters This field contains the value of Power Field 7. |
| powerField8 | string <= 30 characters This field contains the value of Power Field 8. |
| birthDate | date This field contains the Customer’s Birth Date (YYYY-MM-DD). |
| loyaltyEnabled | boolean This field is set to True if the Customer is to accrue Loyalty Points, False otherwise. For new Customers, true is assumed if the default accrual rate for new Customers is set in headquarters' Transaction Security Profile. |
| loyaltyAccrualMultiplier | number <double> This field contains the Accrual Rate Multiplier of the new Customer (must be between 0 and 10 inclusive). |
| suppressReceipt | boolean This field is set to true to opt the Customer out of paper receipts, false otherwise. |
| checkFileMemo | string <= 254 characters This field contains a string for entering notes related to the Customer’s Check File. |
| membershipAccount | string <= 30 characters This field contains the Customer’s Membership Account ID. WARNING: If the specified Membership Profile does not exist, an error will be returned and the record will not be created or updated. |
| billToAddressLine1 | string <= 50 characters
WARNING: If this parameter is not specified in the request, the remaining billToAddress parameters will be ignored. |
| billToAddressLine2 | string <= 50 characters
|
| billToAddressCity | string <= 20 characters
|
| billToAddressStateProv | string <= 2 characters
|
| billToAddressPostalCode | string <= 15 characters
|
| billToAddressDescription | string <= 30 characters This parameter allows you to specify the Address Description for the "Bill To" address that needs to be updated or created. Note the following about this parameter:
|
| billToEmailAddress | string <= 254 characters
|
| billToEmailDescription | string <= 30 characters This parameter allows you to specify the Email Description for the "Bill To" email address that needs to be updated or created. Note the following about this parameter:
|
| billToEmailMarketing | boolean If this field is set to true, the specified e-mail address will be opted in for LoyaltyBot. If this field is set to false, the specified email address will be opted out for LoyaltyBot. |
| billToEmailReceipt | boolean If this field is set to true, the specified e-mail address is opted in for eReceipt.; If this field is set to false, the specified e-mail address is opted out for eReceipt. |
| billToPhoneNumber | string <= 14 characters
|
| billToPhoneDescription | string <= 30 characters This parameter allows you to specify the Phone Description for the "Bill To" phone number that needs to be updated or created. Note the following about this parameter:
|
| hideInLookup | boolean If this field is set to true, the specified customer will be hidden from POS lookup screens. |
| membershipInactive | boolean
|
| customerInactive | boolean Accepts true or false. Updates the customer inactive option. Available in versions 5.5.4.142 and greater. |
| loyaltyProgram | string <= 30 characters Selects a loyalty program to import Loyalty Points into. When omitted or not valid, the default loyalty program is selected |
| loyaltyPoints | integer Example: loyaltyPoints=1 Imports a positive or negative loyalty point value. Value is points where 1 = 1.00 or 100 points. .01 = 0.01 or 1 single point |
| householdMainCustomerId | string <= 16 characters This customer account ID that is desired to be the Parent.
None of the household details are considered without this field.
This replaces whatever is currently on the customer record.
Pass |
| householdRelation | string <= 30 characters Text describing the relationship to the head of household, optional. Available in versions 5.5.4.210 and greater. |
| householdCanRedeem | boolean Defaults to true if not sent. Enables the household member to use the head of household loyalty points. Available in versions 5.5.4.210 and greater. |
| householdCanCharge | boolean Defaults to false if not sent. Enables the household member to use the head of household charge account. Available in versions 5.5.4.210 and greater. |
| dependentsList | string <= 254 characters Purpose
Property Behavior
Dependent Details In CATAPULT, each dependent has the following indentification details:
When specifying a dependent for a customer, both the Name and the Type are required; the dependent's Birth Date is optional. Property Formatting Requirements
|
| taxExemption | string Example: taxExemption=GA_Gizmonic%1dVA_Deep13 Pass the name(s) of a tax to update customer record. Use group separator
|
| taxExemptionType | string Value: "PF" Example: taxExemptionType=PF&taxExemption=VA Use this parameter coupled with the one above to affect bulk tax exemptions onto a customer record where the selected taxes each have the same Tax PowerField value as supplied in the request. For example:
See also: Navigating & Understanding the Tax Generator (Tax PowerField), Advanced Settings. |
object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
curl --request PUT \ --url 'https://accountid.catapultweboffice.com/api/Customer?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&customerId=SOME_STRING_VALUE&firstName=SOME_STRING_VALUE&lastName=SOME_STRING_VALUE&middleName=SOME_STRING_VALUE&nickName=SOME_STRING_VALUE&prefix=SOME_STRING_VALUE&suffix=SOME_STRING_VALUE&title=SOME_STRING_VALUE&company=SOME_STRING_VALUE&memo=SOME_STRING_VALUE&automaticDiscount=SOME_STRING_VALUE&automaticDiscountGroup=SOME_STRING_VALUE&priceLevel=SOME_TINYINT_VALUE&powerField1=SOME_STRING_VALUE&powerField2=SOME_STRING_VALUE&powerField3=SOME_STRING_VALUE&powerField4=SOME_STRING_VALUE&powerField5=SOME_STRING_VALUE&powerField6=SOME_STRING_VALUE&powerField7=SOME_STRING_VALUE&powerField8=SOME_STRING_VALUE&birthDate=SOME_DATE_VALUE&loyaltyEnabled=SOME_BOOLEAN_VALUE&loyaltyAccrualMultiplier=SOME_NUMBER_VALUE&suppressReceipt=SOME_BOOLEAN_VALUE&checkFileMemo=SOME_STRING_VALUE&membershipAccount=SOME_STRING_VALUE&billToAddressLine1=SOME_STRING_VALUE&billToAddressLine2=SOME_STRING_VALUE&billToAddressCity=SOME_STRING_VALUE&billToAddressStateProv=SOME_STRING_VALUE&billToAddressPostalCode=SOME_STRING_VALUE&billToAddressDescription=SOME_STRING_VALUE&billToEmailAddress=SOME_STRING_VALUE&billToEmailDescription=SOME_STRING_VALUE&billToEmailMarketing=SOME_BOOLEAN_VALUE&billToEmailReceipt=SOME_BOOLEAN_VALUE&billToPhoneNumber=SOME_STRING_VALUE&billToPhoneDescription=SOME_STRING_VALUE&hideInLookup=false&membershipInactive=false&customerInactive=false&loyaltyProgram=&loyaltyPoints=1&householdMainCustomerId=&householdRelation=&householdCanRedeem=false&householdCanCharge=false&dependentsList=SOME_STRING_VALUE&taxExemption=GA_Gizmonic%251dVA_Deep13&taxExemptionType=PF%26taxExemption%3DVA'
<?xml version='1.1' encoding='UTF-8'?> <root> <row customerId="123456789000" lastName="Smith" firstName="Jane" middleName="Doe" nickName="Janie" memo="Memo Text for this Customer" powerField1="string" powerField2="string" powerField3="string" powerField4="string" powerField5="string" powerField6="string" powerField7="string" powerField8="string" birthDate="1990-01-01" lastModified="2019-12-19 14:43:55.041" membershipAccount="Smith123456789000" checkAcceptanceProfile="Good" priceLevel="2 VIP" automaticDiscount="20% OFF" suppressReceipt="false" loyaltyEnabled="true" loyaltyAccrualMultiplier="1.000" suffix="III" prefix="Ms." title="string" company="reciProfity" checkFileMemo="Check File Memo Text for this Customer" billToPhoneNumber="8281112222" billToPhoneDescription="Personal" billToEmailAddress="string" billToEmailDescription="Personal" billToEmailMarketing="false" billToEmailReceipt="false" billToAddressLine1="string" billToAddressLine2="string" billToAddressCity="string" billToAddressStateProv="string" billToAddressPostalCode="string" billToAddressDescription="Home" membershipAccountJoined="2022-10-12 03:30:25.213" hideInLookup="false" customerInactive="false" loyaltyBalances="Default Program=.0200|Program A=0.0000|Program B=0.0000" HeadOfHousehold="string" HouseholdAccounts="string" Dependents="PetFido2017-12-18" lastPurchaseStore="123" lastPurchaseDate="2014-08-17" membershipProfileName="Ownership" taxExemption="State Tax"/> </root>
| Endpoint HTTP Method | Endpoint |
|---|---|
| GET | /dynamicPromotionsDetail |
What are Dynamic Promotions?
In CATAPULT, Dynamic Promotions are condition-based rules that reduce or adjust the price of specific items or groups of items (i.e., Item Groups).
The CSV response for this endpoint is less useful than JSON or XML, as the Item Group and Schedule properties contain nested data. Most text editors fail to parse and display this data correctly. Therefore, it's recommended to use the JSON or XML response output for this endpoint.
Details about Dynamic Promotions outside of the specified date range will not be returned.
When using this endpoint, Item Groups and individual items are returned in the responses. If you have constructed Item Groups with a large number of items (e.g., 100,000 or more), and attached those Item Groups to the Dynamic Promotions returned within the query parameters, the performance of this endpoint may be impacted. Specifically, it may take an extended period of time for the responses to be returned.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| startDate | string <date> Example: startDate=2023-01-01 The first day to return promotions for.
If no |
| endDate | string <date> Example: endDate=2023-07-01 The last day to return promotions for.
If no |
| id | string The unique identifier of the dynamic promotions | ||||||||||||||||
| name | string Name of the dynamic promotion. | ||||||||||||||||
| alias | string Receipt alias of the dynamic promotion. | ||||||||||||||||
| storeCoupon | string The store coupon required for the dynamic promotion, if present. | ||||||||||||||||
| storeFilterType | string The type of filter used to determine which stores this promo applies to. Either Zone, Store Groups, or Unknown. | ||||||||||||||||
| zone | string The zone to which this dynamic promotion is limited or All if no zone limit is applied. | ||||||||||||||||
| storeGroup | string The store group to which this dynamic promotion applied or All if no store group is applied. | ||||||||||||||||
| powerField1 | string The value of PowerField 1 for the dynamic promotion. | ||||||||||||||||
| powerField2 | string The value of PowerField 2 for the dynamic promotion. | ||||||||||||||||
| powerField3 | string The value of PowerField 3 for the dynamic promotion. | ||||||||||||||||
| powerField4 | string The value of PowerField 4 for the dynamic promotion. | ||||||||||||||||
| powerField5 | string The value of PowerField 5 for the dynamic promotion. | ||||||||||||||||
| powerField6 | string The value of PowerField 6 for the dynamic promotion. | ||||||||||||||||
| powerField7 | string The value of PowerField 7 for the dynamic promotion. | ||||||||||||||||
| powerField8 | string The value of PowerField 8 for the dynamic promotion. | ||||||||||||||||
| terminalGroup | string The terminal group to which this dynamic promotion is limited, if any. | ||||||||||||||||
| BOGOflag | number Indicator that this promotion is a BOGO | ||||||||||||||||
| BOGOlesserValue | number If this promotion is a bogo then this is the number of equal or lesser value items that the discount is applied to. | ||||||||||||||||
| BOGOgreaterValue | number If this promotion is a bogo then this is the number of equal or greater values items that the discount is applied to. | ||||||||||||||||
Array of objects The item groups which are required for the promotion to fire. Note that Item Groups with a large number of items (e.g., 100,000 or more) may impact the performance of the endpoint. Specifically, it may take an extended period of time for the responses to be returned. | |||||||||||||||||
Array
| |||||||||||||||||
Array of objects The schedules on which the dynamic promotion will fire. | |||||||||||||||||
Array
| |||||||||||||||||
| discountType | string The type of discount which this promotion applies. Can be one of 'Override Price', 'Dollar Amount', 'Percent Amount', 'Override Price Sequence', or 'Unknown'. | ||||||||||||||||
| maximumAllowedPerTransaction | number The maximum number of times this promo can fire in a single transaction | ||||||||||||||||
| maximumPurchaseAmount | number The maximum amount of a transaction on which this promotion is allowed to fire. | ||||||||||||||||
| stackLevel | string The stack level on which the promotion fires. | ||||||||||||||||
| includeItemGroup | string An item group to include in the calculation of the total limits for this promotion | ||||||||||||||||
| excludeItemGroup | string An item group to exclude from the calculation of the total limits for this promotion | ||||||||||||||||
| generalLedgerAccount | string The name of the general ledger account to which this promotion contributes | ||||||||||||||||
| storeCoupontriggers | string The type of store coupon trigger which applies to this promotion. One of '', 'Require Scan or Attachment', 'Require Scan and Attachment', 'Require Scan', 'Require Attachment', 'Require Scan or Customer Association', or 'Unknown' | ||||||||||||||||
| disabled | numeric 1 if the promotion is disabled. | ||||||||||||||||
| applyToBasePrice | numeric 1 if the promotion applies to the base price. | ||||||||||||||||
| DisableUseLimits | numeric 1 if use limits are disabled for this promotion. | ||||||||||||||||
| deferrable | numeric 1 if use limits apply to this promotion and it is deferrable. | ||||||||||||||||
| usesPerPeriod | numeric If use limits are enabled, then this indicates how many times a promotion can be used in each period. | ||||||||||||||||
| maxSavingsPerPeriod | numeric If use limits are enabled, then this indicates the max savings amount allowed in each period. | ||||||||||||||||
| limitAppliesTo | string Indicates to what a uses limit applies. One of 'Transaction' or 'Total Promotions'. | ||||||||||||||||
| enforceUseLimits | string Indicates the scope at which use limits are tracked. One of 'Coupon Type', 'Customer', or 'Household'. | ||||||||||||||||
| resetUsages | string Describes the period of a use limit and when the tracked uses are reset. | ||||||||||||||||
| rewardedLoyaltyOption | string Described how loyalty points are awarded by the promotion. One of 'None', 'Apply multiplier to item groups only', 'Apply multiplier to entire transaction', 'Reward points to transaction', and 'Unknown'. | ||||||||||||||||
| rewardedLoyaltyProgram | string The name of the program to which any points are awarded. | ||||||||||||||||
| rewardedLoyaltyPoints | numeric The number of points awarded to the loyalty program. | ||||||||||||||||
| rewardedLoyaltyMultiplier | numeric The multiplier awarded to the loyalty program. | ||||||||||||||||
| rewardCoupon | string The name of a coupon awarded by the redemption of this promotion | ||||||||||||||||
| rewardedReceiptPromoSection | string The name of a receipt section awarded by this promotion. | ||||||||||||||||
| maxDiscountPerPromo | numeric 1 if the maximum transaction discount amount is per instance of the promotion, else discount amount is per transaction. | ||||||||||||||||
| maximumTransactionDiscount | string The maximum amount of the discount allowed by this promotion. 0 is unlimited. | ||||||||||||||||
| minimumPurchaseAmount | numeric the minimum purchase amount before this promotion is allowed to fire. | ||||||||||||||||
| weightedItemOptions | string How weighted items are treated by this promotion. One of 'Discount by calculated unit quantity', 'Discount by line item', 'Discount by line item per each unit of weight', or 'Unknown'. | ||||||||||||||||
| pl1Eligible | bit Available with CATAPULT 5.8.169+ or CATAPULT 5.8.167.21+ This property indicates if the (Item or Store) Dynamic Promotion is eligible to apply to transactions using Price Level 1 for items (i.e., the "base price"). This eligibility is controlled by the "Price Level 1" checkbox in the Eligible Price Levels box within the (Item or Store) Dynamic Promotion record in CATAPULT Web Office. To indicate if the Dynamic Promotion is eligible to apply to transactions using Price Level 1, one of two values will be returned for this property:
| ||||||||||||||||
| pl2Eligible | bit Available with CATAPULT 5.8.169+ or CATAPULT 5.8.167.21+ This property indicates if the (Item or Store) Dynamic Promotion is eligible to apply to transactions using Price Level 2 for items. This eligibility is controlled by the "Price Level 2" checkbox in the Eligible Price Levels box within the (Item or Store) Dynamic Promotion record in CATAPULT Web Office. To indicate if the Dynamic Promotion is eligible to apply to transactions using Price Level 2, one of two values will be returned for this property:
| ||||||||||||||||
| pl3Eligible | bit Available with CATAPULT 5.8.169+ or CATAPULT 5.8.167.21+ This property indicates if the (Item or Store) Dynamic Promotion is eligible to apply to transactions using Price Level 3 for items. This eligibility is controlled by the "Price Level 3" checkbox in the Eligible Price Levels box within the (Item or Store) Dynamic Promotion record in CATAPULT Web Office. To indicate if the Dynamic Promotion is eligible to apply to transactions using Price Level 3, one of two values will be returned for this property:
| ||||||||||||||||
| pl4Eligible | bit Available with CATAPULT 5.8.169+ or CATAPULT 5.8.167.21+ This property indicates if the (Item or Store) Dynamic Promotion is eligible to apply to transactions using Price Level 4 for items. This eligibility is controlled by the "Price Level 4" checkbox in the Eligible Price Levels box within the (Item or Store) Dynamic Promotion record in CATAPULT Web Office. To indicate if the Dynamic Promotion is eligible to apply to transactions using Price Level 4, one of two values will be returned for this property:
| ||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/dynamicPromotionsDetail?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&startDate=2023-01-01&endDate=2023-07-01'
[- {
- "id": "1012|1000",
- "name": "Test Item Promotion",
- "alias": "Test Item Promotion",
- "storeCoupon": "Opt Out Print Rec - 10% Off",
- "storeFilterType": "Zone",
- "zone": "All",
- "storeGroup": "",
- "powerField1": "test 1",
- "powerField2": "test 2",
- "powerField3": "test 3",
- "powerField4": "test 4",
- "powerField5": "test 5",
- "powerField6": "test 6",
- "powerField7": "test 7",
- "powerField8": "test 8",
- "terminalGroup": "POS Lanes",
- "BOGOflag": 1,
- "BOGOlesserValue": 0,
- "BOGOgreaterValue": 0,
- "itemGroups": [
- {
- "itemGroupName": "Apples",
- "itemGroupID": "5|1003",
- "requiredQuantity": 1,
- "requiredAmount": 0,
- "distribution": 100,
- "receivesDiscount": 1,
- "itemCount": 4,
- "items": [
- "022014320806",
- "025000100000",
- "517251000012",
- "23535235235235"
]
}, - {
- "itemGroupName": "Vegetables",
- "itemGroupID": "4|1000",
- "requiredQuantity": 1,
- "requiredAmount": 0,
- "distribution": 0,
- "receivesDiscount": 0,
- "itemCount": 4,
- "items": [
- "024515048845",
- "027917008851",
- "202303209999",
- "202303209998"
]
}, - {
- "itemGroupName": "Bagged Coffee",
- "itemGroupID": "3|1003",
- "requiredQuantity": 1,
- "requiredAmount": 0,
- "distribution": 0,
- "receivesDiscount": 0,
- "itemCount": 1,
- "items": [
- "000100000115"
]
}
], - "schedules": [
- {
- "startDate": "2019-04-01",
- "endDate": "2023-11-08",
- "startTime": "12:00:00 AM",
- "endTime": "11:59:00 PM",
- "amount": 0,
- "percent": 10,
- "overridePriceSequence": "",
- "rounding": "When half or more"
}
], - "discountType": "Percent Amount",
- "maximumAllowedPerTransaction": 0,
- "maximumPurchaseAmount": 20,
- "stackLevel": "Always Applies",
- "includeItemGroup": "All",
- "excludeItemGroup": "Department 15",
- "generalLedgerAccount": "1234-0000",
- "storeCoupontriggers": "Require Scan or Attachment",
- "disabled": 0,
- "applyToBasePrice": 0,
- "DisableUseLimits": 0,
- "deferrable": 1,
- "usesPerPeriod": 4,
- "maxSavingsPerPeriod": 0,
- "limitAppliesTo": "Transaction",
- "enforceUseLimits": "Coupon Type",
- "resetUsages": "Never",
- "rewardedLoyaltyOption": "None",
- "rewardedLoyaltyProgram": "",
- "rewardedLoyaltyPoints": 0,
- "rewardedLoyaltyMultiplier": 0,
- "rewardCoupon": "Test Coupon",
- "rewardedReceiptPromoSection": "coupon receipt",
- "maxDiscountPerPromo": 0,
- "maximumTransactionDiscount": 0,
- "minimumPurchaseAmount": 0,
- "weightedItemOptions": "Discount by line item",
- "pl1Eligible": 1,
- "pl2Eligible": 0,
- "pl3Eligible": 1,
- "pl4Eligible": 0
}
]Available with CATAPULT 5.6.120+
The filecache endpoint allows you to perform a POST request to the CATAPULT Database to place a text file into the File Cache table. When a text file is placed in the database through this endpoint, other ECRS applications - such as Gateway - can reference and use the files as needed (e.g., pick the file up and move it to a specific destination). The specific CATAPULT Database where the file will be placed will be determined by the location where this endpoint is used. For example, if the POST request is made from the Headquarters location, the file will be placed in the Headquarters CATAPULT Database.
Available with CATAPULT 5.6.120+ Use this endpoint to POST a text file into the File Cache table within the CATAPULT database. The request body for this endpoint will contain the contents of the text file, and it must not contain any type of formatting (JSON, XML, etc.). The request will be sent as plain text. The specific CATAPULT Database where the file will be placed will be determined by the location where this endpoint is used. For example, if the POST request is made from the Headquarters location, the file will be present in the Headquarters CATAPULT Database.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| FileName required | string <= No Limit characters Example: FileName=Example Text File Name This parameter allows you to specify the name of the text file that you are inserting into the File Cache table of the CATAPULT Database. |
curl --request POST \ --url 'https://accountid.catapultweboffice.com/api/filecache?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&FileName=Example%20Text%20File%20Name'
{
"code": 4,
"message": "File not provided"
}This collection of endpoints allows for the management of CATAPULT gift cards (i.e., "self-hosted" gift cards). These endpoints are in no way associated with - or have any affect on - gift card services or providers used/hosted outside of CATAPULT.
The following gift card endpoints are available:
/giftCardBulk - Available with CATAPULT 5.7.135+, this endpoint allows for the bulk creation of CATAPULT gift cards within your store's CATAPULT database.
/giftCardUpdate - Available with CATAPULT 5.8.164+, this endpoint allows for the balance of previously-created CATAPULT gift cards to be updated in bulk via a positive or negative adjustment or by setting the balance to a specified amount.
Endpoint = /giftCardBulk
This endpoint allows for you to perform a POST request to the CATAPULT Database to create and automatically activate a bulk set of CATAPULT Self-Hosted Gift Cards. This endpoint is useful if your business needs to fulfill a large order of gift cards for a customer (e.g., corporate Christmas gifts).
When using this endpoint to generate the Gift Cards, you must specify the quantity of the Gift Cards that need to be generated, in addition to the pre-loaded dollar amount that needs to be on each Gift Card.
You can optionally choose the numerical prefix of the Gift Card's code, while the option to choose if the Gift Cards require a Personal Identification Number (PIN) to complete payment is also available.
When /giftCardBulk endpoint is used and the Gift Cards are successfully created, the response will contain the following information about each Gift Card:
All information about each Gift Card will be stored in your CATAPULT database, which will in turn allow recipients of those Gift Cards to use their card at any store location in the enterprise. In addition, because each Gift Card is activated upon creation, the Gift Card recipients can immediately use their card as a purchasing tender.
Once the Gift Cards have been created, you can use this information and distribute the Gift Cards as desired. Examples include:
/giftCardBulk endpoint is used to order Gift Cards from ECRS, the minimum order quantity of 500 still applies.A store employee with an Employee Record in CATAPULT Web Office must perform the request to the giftCardBulk endpoint and must properly authenticate to do so. Specifically, this employee must meet the following authentication requirements:
Should the employee performing the request not meet any of the authentication requirements, a 403 "Error" response will be returned.
A store employee with an Employee Record in CATAPULT Web Office must perform the request to the giftCardBulk endpoint and must have the Gift Card Bulk Load checkpoint enabled in their assigned Authorization Security profile.
Should the employee performing the request not meet this authorization requirement, a 403 "Error" response will be returned.
giftCardBulk request until 1:35 P.M.When a store employee (with an Employee Record in CATAPULT Web Office) performs a request to the giftCardBulk endpoint, and Gift Cards are successfully generated, the Employee ID, First Name, and Last Name of the employee - as entered on their Employee Record - will be permanently associated with that Gift Card creation record in the CATAPULT database.
You can report on and verify the "creating employee" information in CATAPULT Web Office 5.7.136+ using the Gift Card Balances report. This report allows you to view the "creating employee" information for each Gift Card, in addition to viewing the current balance of each card.
The giftCardBulk endpoint can only be used to create CATAPULT (i.e., "self hosted") Gift Cards. It cannot be used to update anything about pre-existing CATAPULT Gift Cards. Likewise, it cannot be used to create or update any Third-Party Gift Cards.
General Ledger (GL) Accounts
If your business uses the General Ledger (GL) Accounts module with CATAPULT, you can opt to select a GL Profile as the "Gift Card Liability Account" for Gift Cards. This is done on the Gift Card plugin of the Transaction Security profile.
IMPORTANT: If a GL profile is chosen for the Gift Card Liability Account, using the giftCardBulk endpoint does NOT Debit or Credit the account. Instead, the General Ledger entries must be imported into the third-party accounting system from the application originating the API endpoint call in these scenarios.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| amount required | currency [ 0.01 .. 999.99 ] characters Example: amount=50 This parameter requires that you to specify the dollar amount that will be pre-loaded onto each Gift Card created. In a |
| count required | integer [ 1 .. 99999 ] characters Example: count=300 This parameter requires that you specify the quantity/number of Gift Cards that should be created - and pre-loaded with the specificed |
| prefix | integer = 3 characters Example: prefix=780 This optional parameter allows you to establish the first three numeric characters of each Gift Card's code created with the request.
|
| pin_required | BIT Example: pin_required=1 This optional parameter allows you to choose if each generated Gift Card has an associated Personal Identification Number (PIN) that must be entered when the card is used for payment. The following options can be submitted with this parameter:
|
object | |||||||||||||||||||
| |||||||||||||||||||
curl --request POST \ --url 'https://accountid.catapultweboffice.com/api/giftCardBulk?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&amount=50&count=300&prefix=780&pin_required=1'
<?xml version='1.1' encoding='UTF-8'?> <root> <row GiftCardNumber="999X4KE25KU9MPGJ3E5" BeginningBalance="25.000" SecurityCode="547" IssuingEmployeeID="789" IssuingEmployeeFirst="Sally" IssuingEmployeeLast="Jones" IssueDate="2024-05-31 09:20.57.731"/> <row GiftCardNumber="999D9JH6LA89ABCJ5KF" BeginningBalance="25.000" SecurityCode="928" IssuingEmployeeID="789" IssuingEmployeeFirst="Sally" IssuingEmployeeLast="Jones" IssueDate="2024-05-31 09:20.57.731"/> </root>
Endpoint = /giftCardUpdate
This endpoint allows you to perform PUT requests to the CATAPULT database to update the balance of previously created and activated CATAPULT gift cards (i.e., "self-hosted" gift cards). Both electronic and physical CATAPULT gift cards can be updated with this endpoint.
Both the prefix and number of each gift card must be specified when using this endpoint. For each gift card, the balance can be adjusted positively or negatively (by a set amount) OR be changed to a specific dollar amount.
This endpoint allows you to update the balances of any desired quantity of gift cards. While there is technically no limit to the quantity of gift cards that can be updated per request, it's a best practice not to include a large quantity of gift cards in each request to a) maintain system performance, and b) avoid having a data set that is too large to troubleshoot, should issues arise.
Decreasing the balance of multiple gift cards to $0.00 to comply with state and/or federal dormancy regulations.
Increasing the balance on gift cards to correct a mistake when the cards were originally created.
ECRS is not responsible for the validation and/or tracking of state or federal law governing gift card value adjustments, dormancy fees, and/or cancellation requirements.
This endpoint only updates the balance of physical or electronic CATAPULT gift cards. It does not facilitate updating the balance of gift cards hosted by a third party.
A gift card's prefix, number, and PIN (personal identification number) cannot be updated using this endpoint.
General Ledger (GL) Accounts
If your business uses the General Ledger (GL) Accounts module with CATAPULT, you can opt to select a GL Profile as the "Gift Card Liability Account" for gift cards. This is done on the Gift Card plugin of the Transaction Security profile.
IMPORTANT: If a GL profile is chosen for the Gift Card Liability Account, using the giftCardUpdate endpoint does NOT Debit or Credit the account. Instead, the General Ledger entries must be imported into CATAPULT from the third party accounting system in these scenarios.
Only a store employee with an Employee Record in CATAPULT Web Office can use the giftCardUpdate endpoint and must properly authenticate with the API to do so. Specifically, this employee must meet the following authentication requirements:
Should the employee performing the request not meet any of the authentication requirements, a 403 "Error" response will be returned.
Store employees using the giftCardUpdate endpoint must have the Gift Card Bulk Adjustment checkpoint enabled in their assigned Authorization Security profile.
Should the employee performing the request not meet this authorization requirement, a 403 "Error" response will be returned.
giftCardBulk request until 1:35 P.M.The updated balances of gift cards will display in the Gift Card Account Balances report in the "Current Bal." column.
Any gift cards that have an updated balance will be organized into their own section in the Gift Card Account Activity report. This report displays all relevant information about the gift card adjustment, including:
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| CardNumber required | string = 16 characters
|
| Prefix required | integer = 3 characters
|
| AdjustBy required | bit
|
| SetTo required | bit
|
| Value required | number
|
object | |||||||||||
| |||||||||||
[- {
- "CardNumber": "X4KE25KU9MPGJ3E5",
- "Prefix": "780",
- "AdjustBy": "1",
- "SetTo": "0",
- "Value": "10.0000"
}
]<?xml version='1.1' encoding='UTF-8'?> <root> <row CardNumber="X4KE25KU9MPGJ3E5" Prefix="780" Balance="25.0000"/> <row CardNumber="D9JH6LA89ABCJ5KF" Prefix="780" Balance="25.0000"/> </root>
Passport API offers three endpoints related to creating, managing, and obtaining information about CATAPULT Inventory Adjustment worksheets.
HTTP Method = GET
Endpoint = /inventoryAdjustmentDetail
Purpose = This endpoint allows you to obtain data about committed Inventory Adjustment worksheets during a specified date range.
HTTP Method = PUT
Endpoint = /inventoryAdjustmentHeader
Purpose = This endpoint allows you to specify to CATAPULT that you want to create a new Inventory Adjustment worksheet, edit an existing worksheet, or commit (i.e., complete) a worksheet. This endpoint just allows you to populate the "header" of the Inventory Adjustment worksheet; it does not allow you to add items.
HTTP Method = PUT
Endpoint = /inventoryAdjustmentItems
Purpose = This endpoint allows you to add items to an existing Inventory Adjustment worksheet.
/inventoryAdjustmentDetail| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| startDate required | string <date> Example: startDate=2022-01-31 12:30:00:00 The start of the date range to query for Inventory Adjustment worksheets |
| endDate | string <date> Example: endDate=2022-01-31 12:30:00:00 The end of the date range to query for Inventory Adjustment worksheets. If endDate is not supplied then all data after startDate is returned up to the current date/time of the query. |
object (inventoryAdjustments_get) | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/inventoryAdjustmentDetail?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&startDate=2022-01-31%2012%3A30%3A00%3A00&endDate=2022-01-31%2012%3A30%3A00%3A00'
<?xml version='1.1' encoding='UTF-8'?> <root> <row worksheetName="Produce Item Adjustments" existingWorksheetId = "101722-1000" storeName = "Urban Market HQ" storeNumber = "277" storeId = "1-1000" worksheetTimestampCommitted = "2022-02-03 12:00:00.000" worksheetItemID = "4011" worksheetItemDescription = "Banana" worksheetItemAdjustment = "-2" worksheetBaseItemAdjustment = "-4" worksheetItemAdjustmentReason = "Spoiled - Too Ripe" worksheetItemAdjustmentMemo = "Disposed of Correctly" /> </root>
/inventoryAdjustmentItems endpoint for that purpose./inventoryAdjustmentHeader| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| Action required | string Example: Action=N Type of Action to be Performed:
|
| worksheetName | string <= 40 characters Example: worksheetName=Misplaced Items Required when |
| existingWorksheetId | string <= 40 characters Example: existingWorksheetId=3302-1000 Required when |
| memo | string <= 254 characters Text field that allows you to enter any notes or memos about the worksheet as a whole. |
curl --request PUT \ --url 'https://accountid.catapultweboffice.com/api/inventoryAdjustmentHeader?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&Action=N&worksheetName=Misplaced%20Items&existingWorksheetId=3302-1000&memo=SOME_STRING_VALUE'
<?xml version="1.1" encoding="UTF-8"?><root><row existingWorksheetId="1234-1000"/></root>
This endppoint allows you to add item records - along with adjustment data - to an existing Inventory Adjustment worksheet in CATAPULT Web Office. The adjustment data includes:
When this endpoint is used, the associated data is temporarily stored in a table within the CATAPULT database at the store (where the endpoint was used). After the data is processed for this endpoint, the table will be automatically cleared/purged to prevent bloat. This self-cleaning behavior cannot be changed or modified, and no action is required for it to occur.
/inventoryAdjustmentItems| existingWorksheetId required | string Example: existingWorksheetId=31428-5083 This required parameter is the output of a call to . It consists of the key identifying the worksheet.
Another way to determine this parameter, if required, would be to examine the URL when an Inventory Adjustment worksheet is opened in Web Office..
Here the worksheet's
This Inventory Adjustment has an |
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
List of Adjustments
| ItemID required | string The Item ID or Alternate ID of the item. |
| Adjustment required | string <decimal(16,4)> Amount to adjust the item by (positive or negative). |
| Reason | string The Reason for the adjustment. |
| Comments | string Comment related to the adjustment. |
[- {
- "ItemID": "CCK-001",
- "Adjustment": 12.5,
- "Reason": "Damaged",
- "Comments": "Box arrived this way"
}
]"{\n \"code\": 4,\n \"message\":\"RAISERROR executed: Reasons provided must match existing values from a reason profile. Invalid reasons: Dmaged,Loost\"\n}"CATAPULT Passport API offers two endpoints that allow you to obtain data for inventory items. For each endpoint, the data is obtained via a GET request. The two "Items" endpoints are:
See the Detailed Search and View All sections below for more information on each endpoint.
storeNumber is associated with the correct Zone profile.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| itemSearch | string <= 32 characters Example: itemSearch=401234567890
|
| groupSearch | string <= 30 characters Example: groupSearch=Bakery Purpose of Parameter This query parameter allows you to enter text that exactly matches, or serves as the beginning of, the name of a Conventional Item Group. The Item Group name is managed in CATAPULT Web Office. The returned data will be the items in the specified Item Group. Using this Parameter
|
| storeNumber | string <= 10 characters Example: storeNumber=123 Purpose of Parameter This query parameter allows you to specify a Store Number (that is associated with a Store Record in CATAPULT Web Office) so the returned item data will be specific to the store. The entered Store Number could be for a Headquarters (HQ) or Remote Store (RS). Using this Parameter
|
| itemId | string Item Id / scan code |
| receiptAlias | string Item receipt alias |
| itemName | string Item name |
| department | string Department the item is assigned to |
| subDepartment | string SubDepartment the item is assigned to |
| category | string Category the item is assigned to |
| subCategory | string SubCategory the item is assigned to |
| variety | string Variety the item is assigned to |
| size | string Size of the item |
| brand | string Brand of the item |
| loyaltyMultiplier | number <double> The loyalty multiplier for the default loyalty program for this customer |
| shelfLocation | string Shelf Location of the item |
| shelfSequence | string Shelf Sequence of the item |
| pricePL1 | number <double> Base Price of the item at Price Level 1 |
| priceDividerPL1 | number <double> Price Divider for Price Level 1 |
| pricePL2 | number <double> Base Price of the item at Price Level 2 |
| priceDividerPL2 | number <double> Price Divider for Price Level 2 |
| pricePL3 | number <double> Base Price of the item at Price Level 3 |
| priceDividerPL3 | number <double> Price Divider for Price Level 3 |
| pricePL4 | number <double> Base Price of the item at Price Level 4 |
| priceDividerPL4 | number <double> Price Divider for Price Level 4 |
| promoPricePL1 | number <double> Promotional Price of the item at Price Level 1, only returned if item is listed in active promotion worksheet |
| promoPriceDividerPL1 | number <double> Promotional Price Divider for Price Level 1, only returned if item is listed in active promotion worksheet |
| promoPricePL2 | number <double> Promotional Price of the item at Price Level 2, only returned if item is listed in active promotion worksheet |
| promoPriceDividerPL2 | number <double> Promotional Price Divider for Price Level 2, only returned if item is listed in active promotion worksheet |
| promoPricePL3 | number <double> Promotional Price of the item at Price Level 3, only returned if item is listed in active promotion worksheet |
| promoPriceDividerPL3 | number <double> Promotional Price Divider for Price Level 3, only returned if item is listed in active promotion worksheet |
| promoPricePL4 | number <double> Promotional Price of the item at Price Level 4, only returned if item is listed in active promotion worksheet |
| promoPriceDividerPL4 | number <double> Promotional Price Divider for Price Level 4, only returned if item is listed in active promotion worksheet |
| lastCost | number <double> Last Cost of the item |
| averageCost | number <double> Average Cost of the item |
| onHand | number <double> Item quantity on hand |
| onOrder | number <double> Item quantity on order |
| defaultSupplier | string Default Supplier for the item |
| defaultSupplierUnitId | string Default Supplier Unit Id for the item |
| defaultSupplierUnitQty | number <double> Quantity in order unit for default supplier |
| powerField1 | string Power Field 1 associated with the item |
| storePowerField1 | string Store Power Field 1 associated with the item |
| type | string Available in CATAPULT 5.7.123+ This property displays the 'Type' of each item, as assigned on the item's inventory record in CATAPULT Web Office. An item's Type determines if it's treated as an item that you sell and order regularly, or if it's only used to assist in transaction-specific scenarios (and is not sold as a "regular" item). There are two item Types:
|
| discontinued | string Available in CATAPULT 5.7.126+ This property displays the Discontinued status (Discontinued or Not Discontinued) of an item at the store where the API query is performed for this endpoint. One of two responses can be given for this field:
|
| lastSold | string <date-time> Available in CATAPULT 5.8.170+ This property provides the date and time that the associated item was last sold in the store, as determined by the storeNumber query parameter. |
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/itemDetail?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&itemSearch=401234567890&groupSearch=Bakery&storeNumber=123'
[- {
- "itemId": "123",
- "receiptAlias": "Gala Apple",
- "itemName": "Gala Apple",
- "department": "Produce",
- "subDepartment": "Fresh Fruit",
- "category": "Domestic",
- "subCategory": "Bagged",
- "variety": "Gala",
- "size": "1 lb.",
- "brand": "Biomac",
- "loyaltyMultiplier": "1.5",
- "shelfLocation": "11",
- "shelfSequence": "2",
- "pricePL1": "1.11",
- "priceDividerPL1": 0,
- "pricePL2": "1.12",
- "priceDividerPL2": 0,
- "pricePL3": "1.13",
- "priceDividerPL3": 0,
- "pricePL4": "1.14",
- "priceDividerPL4": 0,
- "promoPricePL1": "1.01",
- "promoPriceDividerPL1": 0,
- "promoPricePL2": "1.02",
- "promoPriceDividerPL2": 0,
- "promoPricePL3": "1.03",
- "promoPriceDividerPL3": 0,
- "promoPricePL4": "1.04",
- "promoPriceDividerPL4": 0,
- "lastCost": 0,
- "averageCost": 0,
- "onHand": 0,
- "onOrder": 0,
- "defaultSupplier": "Helmsman Produce",
- "defaultSupplierUnitId": "HE-1",
- "defaultSupplierUnitQty": 0,
- "powerField1": "string",
- "storePowerField1": "string",
- "type": "Stock Inventory",
- "discontinued": "1",
- "lastSold": "2025-09-15 12:45:50.865"
}
]/itemDetail - endpoint should be used.| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
object | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/allItems?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0'
<?xml version="1.0" encoding="UTF-8"?> <root> <row itemId="999" name="REAL MEDLEYS APPLE NUT HARVEST BAR" receiptAlias="APPLE NUT HRVST BAR" unitOfMeasure="12 ea" departmentNumber="5" brand="QUAKER" powerField1="Fruit Bar Collection" subCategoryNumber="15" categoryNumber="45" variety="Harvest Bar" familyLine="Breakfast Bar"/> </root>
This endpoint allows you to retrieve data for your global department(s). You may optionally pass a specific department number in the call operation to limit the server response to information for that particular object. Information for all available, global departments are returned if a unique department number is not specified.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| deptNumber | string <= 254 characters Example: deptNumber=42 Unique identifier for a global department. Use this parameter to limit response data for that particular department. Store-specific departments are not included. Inalvid, non-global, or unrecognized department numbers will result in an error. |
| departmentNumber | string <= 8 characters The unique department identifier. See also: Department ID. |
| departmentName | string <= 30 characters The department name. See also: Department Name. |
| departmentBuyer | string <= 25 characters Name of employee associated with department purchases. See also: Department Buyer. |
| departmentOpenSaleLowAmt | number <double> <= 12 characters Department Prompt for Price minimum. See also: Department Limits. |
| departmentOpenSaleHighAmt | number <double> <= 12 characters Department Prompt for Price maximum. |
| departmentHighQtyMultiplier | number <double> <= 12 characters Maximum value allowed for quantity or weight adjustment multiplier. See also: Department Adjustment Multiplier (High). |
| departmentLowQtyMultiplier | number <double> <= 12 characters Minimum value allowed for quantity or weight adjustment multiplier. See also: Department Adjustment Multiplier (Low). |
| departmentOmitFromSales | boolean Defines if the department is reported separately from general sales: returns See also: Department Omit from Sales. |
| departmentTransLimit | number <double> <= 12 characters Department purchase limit. See also: Department Purchase Limit. |
| departmentAdjustWarning | number <double> <= 12 characters Maximum value (positive or negative) for a quantity adjustment that can be made to an on-hand item before a warning is prompted. See also: Department Quantity Adjustments. |
| departmentMemo | string <= 254 characters The department memo. |
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/departmentDetail?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&deptNumber=42'
[- {
- "departmentNumber": "3000",
- "departmentName": "GIZMONIC",
- "departmentBuyer": "Forrester",
- "departmentOpenSaleLowAmt": 0,
- "departmentOpenSaleHighAmt": 0,
- "departmentHighQtyMultiplier": 0,
- "departmentLowQtyMultiplier": 0,
- "departmentOmitFromSales": true,
- "departmentTransLimit": 0,
- "departmentAdjustWarning": 0,
- "departmentMemo": "string"
}
]Available with CATAPULT 5.6.98+. The Physical Inventory Details endpoint allows you to perform an HTTP GET query and obtain data from committed Physical Inventory worksheets. This worksheet data includes:
Through a query, this endpoint allows you to Get data from all committed Physical Inventory worksheets in a specified date range; non-committed worksheets are not included in the responses. The query is comprised of three parameters:
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| startDate required | string <date> Example: startDate=2022-01-31 11:58:18.541085 The start of the date range to query for Physical Inventory worksheets. |
| endDate | string <date> Example: endDate=2022-10-31 11:58:18.541085 The end of the date range to query for Physical Inventory worksheets. If |
object | |||||||||||||||||
| |||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/physicalInventoryDetail?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&startDate=2022-01-31%2011%3A58%3A18.541085&endDate=2022-10-31%2011%3A58%3A18.541085'
<?xml version='1.1' encoding='UTF-8'?> <root> <row worksheetName="End of Year Physical Inventory" worksheetTimestampCommitted="2022-12-31 12:00:00.000" itemId="4011" worksheetItemDescription="Bananas" worksheetPriorOnHand="76" worksheetCountedOnHand="75" </root>
Endpoint = /prescriptionTransactionData
Endpoint HTTP Method = GET
Endpoint Data Source = Headquarters CATAPULT Database
This endpoint allows you to obtain information about prescription items sold during a specified time range (i.e., a "Start Date" and "End Date"). This prescription transaction information can be for a specific store, or all stores in your system.
To allow you to refine the prescription transaction data returned by the endpoint, the following query parameters are available:
When this endpoint provides a response, the following prescription data points will be included:
This endpoint only allows you to obtain (i.e., GET) transaction data for prescriptions. As such, the following is true:
In a multi-store system, because the data is obtained from the Headquarters CATAPULT database, the amount of data that is available will be limited to the data retention settings established by the merchant. This can be, at most, 180 days, but may be less depending on the merchant's configuration. This means prescription transaction data can only be obtained for roughly the past six months from the current date.
Use Case #1
Allow users to directly obtain the amount of all insurance-funded prescription payments - for all stores - on a desired date.
| Query Parameters Needed to Meet Use Case | Data to Review in Endpoint's Response |
|---|---|
|
|
Use Case #2
Allow users to look up specific pharmacy line item details by date, store, and Rx number.
| Query Parameters Needed to Meet Use Case | Data to Review in Endpoint's Response |
|---|---|
|
|
CATAPULT Version Requirements
Authorization Requirements
Users of the /prescriptionTransactionData endpoint must have a corresponding Employee Record in CATAPULT Web Office for the merchant's location where the prescription data is being obtained. This is true if the endpoint user is an employee of the merchant or a third party.
A user's Employee Record in CATAPULT Web Office is where an Authorization Security profile is assigned, which determines what actions the employee can or cannot take within the CATAPULT application (including Passport API). To use the /prescriptionTransactionData endpoint, the Prescription Transaction Data checkpoint must be enabled in the user's assigned Authorization Security profile.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
| ||||||||
| startTime required | string <date-time> Example: startTime=2025-10-31 12:00:00 Purpose
Using this Query Parameter
| ||||||||
| endTime required | string <date-time> Example: endTime=2025-11-01 12:00:00 Purpose
Using this Query Parameter
| ||||||||
| storeNumber | string Example: storeNumber=828 Purpose
Scenario-Based Behavior for Query Parameter
| ||||||||
| prescriptionNumber | string Example: prescriptionNumber=6287251 Purpose
Scenario-Based Behavior for Query Parameter
|
| storeNumber | string This property provides the Store ID - as entered on the associated Store Record in CATAPULT Web Office - of the store where the prescription was sold. |
| storeName | string This property provides the Store Name - as entered on the associated Store Record in CATAPULT Web Office - of the store where the prescription was sold. |
| transactionEndTime | string <date-time> This property provides the date and time of when the transaction - which contained the prescription - was completed at the CATAPULT Transaction Server termninal. |
| transactionUploadTime | string <date-time> This property provides the date and time of when the transaction - which contained the prescription - was uploaded to the CATAPULT database. |
| lineItemType | integer This property will return one of two values,
|
| prescriptionNumber | string This property provides the prescription number - or Rx Number - of the prescription item. |
| refillNumber | integer
|
| prescriptionPrice | number This property provides the amount paid by - or returned to - the patient for the prescription. The value for this property will be positive or negative, depending on the corresponding lineItemType of the prescription. Specifically:
|
| thirdPartyAmountPaid | number This property provides the dollar amount which was paid by a third party provider (i.e., insurance or otherwise) for the prescription. |
| acquisitionCost | number This property provides the cost that was paid to the supplier or wholesaler to acquire the prescription item. |
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/prescriptionTransactionData?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&startTime=2025-10-31%2012%3A00%3A00&endTime=2025-11-01%2012%3A00%3A00&storeNumber=828&prescriptionNumber=6287251'
<?xml version='1.1' encoding='UTF-8'?> <root> <row storeNumber="277" storeName="Urban Market 277" transactionEndTime="2025-02-05 14:27:23.085" transactionUploadTime="2025-02-05 14:27:23.874" lineItemType="1" prescriptionNumber="6287251" refillNumber="2" prescriptionPrice="6.6800" thirdPartyAmountPaid="0.0000" acquisitionCost="4.0000"> </row> <row storeNumber="828" storeName="Urban Market 828" transactionEndTime="2025-02-05 14:30:13.014" transactionUploadTime="2025-02-05 14:30:13.428" lineItemType="15" prescriptionNumber="6288526" refillNumber="0" prescriptionPrice="-2.5800" thirdPartyAmountPaid="0.0000" acquisitionCost="0.0000"> </row> </root>
The Price Change Detail endpoint provides a means to query price change worksheets. GET will let you retrieve worksheet data from within a defined date range.
Get data from all Price Change Worksheets in the specified date range. The request must be for a temporary price change worksheet in the committed state. Permanent price changes and/or non-committed worksheets are not included in the responses.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| startDate required | string <date> Example: startDate=2022-01-31 The start of the date range to query for Price Change worksheets. |
| endDate | string <date> Example: endDate=2022-10-31 The end of the date range to query for Price Change worksheets. If |
object | |||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/priceChangeDetail?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&startDate=2022-01-31&endDate=2022-10-31'
<?xml version='1.1' encoding='UTF-8'?> <root> <row worksheetCreated="2022-02-03 12:00:00.000" worksheetPriority="1" worksheetMemo="Ven Dor's A-Z Supplies" itemId="3145236" worksheetStartDate="2022-03-14 06:00:00.000" worksheetEndDate="2022-03-18 23:59:59.000" worksheetIdentifier="100021" worksheetSalePrice="100.99" worksheetSaleDiscount="Mid-March Discount" worksheetItemDescription="Gala Apples" worksheetName="Seasonal Price Change" worksheetItemSize="12" worksheetCreateEmpFirstName="Bob" worksheetCreateEmpLastName="Smith" worksheetCreateEmpNumber="7" worksheetCommitEmpFirstName="Terry" worksheetCommitEmpLastName="Smith" worksheetCommitEmpNumber="8" worksheetItemCost="10.99"/> </root>
In CATAPULT, Profiles are reusable components that contain unique settings, preferences, and actions which can be assigned to different "Maintenance" records as desired (e.g., Inventory Records, Customer Records, Employee Records, etc.).
What are Membership Profiles?
Membership Profiles are components in CATAPULT which can be applied to Customer Records in CATAPULT to establish their membership status and preferences with the store.
View All Membership Profiles
HTTP Method = GET
Endpoint = /MembershipProfile
Purpose = This endpoint allows you to obtain and view a list of all Membership Profiles - and their associated details - in a specified CATAPULT database.
Create / Edit Existing Membership Profiles
HTTP Method = PUT
Endpoint = /MembershipProfile
Purpose = This endpoint allows you to create new Membership Profiles for use in CATAPULT, or edit existing profiles. This endpoint does not allow you to assign Membership Profiles to customers. Membership Profiles must be assigned in CATAPULT Web Office or by using the PUT /Customer endpoint.
What are Store Coupon Profiles?
Store Coupon profiles in CATAPULT are a method to organize and group customers to make them eligible for certain promotions, benefits, and rewards. Store Coupons can also be used as filter points.
View All Store Coupon Profiles
HTTP Method = GET
Endpoint = /CustomerStoreCoupon
Purpose = This endpoint allows you to view all Store Coupons assigned to a specific Customer Record within CATAPULT.
Assign / Edit Store Coupon Profiles
HTTP Method = PUT
Endpoint = /CustomerStoreCoupon
Purpose = This endpoint allows you to add Store Coupons to specific Customer Records and update the expiration date on Store Coupons already assigned to customers.
Unassign Store Coupon Profiles
HTTP Method = DELETE
Endpoint = /CustomerStoreCoupon
Purpose = This endpoint allows you to unassign/remove Store Coupons from Customer Records.
What are Store Group Profiles?
Store Group profiles in CATAPULT are a method to organize and group Store Records, so in turn those groups can be used to determine what stores are eligible for certain settings, preferences, or restrictions. Store Groups can also be used as filter points.
View Store Group Profiles
HTTP Method = GET
Endpoint = /storeGroupProfileDetail
Purpose = This endpoint allows you to view the available Store Groups and the Store Record(s) within those groups.
Use GET to obtain a list of Store Coupons attached to a customer maintenance record.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| customerId | string <= 16 characters See also: Customer ID. |
object | |||||||||||||||
| |||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/CustomerStoreCoupon?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&customerId=SOME_STRING_VALUE'
<?xml version='1.1' encoding='UTF-8'?> <root> <row customerId="1234567" couponCode="V8>OS1" couponReceiptAlias="" couponName="Household Coupon" couponExpires=""/> <row customerId="1234567" couponCode="V8>ORS" couponReceiptAlias="" couponName="Household Coupon Category" couponExpires=""/> <row customerId="1234567" couponCode="V8>OSC" couponReceiptAlias="" couponName="Household Special" couponExpires=""/> </root>
Use PUT to attach new Store Coupons on a customer record or change the expiry date on existing ones. Responses are sorted to display the most recent coupon attachments at the top.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| customerId required | string <= 16 characters See also: Customer ID. |
| couponCode required | string The couponCode or couponReceiptAlias to attach on the specified customer record. See also: Store Coupons/Customer Groups. |
| couponExpires required | date Expiration date for the Store Coupon attached on the specified customer record. Accepts YYYY-MM-DD format. |
object | |||||||||||||||
| |||||||||||||||
curl --request PUT \ --url 'https://accountid.catapultweboffice.com/api/CustomerStoreCoupon?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&customerId=SOME_STRING_VALUE&couponCode=SOME_STRING_VALUE&couponExpires=SOME_DATE_VALUE'
<?xml version='1.1' encoding='UTF-8'?> <root> <row customerId="1234567" couponCode="V8>OSC" couponReceiptAlias="" couponName="Household Special" couponExpires=""/> <row customerId="1234567" couponCode="V8>OS1" couponReceiptAlias="" couponName="Household Coupon" couponExpires=""/> <row customerId="1234567" couponCode="V8>ORS" couponReceiptAlias="" couponName="Household Coupon Category" couponExpires=""/> </root>
Use DELETE to remove a particular Store Coupon from a customer record. Responses will return the list of coupons, if any, that remain on the customer record.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| customerId required | string <= 16 characters See also: Customer ID. |
| couponCode required | string The couponCode or couponReceiptAlias of the coupon association targeted for removal. See also: Store Coupons/Customer Groups. |
object | |||||||||||||||
| |||||||||||||||
curl --request DELETE \ --url 'https://accountid.catapultweboffice.com/api/CustomerStoreCoupon?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&customerId=SOME_STRING_VALUE&couponCode=SOME_STRING_VALUE'
<?xml version='1.1' encoding='UTF-8'?> <root> <row customerId="1234567" couponCode="V8>OS1" couponReceiptAlias="" couponName="Household Coupon" couponExpires=""/> <row customerId="1234567" couponCode="V8>ORS" couponReceiptAlias="" couponName="Household Coupon Category" couponExpires=""/> </root>
Use with GET to retreive a list of all membership profiles in your database.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| membershipProfile | string Provide the name of a particular membership profile to query, otherwise leave this parameter blank to return all applicable profiles. |
object | |||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/MembershipProfile?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&membershipProfile=SOME_STRING_VALUE'
<?xml version='1.1' encoding='UTF-8'?> <root> <row membershipProfile="Equity Member" isPrivate="false" isDefault="false" automaticDiscount="VIP 5% off" priceLevel="1 Price Level" equityEnabled="true" maxEquity="100.0000" equityMode="standard" equityPaymentAmount="5.0000" equityPaymentInterval="monthly" surchargePercent="0" membershipFeeEnabled="true" membershipFeeAmount="1.0000" membershipFeeInterval="monthly" joinFeeEnabled="true" joinFeeAmount="5.0000"/> </root>
Use PUT to create new membership profiles and to update existing ones.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| membershipProfile required | string Name of a particular membership profile to create or update. |
| newName | string New name for a membership profile, if renaming an existing one. |
| isPrivate | boolean Defaults to |
| isDefault | boolean Defaults to |
| autoDiscount | string Name of the Automatic Discount associated with the selected profile. Exclude this parameter from the request to leave it unchanged. Send a blank or empty string with the parameter to unset (remove) the association. |
| priceLevel | string Set Price Level for the selected profile. Accepted values include the Price Level name or number (1, 2, 3, 4). Send a blank or empty string with the parameter to unset (remove) the association. |
| equityEnabled | boolean Set to |
| equityMode | string Set to Required if equityEnabled = true |
| equityPaymentAmount | unsigned double The dollar amount for standard-mode equity payments associated with the selected profile. Required if equityMode = standard |
| equityPaymentInterval | string Interval of recurring payments. Accepted values include Required if equityMode = standard |
| preservePaidInFull | boolean Set to Required when you raise a membership profile equityAmount and at least one customer record associated with that selected profile was already marked paid-in-full |
| surchargePercentage | unsigned double The percentage of a transaction total, to be charged on customer accounts not paid-in-full with each transaction, until all associated membership profile equity is paid. Required if equityMode = surcharge |
| joinFeeEnabled | boolean Set to |
| joinFeeAmount | unsigned double The amount of the joining fee for a selected membership profile. Required if joinFeeEnabled = true |
| membershipFeeEnabled | boolean Set to |
| membershipFeeAmount | unsigned double The amount of the recurring membership fee for a selected profile. Required if membershipFeeEnabled = true |
| membershipFeeInterval | string Interval for a recurring membership fee. Accepted values include Required if membershipFeeEnabled = true |
object | |||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||
curl --request PUT \ --url 'https://accountid.catapultweboffice.com/api/MembershipProfile?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&membershipProfile=SOME_STRING_VALUE&newName=SOME_STRING_VALUE&isPrivate=SOME_BOOLEAN_VALUE&isDefault=SOME_BOOLEAN_VALUE&autoDiscount=SOME_STRING_VALUE&priceLevel=SOME_STRING_VALUE&equityEnabled=SOME_BOOLEAN_VALUE&equityMode=SOME_STRING_VALUE&equityPaymentAmount=SOME_UNSIGNED%20DOUBLE_VALUE&equityPaymentInterval=SOME_STRING_VALUE&preservePaidInFull=SOME_BOOLEAN_VALUE&surchargePercentage=SOME_UNSIGNED%20DOUBLE_VALUE&joinFeeEnabled=SOME_BOOLEAN_VALUE&joinFeeAmount=SOME_UNSIGNED%20DOUBLE_VALUE&membershipFeeEnabled=SOME_BOOLEAN_VALUE&membershipFeeAmount=SOME_UNSIGNED%20DOUBLE_VALUE&membershipFeeInterval=SOME_STRING_VALUE'
<?xml version='1.1' encoding='UTF-8'?> <root> <row membershipProfile="Homegroup Membership" isPrivate="false" isDefault="true" automaticDiscount="% Discount" priceLevel="1 Price Level" equityEnabled="true" maxEquity="0.0000" equityMode="standard" equityPaymentAmount="1.0000" equityPaymentInterval="monthly" surchargePercent="0" membershipFeeEnabled="false" membershipFeeAmount="0.0000" membershipFeeInterval="monthly" joinFeeEnabled="true" joinFeeAmount="5.0000"/> </root>
| Endpoint HTTP Method | Endpoint |
|---|---|
| GET | /storeGroupProfileDetail |
A merchant must be running one of the following CATAPULT versions at their store location(s) in order to receive data from this endpoint:
This endpoint does not allow you to create new Store Groups or edit existing Store Groups. These actions must be performed in CATAPULT Web Office.
The CSV response for this endpoint is less useful than JSON or XML, as the Member Stores property (i.e., the stores within the Store Group) contains nested data. Most text editors fail to parse and display this data correctly. Therefore, it's recommended to use the JSON or XML response output for this endpoint.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| storeGroupSearchName | string <= 30 characters Purpose of Parameter This parameter allows you to specify a Store Group name so the returned results will be scoped to that group. In turn, this allows you to view the Store Records within the specified Store Group. Using this Parameter
|
| StoreGroupName | string <= 30 characters The name of the Store Group, as entered in CATAPULT Web Office. | ||||
Array of objects The Store Records that have been placed within the Store Group, which is done in CATAPULT Web Office. | |||||
Array
| |||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/storeGroupProfileDetail?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&storeGroupSearchName=SOME_STRING_VALUE'
<?xml version='1.1' encoding='UTF-8'?> <root> <row StoreGroupName="Only Urban Market HQ"> <memberStores StoreName="Urban Market HQ" StoreNumber="HQ"/> </row> <row StoreGroupName="HQ and RS1"> <memberStores StoreName="Urban Market HQ" StoreNumber="HQ"/> <memberStores StoreName="Urban Market RS1" StoreNumber="RS1"/> </row> <row StoreGroupName="RS Only"> <memberStores StoreName="Urban Market RS1" StoreNumber="RS1"/> <memberStores StoreName="Suburban Market RS2" StoreNumber="RS2"/> <memberStores StoreName="Country Market RS3" StoreNumber="RS3"/> <memberStores StoreName="City Market RS4" StoreNumber="RS4"/> </row> <row StoreGroupName="Active Store(s)"> <memberStores StoreName="Urban Market HQ" StoreNumber="HQ"/> <memberStores StoreName="Urban Market RS1" StoreNumber="RS1"/> <memberStores StoreName="Suburban Market RS2" StoreNumber="RS2"/> <memberStores StoreName="Country Market RS3" StoreNumber="RS3"/> <memberStores StoreName="City Market RS4" StoreNumber="RS4"/> </row> </root>
Available in CATAPULT version 5.6.97 and greater, all PUT Purchase Order endpoints provide a means to query, create, or update non-committed purchase order worksheets. Likewise, available with CATAPULT version 5.6.117 and greater, the GET endpoint provides a means to obtain order details about committed and non-committed worksheets. Operations will respond with a simple confirmation on success or provide details on the cause and related item(s) on failure. You may optionally use the endpoints to submit a new worksheet, modify the inventory records and details associated with that worksheet, and finally commit the worksheet all outside of Web Office. Endpoints conditionally support both Conventional and ReceiveOnly purchase orders; see parameters for specifics.
Purchase Order Header enables you to update the status of a purchase order worksheet. Use PUT to pass worksheet parameters to the server. Use the CREATE action(s) to start a new order, the EDIT action to modify an order, the SUBMIT action to process the worksheet into to the Ordered state, and COMMIT action to finalize the worksheet and close the order. Worksheets must have an invoiceNumber to allow commits. In CATAPULT version 5.6.117 and newer, the purchaseOrderId is returned upon a successful call to this endpoint.
Purchase Order Items enables you to modify specific rows and item associations on a particular worksheet. Use PUT to add/update/remove worksheet items.
This endpoint is used to create new Conventional or Receive-Only Purchase Orders in Web Office.
Action=N to create a new conventional worksheet.Action=R to create a new receive-only worksheet.A purchaseOrderId is returned when this endpoint is used successfully.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| Action required | string <= 1 characters Example: Action=N Type of Action to be Performed:
|
| supplier | string <= 10 characters
|
| receivingStore required | string <= 4 characters
|
| receivingStoreHq | boolean Example: receivingStoreHq=0
|
curl --request PUT \ --url 'https://accountid.catapultweboffice.com/api/purchaseOrderHeader?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&Action=N&supplier=SOME_STRING_VALUE&receivingStore=SOME_STRING_VALUE&receivingStoreHq=0'
"{\n \"code\": 4,\n \"message\":\"RAISERROR executed: User not authorized to submit Purchase Orders\\n\"\n}"A purchaseOrderId is returned when this endpoint is used successfully.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| purchaseOrderId required | string <= 32 characters Example: purchaseOrderId=31428-5083
|
| Action required | string <= 1 characters Example: Action=E Type of Action to be Performed:
|
| invoiceNumber required | string <= 30 characters
|
| alias | string <= 40 characters The worksheet alias. |
| DoNotSubmitViaGateway | boolean
|
| orderingEmployee | string <= 9 characters
|
| receivingEmployee | string <= 9 characters
|
| receivingStoreHq | boolean
|
| receiveDate | date
|
| invoiceDate | date
|
| terms | string <= 30 characters
|
| neededByDate | date
|
| cancelByDate | date
|
| shipAfterDate | date
|
| shipVia | string <= 30 characters Conventional purchase orders only. |
| referenceNumber | string <= 30 characters |
| trackingNumber | string <= 50 characters |
| freightOnBoard | string <= 20 characters Example: freightOnBoard=FOB Townsville, NY Location at which ordered freight changes hands over from the supplier to the purchaser. |
| freightCharges | double Example: freightCharges=52.99 Freight/shipping amount associated with delivery of purchase order. |
| miscellaneousCharges | double Any additional charge amount associated with purchase order. |
| discountAmount | double Total discounted amount associated with purchase order. Only accepts negative values. |
| tax | double Total amount of tax for items on purchase order. |
| exciseTax | double Total excise tax amount applied on purchase order for margin accuracy, where applicable. |
| exciseSupplier | string <= 10 characters
|
| expectedPurchaseTotal | double Anticipated total amount for purchase order prior shipping and receiving. |
| exchangeRate | decimal Example: exchangeRate=.90 Currency exchange rate for purchase orders received from foreign supplier. |
| remarks | string <= 254 characters Remarks/memo field for purchase order. |
| printRemarksOnPo | boolean
|
| printRemarksReceive | boolean
|
| distributeFreight | boolean
|
curl --request PUT \ --url 'https://accountid.catapultweboffice.com/api/purchaseOrderHeader?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&purchaseOrderId=31428-5083&Action=E&invoiceNumber=SOME_STRING_VALUE&alias=SOME_STRING_VALUE&DoNotSubmitViaGateway=SOME_BOOLEAN_VALUE&orderingEmployee=SOME_STRING_VALUE&receivingEmployee=SOME_STRING_VALUE&receivingStoreHq=SOME_BOOLEAN_VALUE&receiveDate=SOME_DATE_VALUE&invoiceDate=SOME_DATE_VALUE&terms=SOME_STRING_VALUE&neededByDate=SOME_DATE_VALUE&cancelByDate=SOME_DATE_VALUE&shipAfterDate=SOME_DATE_VALUE&shipVia=SOME_STRING_VALUE&referenceNumber=SOME_STRING_VALUE&trackingNumber=SOME_STRING_VALUE&freightOnBoard=FOB%20Townsville%2C%20NY&freightCharges=52.99&miscellaneousCharges=SOME_DOUBLE_VALUE&discountAmount=SOME_DOUBLE_VALUE&tax=SOME_DOUBLE_VALUE&exciseTax=SOME_DOUBLE_VALUE&exciseSupplier=SOME_STRING_VALUE&expectedPurchaseTotal=SOME_DOUBLE_VALUE&exchangeRate=.90&remarks=SOME_STRING_VALUE&printRemarksOnPo=SOME_BOOLEAN_VALUE&printRemarksReceive=SOME_BOOLEAN_VALUE&distributeFreight=SOME_BOOLEAN_VALUE'
"{\n \"code\": 4,\n \"message\":\"RAISERROR executed: User not authorized to submit Purchase Orders\\n\"\n}"This endpoint is used submit or commit Conventional or Receive-Only Purchase Orders in Web Office.
Action=S to submitAction=C to commit.A purchaseOrderId is returned when this endpoint is used successfully.
Worksheet must already have an invoiceNumber before it can be committed.
With CATAPULT 5.8.157 and newer, this endpoint allows for worksheets to be committed that contain items with a positive, zero, or negative Receive Quantity.
{
"code":4,
"message": "RAISERROR executed: worksheet 3678-1000 has no items received.\n"
}
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| purchaseOrderId required | string <= 32 characters Example: purchaseOrderId=31428-5083
|
| Action required | string <= 2 characters Example: Action=S Type of Action to be Performed:
|
| DoNotSubmitViaGateway | boolean
|
| AllowCommitWithNoReceivedItems | boolean Confirms if purchase orders with a
|
curl --request PUT \ --url 'https://accountid.catapultweboffice.com/api/purchaseOrderHeader?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&purchaseOrderId=31428-5083&Action=S&DoNotSubmitViaGateway=SOME_BOOLEAN_VALUE&AllowCommitWithNoReceivedItems=SOME_BOOLEAN_VALUE'
"{\n \"code\": 4,\n \"message\":\"RAISERROR executed: User not authorized to submit Purchase Orders\\n\"\n}"| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| purchaseOrderId required | string <= 32 characters Example: purchaseOrderId=31428-5083
|
List of purchase order line items to modify.
| action required | string <= 1 characters Enum: "A" "D" Type of Action to be Performed:
|
| supplierUnitId | string <= 15 characters
|
| itemId | string <= 14 characters Determines the line item to add/update/delete. When an |
| orderQuantity | number <double>
|
| shippedQuantity | number <double>
|
| receivedQuantity | number <double>
|
| distributeDiscountsFlag | boolean Enum: 0 1 Defaults to |
| verifiedFlag | boolean Enum: 0 1 Defaults to |
| receivedFlag | boolean Enum: 0 1 Defaults to Only valid for conventional purchase order worksheets with ORDERED status. |
| applyExiseTaxFlag | boolean Enum: 0 1 Defaults to |
| backOrderedFlag | boolean Enum: 0 1 Defaults to Only valid for conventional purchase order worksheets with ORDERED status. |
| totalAllowances | number <double> Calculates the package and unit values for allowances. Valid for either purchase order worksheet type with PENDING or ORDERED status. |
| totalCharges | number <double> Calculates the package and unit values for charges. Valid for either purchase order worksheet type with PENDING or ORDERED status. |
| totalCost | number <double> Total cost of a worksheet item, which is comprised of the total ordered quantity of the item on the Purchase Order and the calculated cost of the item. When the totalCost field is omitted or null, an item's total cost is calculated using catalog costs, cost change worksheets, and last cost. Updates the Ordered Total Cost value for purchase order worksheets with a PENDING status. |
| itemTagQuantity | string <= 3 characters Number of Item Tags to print. |
| signQuantity | string <= 1 characters Number of Signs to print. |
| shelfTagQuantity | string <= 1 characters Number of Shelf Labels to print. |
[- {
- "action": "A",
- "supplierUnitId": "Supp Catalog #7",
- "orderQuantity": "55"
}
]{"code":2,"message":"Invalid API Key."} Use the purchaseOrderDetail endpoint with GET requests to retrieve information on committed or non-committed Purchase Order worksheets, either in bulk or filtered for a particular date range.
Limit results by committed startdate and/or enddate if requesting committed (type = 0), or by order date if requesting submitted (type = 1). If no type is specified, it will default to 0 (i.e., committed).
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| startdate required | string <date-time> Example: startdate=2015-03-25T12:00:00 This field contains the start date. Only worksheets which were committed or submitted (depending on the value passed to |
| enddate | string <date-time> Example: enddate=2015-03-25T12:00:00 This field contains the end date. Only worksheets which were committed or submitted (depending on the value passed to |
| Type | string Example: Type=1 This parameter allows you to specify what status of Purchase Order worksheets are returned with the query. There are three status Type parameters available:
|
object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/purchaseOrderDetail?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&startdate=2015-03-25T12%3A00%3A00&enddate=2015-03-25T12%3A00%3A00&Type=1'
<?xml version="1.1" encoding='UTF-8'?> <root> <row worksheetName="EXAMPLE-008813-HQ-HQ", worksheetAlias="EXAMPLE", worksheetVendorCompany="EXAMPLE VENDOR", worksheetVendorCode="EVC", worksheetSubmittedDate="2019-01-10 08:45:08.961834", worksheetPurchaseEmpFirstName="Bob", worksheetPurchaseEmpLastName="Smith", worksheetPurchaseEmpNumber="123", worksheetOrderNumber="8813", worksheetTerms="Net 30", worksheetReceivingStoreName="Main Store 123", worksheetReceivingStoreNumber="7504", worksheetSubmitViaGateway="0", worksheetReceivingEmpFirstName="Sam", worksheetReceivingEmpLastName="Smith", worksheetReceivingEmpNumber="456", worksheetReferenceNumber="7714", worksheetTrackingNumber="1234", worksheetInvoiceNumber="4567", worksheetInvoiceDate="2019-01-10 08:45:08.961834", worksheetFreightOnBoard="FOB - Boone NC", worksheetExciseTax="0.0000", worksheetExciseTaxAuthority="EXAMPLE", worksheetPurchaseTotal="0.0000", worksheetFreightCharges="0.0000", worksheetDistributeFreight="0", worksheetMiscCharges="0.0000", worksheetDiscount="-2.0000", worksheetTax="0.0000", worksheetExpectedPurchaseTotal="0.0000", worksheetInvoiceTotal="-2.000000", worksheetExchangeRate="0.000" worksheetSupplierUnitID="2", worksheetSupplierUnitDescription="BALE-3", worksheetQtyInOrderUnit="1.000", worksheetItemID="4011", worksheetItemName="Yellow Bananas", worksheetItemReceiptAlias="BANANAS", worksheetItemSize="8 OZ" worksheetItemBrandName="USDA PRODUCE", worksheetItemPricingDivider="1", worksheetItemBasePrice="0.0000", worksheetItemDepartmentName="Produce", worksheetItemShelfLocation="Produce Display", worksheetItemSuggestedRetail="0.0000", worksheetItemGlobalPF1="EXAMPLE", worksheetItemGlobalPF2="EXAMPLE", worksheetItemGlobalPF3="EXAMPLE", worksheetItemGlobalPF4="EXAMPLE", worksheetItemGlobalPF5="EXAMPLE", worksheetItemGlobalPF6="EXAMPLE", worksheetItemGlobalPF7="EXAMPLE", worksheetItemGlobalPF8="EXAMPLE", worksheetOrderedQuantity="1.000", worksheetShippedQuantity="1.000000", worksheetReceivedQuantity="1.000", worksheetItemVerified="0", worksheetItemOrderCost="0.0000", worksheetItemInvoiceCost="0.000000", worksheetItemPkgTempDiscount="0.0000", worksheetItemPkgAllowance="0.0000", worksheetItemPkgCharges="0.0000", worksheetItemUnitTempDiscount="0.0000", worksheetItemUnitAllowance="0.0000", worksheetItemUnitCharges="0.0000", worksheetItemTotalTempDiscount="0.0000", worksheetItemTotalAllowance="0.0000", worksheetItemTotalCharges="0.0000", worksheetItemBackordered="0", worksheetItemReceived="0", worksheetItemExciseApplied="0", worksheetItemDiscountApplied="0" existingWorksheetId="113416-1000"/> </root>
Available with CATAPULT 5.6.117+ The Summary Financials endpoint allows you to perform a HTTP GET query to obtain summarized financial data over a date range for a specific store or list of stores. The data returned will be all data collected and summarized for a 24-hour period for the specified store(s).
The summarized data includes:
Through a query, this endpoint allows you to Get summarized financial data for a store - or list of stores - in a specified date range. The query is comprised of three parameters:
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| startDate | string <date> Example: startDate=2022-01-31 11:58:18.541085 The start of the date range to query for Summary Financial Data. If no |
| endDate | string <date> Example: endDate=2022-10-31 11:58:18.541085 The end of the date range to query for Summary Financial Data. If no |
| stores | string Example: stores=HQ:RS1:RS2 The Store ID to query for Summary Financial Data. The Store ID as it is entered in CATAPULT Web Office must be used. If no |
object | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/summaryFinancialData?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&startDate=2022-01-31%2011%3A58%3A18.541085&endDate=2022-10-31%2011%3A58%3A18.541085&stores=HQ%3ARS1%3ARS2'
<?xml version='1.1' encoding='UTF-8'?> <root> <row groupDate="2023-09-05" storeID="RS1" storeName="Main Store 123" dataType="Totals" description="Gross Sales" amount="746.4700" quantity="9.0000" omitFromSales="0" foreignCurrencyExchangeRate="0.000" foreignCurrencyAmount="0.0000" </root>
Available with CATAPULT 5.6.99+. The Summary Item Data endpoint allows you to perform a GET query to obtain summarized transaction data for Items OR Departments over a date range for a specific store.
The summarized Department data includes:
The summarized Item data includes:
Through a query, this endpoint allows you to GET summarized transaction data from Departments OR Items in a specified date range. The query is comprised of five parameters:
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| startDate required | string <date> Example: startDate=2022-01-31 11:58:18.541085 The start of the date range to query for summary item data. |
| endDate | string <date> Example: endDate=2022-10-31 11:58:18.541085 The end of the date range to query for summary item data. If |
| stores | string Example: stores=682 (Single Store ID) OR 682:683:684 (Multiple Store IDs) The Store ID of the store where the desired summary item data is located. This parameter can be a single Store ID or multiple Store IDs separated by a colon. If no Store ID is established as the parameter, the ID of the store where the API is being executed will be used. |
| Type | string Example: Type=0 or 1 This parameter - which is 0 or 1 - allows you to specify what type of summarized item data is returned. Entering a parameter of 0 will return summarized Department sales data. Entering a parameter of 1 will return summarized Item net sales data. |
object | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/summaryItemData?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&startDate=2022-01-31%2011%3A58%3A18.541085&endDate=2022-10-31%2011%3A58%3A18.541085&stores=682%20(Single%20Store%20ID)%20OR%20682%3A683%3A684%20(Multiple%20Store%20IDs)&Type=0%20or%201'
<?xml version='1.1' encoding='UTF-8'?> <root> summaryDepartmentNumber="140" summaryDepartmentName="ALCOHOL" summaryQtySold="13.000000" summaryExtCost="76.509900" summaryNetSales="105.290000" summaryStoreNumber="CA" summaryStoreName="California Ave Store" omitFromSales="0" </root> OR <root> summaryItemID="000000000000" summaryItemDescription="STAN BREAD COUNTRY WHITE 28oz" summaryQtySold="6.000000" summaryExtCost="21.900000" summaryNetSales="31.080000" summaryStoreNumber="CA" summaryStoreName="California Ave Store" omitFromSales="1" </root>
This endpoint allows you to retrieve information associated with the suppliers/vendors stored in your database. You may optionally pass a specific supplier code in the request operation to limit the server response to information on a single record Information for all available supplier records are returned if a unique supplier number is not specified.
| apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
|
| venCode | string <= 254 characters Example: venCode=42 Optionally provide a unique supplier code to return information specific to that record. Inalvid or unrecognized supplier codes will result in an error. |
| supplierCode | string <= 10 characters The unique supplier identifier. See also: Supplier ID. |
| supplierName | string <= 25 characters The supplier name. See also: Supplier Name. |
| supplierContact | string <= 25 characters Name of Contact #1 for the supplier. See also: Supplier Contacts. |
| supplierMemo | string <= 254 characters Memo field for the supplier record. |
| supplierTerms | string <= 12 characters Returns the Terms Profile associated with the supplier record, where applicable. See also: Supplier Terms. |
| supplierOrdersAddressLine1 | string First line of the street address used for supplier orders. See also: Supplier Addresses. |
| supplierOrdersAddressLine2 | string Second line of the street address used for supplier orders. |
| supplierOrdersAddressCity | string <= 20 characters Name of the city associated with the supplier order address. |
| supplierOrdersAddressState | string <= 2 characters State or province associated with the supplier order address. |
| supplierOrdersAddressZip | string <= 15 characters Postal code of the street address used for supplier orders. |
| supplierOrdersAddressCountry | string <= 2 characters Country associated with the supplier order address. The Country will be returned as a two-character abbreviation, and will only be retuned with CATAPULT versions 5.6.119 and newer. |
| supplierReturnsAddressLine1 | string First line of the street address used for supplier returns. |
| supplierReturnsAddressLine2 | string Second line of the street address used for supplier returns. |
| supplierReturnsAddressCity | string <= 20 characters Name of the city associated with the supplier return address. |
| supplierReturnsAddressState | string <= 2 characters State or province associated with the supplier return address. |
| supplierReturnsAddressZip | string <= 15 characters Postal code of the street address used for supplier returns. |
| supplierReturnsAddressCountry | string <= 2 characters Country associated with the supplier return address. The Country will be returned as a two-character abbreviation, and will only be retuned with CATAPULT versions 5.6.119 and newer. |
| supplierOrdersPhoneNumber | string <= 14 characters Phone number used for supplier orders. See also: Supplier Phone Numbers. |
| supplierReturnsPhoneNumber | string <= 14 characters Phone number used for supplier returns. |
| supplierOrdersEmailAddress | string <= 254 characters E-mail address used for supplier orders. See also: Supplier E-mail Addresses. |
| supplierReturnsEmailAddress | string <= 254 characters E-mail address used for supplier returns. |
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/supplierDetail?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&venCode=42'
[- {
- "supplierCode": "1989",
- "supplierName": "InGen",
- "supplierContact": "Hammond",
- "supplierMemo": "Spare no expense!",
- "supplierTerms": "string",
- "supplierOrdersAddressLine1": "string",
- "supplierOrdersAddressLine2": "string",
- "supplierOrdersAddressCity": "Palo Alto",
- "supplierOrdersAddressState": "CA",
- "supplierOrdersAddressZip": "94301",
- "supplierOrdersAddressCountry": "US",
- "supplierReturnsAddressLine1": "string",
- "supplierReturnsAddressLine2": "string",
- "supplierReturnsAddressCity": "string",
- "supplierReturnsAddressState": "st",
- "supplierReturnsAddressZip": "string",
- "supplierReturnsAddressCountry": "US",
- "supplierOrdersPhoneNumber": "string",
- "supplierReturnsPhoneNumber": "string",
- "supplierOrdersEmailAddress": "string",
- "supplierReturnsEmailAddress": "string"
}
]/TransactionJournal endpoint enables you to obtain all available T-Log details and reporting data - via a GET method - for a range of transaction upload times. This transaction data can be for all customers or specific customers. | apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| startTime required | string <date-time> Example: startTime=2015-03-25T12:00:00 This parameter contains the start time. Only transactions which were inserted into the HQ T-Log database after this will be included in the output. This time should be in the following format: 2015-03-25T12:00:00 (ISO 8601). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| endTime required | string <date-time> Example: endTime=2015-03-25T16:00:00 This parameter contains the end time. Only transactions which were inserted into the HQ T-Log database before this will be included in the output. This time should be in the following format: 2015-03-25T12:00:00 (ISO 8601). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| CustomerID | string <= 16 characters Example: CustomerID=4000000123456789 This parameter - available with CATAPULT 5.7.133 and newer - allows you to specify a Customer ID that you want to filter associated Transaction Journal information for.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TransactionStatus | integer Example: TransactionStatus=10 Introduction
Available Transaction StatusesCompleted Transactions
Pending Transactions
Note that some of the Pending Transactions listed above may not be applicable as a query parameter, as they may not return any associated data. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| AllVoid | boolean Example: AllVoid=1 This parameter - available with CATAPULT 5.7.149 and newer - allows you to filter for "All Void" transactions using the following options:
If this query parameter is used but neither option is specified, TIP: This parameter can be used in conjunction with the |
object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/TransactionJournal?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&startTime=2015-03-25T12%3A00%3A00&endTime=2015-03-25T16%3A00%3A00&CustomerID=4000000123456789&TransactionStatus=10&AllVoid=1'
<?xml version="1.0" encoding="windows-1252" ?> <root> <row TRN_PK="18048", TRN_CPK="1002", TRN_STO_FK="3", TRN_STO_CFK="1000", TRN_StartTime="2016-01-06 10:37:20.870", TRN_EndTime="2016-01-06 10:37:20.870", TRN_ReceiptNumber="16029", TRN_Type="0", TRN_EMP_FK="4", TRN_EMP_CFK="1000", TRN_SequenceNumber="16029", TRN_TCF_FK="2", TRN_TCF_CFK="1002", TRN_CUS_FK="2", TRN_CUS_CFK="1000", TRN_AllVoid="0", TRN_UploadTime="2016-01-06 10:37:20.870", TRN_Status="0", TCF_Description="Terminal 1", TCF_Number="1", TCF_TerminalId="07325795", EMP_Number="99", EMP_FirstName="Self", EMP_LastName="Checkout", CUS_AccountNum="4012345678900", CUS_FirstName="John", CUS_LastName="Smith", CUS_Company="ECRS", TLI_PK="1", TLI_LIT_FK="54", TLI_StartTime="2016-01-06 10:37:20.870", TLI_EndTime="2016-01-06 10:37:20.870", TLI_Amount="1.29", TLI_ReceiptAlias="Widget", TLI_Quantity="1.000", TLI_ScanCode="212345678901", TLI_TaxDifference="1.29", ExtendedPrice="1.29", ExtendedBasePrice="1.29", CTI_CMB_FK=0, CTI_CMB_CFK=0, CTI_DiscountAmount=null, CTI_SellingAmount=null, CTI_TLI_FK_Item="1", CMB_Name="string", CPT_Void="0", DLI_TypeDollar=true, DLI_TypePercent=true, DLI_LineItem="string", DLI_DIS_FK=0, DLI_Void="0", DLI_DIS_CFK=0, DLI_ApplyBeforeTax="0", DLI_Return="0", DLI_INV_FK="1", DLI_INV_CFK="1000", DLI_Automatic="0", DLI_ASC_FK="1", DLI_ASC_CFK="1000", DLI_InventoryLineItem="3", DLI_ReportConsolidated="0", ITI_AverageCost="1.29", ITI_EntryMethod="1", ITI_Return="0", ITI_INV_FK="1", ITI_Void=true, ITI_INV_CFK="1000", ITI_SellingPrice="1.29", ITI_BasePrice="string", ITI_ASC_FK="1", ITI_ASC_CFK="1000", ITI_ASCQuantity="1.00", ITI_PriceLevel="1", ITI_DiscountPriceOverride="1", DPT_Name="Grocery", DPT_Number="99", DPT_OmitFromSales="0", TTI_TAX_FK="1000", TTI_TAX_CFK="1000", TTI_ReturnTax="0", TTI_TaxableAmount="1.29", NTI_TEN_FK="1", NTI_TEN_CFK="1000", NTI_AuthorizationCode="string", TRN_ETI_AccountName="string", TRN_ETI_AccountNumber="stri", TRN_ETI_CardType="strin", TRN_ETI_TenderAmount="1.29", NTI_TenderType="2", NTI_Amount="1.2900", NTI_Void="0", NTI_SafeDrop="1", NTI_Loan="1", NTI_FCExchangeRate="0.76", NTI_FCTenderAmount="1.29", NTI_ForeignCurrency="0", TEN_PK="1", TEN_CPK="1000", TEN_Description="Cash", CTI_BonusAmount="1.29", CTI_EntryMethod="1", CTI_Void="0", CTI_ManufacturerCode="string", CTI_FamilyCode="string", CTI_CouponCode="string", SalespersonFK="1", SalespersonCFK="1000", GCT_Void="0", LTN_Start1="string", LTN_End1="string", LTN_Start2="string", LTN_End2="string", LTN_Start3="string", LTN_End3="string", LTN_Start4="string", LTN_End4="string", LTN_Start5="string", LTN_End5="string", LTN_Start6="string", LTN_End6="string", LTN_AddtlRanges="string", TRN_Total="string", TRN_NetSales="string", TRN_ItemQuantity="string", TRN_ItemCorrects="string", TRN_Negatives="string", StoreNumber="string", TRN_ETI_Approval="string", TRN_ETI_Reference="string", TRN_ETI_RemainingBalance="string", TRN_ETI_CvvResult="s", TRN_ETI_AvsResult="s", TRN_ETI_Bin="string", TRN_ETI_AuthorizationDate="string", TRN_ETI_AuthorizationTime="string", TRN_ETI_AuthorizationType="string", TRN_ETI_AuthorizationStan="string", CTI_ApplyToFoodstamps=true, CTI_ApplyToFSA=true, CTI_CouponBarcode="string", CTI_ProviderId="string", CTI_FaceValue="string", NTI_CHG_FK=0, NTI_CHG_CFK=0, NTI_TLI_CashBack=0, TLI_Divider=0, ITI_BasePriceDivider=0, ITI_PL1BasePriceDivider=0, ITI_WeightEntryMethod=0, ITI_TareEntryMethod=0, ITI_Pl1BasePrice="string", ITI_Pl1PromptForPrice=true, ITI_TareWeight="string", ITI_EmbeddedPrice="string", ITI_SpecialPricing=true, ITI_Variation=0, ITI_LinkType=0, ITI_ModQuantity="string", ITI_ModPrice="string", ITI_EmbeddedDiscount="string", ITI_FSA=true, ITI_SNAP=true, ITI_WeightUnit=0, PromptName="string", PromptResponse="string", PromptItem=0, CTI_Expiration="string", ITI_MarkdownBarCode="string", ITI_TLI_LinkLineItem=0, ComboTotalLoyaltyProgram="string", ComboTotalStoreCouponName="string", CTH_Voided=true, CTH_EarnedLoyalty="string", LoyaltyTransactionLoyaltyProgram="string", LoyaltyTransactionStoreCouponName="string", LTI_Expiring="string", LTI_ExpirationDate="string", CTI_ComboTotalLineItem=0, ComboOmitFromSales=true, CMB_ApplyAfterTaxes=true, STI_Status=0, EMD_SequenceNumber=0, EMD_TransactionSequenceNumber=0, EMD_Time="string", EMD_Tender="string", EMD_TLI_FK=0, EMD_5A="string", EMD_82="string", EMD_84="string", EMD_9A="string", EMD_9F21="string", EMD_9C="string", EMD_5F34="string", EMD_5F2A="string", EMD_9F02="string", EMD_9F03="string", EMD_9F08="string", EMD_9F09="string", EMD_9F1A="string", EMD_9F33="string", EMD_9F34="string", EMD_9F35="string", EMD_9F36="string", EMD_9F37="string", EMD_9F0D="string", EMD_9F0E="string", EMD_9F0F="string", EMD_TACD="string", EMD_TACO="string", EMD_TACF="string", EMD_95_1GEN="string", EMD_9F10_1GEN="string", EMD_9F26_1GEN="string", EMD_9F27_1GEN="string", EMD_91="string", EMD_95_2GEN="string", EMD_9F26_2GEN="string", EMD_9F27_2GEN="string", EMD_8A="string", EMD_9B="string", EMD_AppName="string", EMD_CardEntryMethod="string", EMD_CardVerMethod="string", EMD_Mode="string", EMD_9F06="string", ITI_RetailAccountingPrice="string", ITI_RetailAccountingReportCode="string", GCT_GCP_FK=0, GCT_GCP_CFK=0, GCT_Code="string", GCT_Account="string", GCT_SendDate="string", GCT_Print=true, GCT_RecipientEmail="string", GCT_RecipientPhoneNumber="string", GCT_RecipientName="string", GCT_SenderName="string", TRN_WTR_FK=0, TRN_WTR_CFK=0, TRN_ETI_ExpDate="string", TRN_ETI_CardSwiped=true, TRN_ETI_Processor="string", BaseItemID="4011", PriceChangeWorksheetName="Weekly Sale", PriceChangeWrksheetSavings="1.9900", PriceChangeWrksheetLineSavings="3.9800", PPT_Void="1"/> </root>