Download OpenAPI specification:Download
The Catapult Passport API Suite describes REST-like endpoints for adding, updating, or deleting data from a CATAPULT® system.
Authentication
X-ECRS-APIKEY
request header, instead of the query string, wherever possible. While it is recommended that calls be made to the HQ and filtered with available parameters, authentication for calls to non-HQ Web Office addresses are possible. These require 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.
Content Negotiation & Media Types
Catapult Passport API operations support these response content-types in the request accept:
header:
API response content-type is determined by agent-driven, or client-based, content negotiation. Response content-type will default to XML data format if the incoming request header does not describe a specific accept value. If Accept header text/csv is passed, the resulting CSV will be single quote (') qualified.
CSV Request Body Formatting Requirements
XML and JSON data formats are unconditionally accepted by all Catapult Passport API endpoints.
The CSV data format is likewise accepted by all endpoints, provided the incoming request satisfies the necessary formatting criteria:
Content-Type
with value "text/csv" must be included in the request.,
.'
character placed after a row or column delimiter will start the next row or column as quoted.\
character.Data Type Requirements
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.50
Network Connectivity Requirements
Performing 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.
Licensing Requirements
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:
GET
methods (e.g., Transaction Journal, Items, Dynamic Promotions, etc.). Endpoints that support a variety of methods - such as Customers and Maintenance 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. 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.
Troubleshooting
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)
/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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
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_AccountNumber="4012345678900", CUS_FirstName="John", CUS_LastName="Smith", CUS_Company="ECRS", TLI_PK="1", TLI_LIT_FK="1", 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"/> </root>
CATAPULT Passport API offers three endpoints that allow you to obtain data for inventory items. For each endpoint, the data is obtained via a GET request. The three "Items" endpoints are:
See the Detailed Search, View All, and Deli Item Data sections below for more information on each endpoint.
storeNumber
is correctly associated with an applicable Zone profile.apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
itemSearch | string <= 32 characters Example: itemSearch=401234567890
|
groupSearch | string <= 30 characters Example: groupSearch=Bakery
|
storeNumber required | string <= 10 characters Example: storeNumber=123
|
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 with CATAPULT version 5.7.123 and newer, this field 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 | boolean Available with CATAPULT version 5.7.126 and newer, this field 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:
|
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"
}
]
/itemDetail
- endpoint should be used.apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
/labelDataExport
labelDataExport
endpoint is performed, a "snapshot" of data is created, and this snapshot will be for the all of the available - and specified - inventory data. This snapshot is created so that you can make as many requests as needed to get all of your (paged) data without the system having to obtain and build the data repeatedly. since
Parameter; any subsequent requests for a specific Key/Store/Since combination will pull from the snapshot that was created. In order to use the /labelDataExport
endpoint, the requirements detailed below must be met:
Any user who calls the /labelDataExport
endpoint must meet the following authentication requirements:
Should the user calling the endpoint not meet any of the authentication requirements, a 403
"Error" response will be returned.
Two Advanced Settings must be applied in CATAPULT Web Office to allow a user to call the /labelDataExport
endpoint:
Advanced Setting #1
Advanced Setting #2
IMPORTANT - This Advanced Setting should ONLY be Applied with CATAPULT Versions 5.7.141 - 5.7.152. For users on CATAPULT 5.7.153+, see the Create & Assign Third Party Label Service to Desired "Deli Items" requirement below.
/labelDataExport
request is performed, all items in the store's CATAPULT database will be returned. To limit the returned results to only applicable "deli items", a Global Inventory Filter must be created and saved. For more information on applying Advanced Settings in CATAPULT Web Office, click here to view the HOW TO: Add, Edit, and Delete an Advanced Setting article in the ECRS Online Manual.
CONTEXT
/labelDataExport
endpoint must create and assign a "Label" Third Party Service Profile to the desired "deli items" in CATAPULT Web Office. "Deli items" are those that are returned from the Global Inventory Filter created in Requirement #2 above. /labelDataExport
endpoint before CATAPULT 5.7.153+, then the "LabelDataExportFilterName" will still be in your system. This Advanced Setting is no longer required to send deli item data to third party services. INSTRUCTIONS
/labelDataExport
endpoint is called a URL will be used. This URL must use the Account ID of the Headquarters store in the enterprise. storeNumber
query parameter.apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
page required | integer non-empty Example: page=1
|
storeNumber required | string <= 4 characters Example: storeNumber=RS26 This parameter requires that you specify the Store ID - as entered on the Store Record in CATAPULT Web Office - of the store that you want to view results for. When a Store ID is specified, all of the applicable inventory data will be exported from the CATAPULT database at a chosen store. |
since | string <date-time> Example: since=2024-05-31T12:00:00 This parameter allows you to specify a date and time, and the returned results will be items modified since the specified date and time.
|
pageSize | integer [ 1 .. 25000 ] characters Example: pageSize=750 This parameter allows you to optionally set the number of returned items per page of results. If this parameter is not specificed, 500 items will be returned on a single result set page by default. Note that higher pageSize values (e.g., 15000) will result in extended response times. In some cases, if there is too much data, and the specified pageSize is too large, then the request might time out and not complete. |
object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
curl --request GET \ --url 'https://accountid.catapultweboffice.com/api/labelDataExport?apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0&page=1&storeNumber=RS26&since=2024-05-31T12%3A00%3A00&pageSize=750'
<?xml version='1.1' encoding='UTF-8'?> <root> <row Dept="23" PLU="99515" Price="2.9900" PromoPrice="1.9900" NetWt="16 OZ" ShelfLife="5" Ingredients="Red Potatoes, Dill, Sour Cream, Mayonnaise, Salt, Pepper, Sugar" Description1="string" Description2="string" Description3="string" Description4="string" UserAssigned1="string" UserAssigned2="string" UserAssigned3="string" UserAssigned4="string" UserAssigned5="5" UserAssigned6="6" UserAssigned7="7" ItemFixedWeight="3" Scaleable="yes" Tare="0.250" CategoryNum="12" Logo1="1" Logo2="2" Logo3="3" Logo4="4" Logo5="5" CountryOfOrigin="USA" Brand="Urban Market Deli" SubDepartment="Prepared Foods" Category="Cold Items" SubCategory="Weighted Cold Items" Variety="House-Made"/> </root>
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 Enum: "type%1dname%1dbirthdate" "none" Example: dependentsList=dependentsList=Friend\John\2022-01-05\Pet\William\ List of dependents and their attributes (type, name, birthdate; birthDate is optional). The records in this list are delimited by ascii code RS (30 or hex 1e). The fields in the record are delimited by ascii code GS(29 or hex 1d). Added in 5.5.4.216 or better.
Supply dependent attributes
|
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=dependentsList%3DFriend%5CJohn%5C2022-01-05%5CPet%5CWilliam%5C&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>
Available with CATAPULT 5.6.116+.
The Dynamic Promotion Details endpoint allows you to query and GET details about active Dynamic Promotions within a specified date range. These details include the Dynamic Promotion Name, Schedules, the Store Coupon required to fire the Dynamic Promotion, and more. See the Responses in the Get Dynamic Promotion Details section below for a complete list of the details you can GET about a Dynamic Promotion with this endpoint.
Notes
This endpoint allows you to GET all details about active Dynamic Promotions within a specified date range.
apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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'. |
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"
}
]
Maintenance Profiles include endpoints that enable you to obtain or modify information on the more nuanced elements of your CATAPULT data, such as customer/store coupons and departments. Additional profile endpoints are in development and will be released with supporting information as they become available.
The Customer Store Coupon Management endpoint enables you to obtain a list of, attach new, and remove existing Customer Store Coupons associated to a customer. Also use it change existing Store Coupon expiration dates. GET will let you view existing Customer Store Coupons; PUT will allow you to attach and change the expiration dates; DELETE will remove the coupon from a specified record.
The Department Detail endpoint enables read-only information requests on your item hierarchy departments. GET will let you view details for all departments or, if specified in the request, a certain one.
The Membership Profile endpoint allows you to query, create, or update membership profiles.
GET lets you find information about existing Membership Profiles,
while PUT will have you create new and update existing records.
The Supplier Detail endpoint enables read-only information requests on supplier (vendor) records in your database.
Use GET to view details for all available suppliers. Requests can be filtered using optional parameters.
Use GET to obtain a list of Store Coupons attached to a customer maintenance record.
apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
The Department Detail 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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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"
}
]
Use with GET to retreive a list of all membership profiles in your database.
apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
The Get Supplier Detail 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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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"
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
There are three endpoints available for Inventory Adjustment worksheets in CATAPULT Web Office. Specifically:
Available with CATAPULT 5.6.98+, the Inventory Adjustment Details endpoint allows you to query and GET data about committed Inventory Adjustment worksheets. This worksheet data includes:
Available with CATAPULT 5.6.117+, the inventoryAdjustmentHeader endpoint allows you to create new Inventory Adjustment worksheets, make edits to the Memo or Worksheet Name fields, or even commit the worksheet. These actions are done through PUT commands.
Available with CATAPULT 5.6.118+, the inventoryAdjustmentItems endpoint allows you to add items to Inventory Adjustment worksheets. These actions are done through PUT commands.
Get Inventory Adjustment Worksheet Details. Through a query, this endpoint allows you to Get data from all committed Inventory Adjustment 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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
Used to create, edit, and commit Inventory Adjustment worksheets in CATAPULT Web Office. This action fills the "header" portion of the worksheet,
that is, the portion of the worksheet except for the actual items. It does not allow for adding items to the worksheet.
Note that an Inventory Adjustment worksheet must be created at the store where the adjustment needs to be made. Thus, calls to the API must be submitted to the store
where the Inventory Adjustment needs to take place. The worksheetName
is required for new worksheets. Upon success, you will be provided with an existingWorksheetId
apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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}"
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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.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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 giftCardBulk
request 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 giftCardBulk
request 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 the giftCardBulk
request, 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
method 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
method 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.
apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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>
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.
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.
New items will have pricing records created for all zones. Specifically, the item's 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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 Supported CATAPULT Version
IMPORTANT
Field Purpose
Potential Use Cases of Field
Field 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
|
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
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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"
}
]
The Item Store Data endpoint is used to post per-store bulk updates to your inventory Pricing & Costs and related fields. It allows a more nuanced, targeted alternative when the larger scope of its sister function, Batch Item Pricing, isn't necessary.
See also: Inventory Pricing & Costs, Inventory Options.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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)> See also: Last Cost. |
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",
- "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 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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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"
}
]
/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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 /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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 See also: Name (P&CC). |
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)> See also: New Cost. |
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 and Newer
|
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 and Newer
|
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
|
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
|
worksheetTypeProfileName | string <= 30 characters Available with CATAPULT 5.6.121 and newer.
|
[- {
- "name": "string",
- "zoneName": "string",
- "startDate": "2024-05-01 00:00:00",
- "memo": "string",
- "commitAtStore": true,
- "itemType": "I",
- "itemId": "string",
- "cost": "string",
- "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 /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 parameter, but particular stores within a zone can be specified to narrow the recipients of committed changes.
Both the startDate and endDate parameters 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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 See also: Name (P&CC). |
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)> See also: New Cost. |
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 and Newer
|
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 and Newer
|
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
|
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
|
worksheetTypeProfileName | string <= 30 characters Available with CATAPULT 5.6.121 and newer.
Allows you to define what Worksheet Type Profile is assigned to the temporary Price & Cost Change worksheet. This assignment relies on the
|
[- {
- "name": "string",
- "zoneName": "string",
- "stores": "string",
- "startDate": "2024-05-01 00:00:00",
- "endDate": "2024-05-10 23:59:59",
- "priority": 0,
- "commitAtStore": true,
- "itemType": "I",
- "itemId": "string",
- "cost": "string",
- "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"
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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"
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 Customer Maintenance endpoint enables you to create and post changes to the customer records in your database. In general, this endpoint avails itself for updates related to general, demographic fields of a customer maintenance record. More precise updates, which are associated with individual sections of the customer maintenance record, can be found in the batch_addresses, batch_emailAddress, batch_phoneNumbers, and (to a lesser degree) batch_itemPromotions endpoints. Note that any Store Coupons included in the request must already exist in the database, as this procedure will not create new ones. It will, however, create/insert newly defined Prefixes and PowerField values into their respective tables, where present in the request.
See also: Customer Maintenance.
Batch processing status and log can be viewed by calling the /batch/importMessages endpoint.
apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 Enum: "U" "R" Type of Action to be Performed:
|
customerId required | string <= 16 characters See also: Customer ID. |
prefix | string <= 30 characters See also: Customer Prefix. |
firstName | string <= 25 characters See also: First Name (Customer). |
middleName | string <= 25 characters See also: Middle Name (Customer). |
lastName | string <= 25 characters See also: Last Name (Customer). |
suffix | string <= 30 characters See also: Customer Suffix. |
alias | string <= 25 characters See also: Customer Alias. |
pf1 | string <= 30 characters See also: PowerFields (Customer). |
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 See also: Customer Title. |
company | string <= 50 characters See also: Customer Company. |
memo | string <= 254 characters See also: Memo (Customer). |
birthDate | string <date> <= 30 characters See also: Birth Date (Customer). |
priceLevel | |
optOutReceipt | boolean See also: Receipt Opt-Out. |
blockSuspendedSales | boolean See also: Block Suspended Sales. |
hideInLookup | boolean See also: Hide in Lookup. |
inactive | boolean See also: Inactive (Customer). |
loyalty | boolean See also: Loyalty (Customer). |
loyaltyAccrualMultiplier | number <numeric(4,3)> The loyalty multiplier for the default loyalty program for this customer |
taxExempt | boolean Defaults to |
storeCouponList | string <long varchar> List of Store Coupon names separated by colon (:). Entered values will replace any current values listed on customer record. |
householdMainCustomerId | string <= 16 characters Customer ID for the customer's Head of Household. See also: Head of Household. |
householdRelation | string <= 30 characters Requires householdMainCustomerId be set. Enter text describing relationship to household. See also: Household Relationship. |
householdCanRedeem | boolean Requires householdMainCustomerId be set. Set to 1 to allow customer to redeem loyalty points from household. See also: Redeem Household Loyalty. |
dependentList | string <long varchar> List of customer dependents. Component field parameters of each individual dependent record are: |
[- {
- "action": "U",
- "customerId": "string",
- "prefix": "string",
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "suffix": "string",
- "alias": "string",
- "pf1": "string",
- "pf2": "string",
- "pf3": "string",
- "pf4": "string",
- "pf5": "string",
- "pf6": "string",
- "pf7": "string",
- "pf8": "string",
- "title": "string",
- "company": "string",
- "memo": "string",
- "birthDate": "2019-08-24",
- "priceLevel": 1,
- "optOutReceipt": true,
- "blockSuspendedSales": true,
- "hideInLookup": true,
- "inactive": true,
- "loyalty": true,
- "loyaltyAccrualMultiplier": 0,
- "taxExempt": true,
- "storeCouponList": "string",
- "householdMainCustomerId": "string",
- "householdRelation": "string",
- "householdCanRedeem": true,
- "dependentList": "string"
}
]
This endpoint allows you to post mailing addresses updates for select records in the CATAPULT system. Specifically:
This endpoint can create new Address Descriptions on a supported record and will create new Address Descriptions ('labels', i.e. Business, Home, Warehouse, 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.
entityId
'40000001234' in Category 'C' with a new email. This instructs the Address procedure that a Customer record (i.e., Category 'C') where customerId
= entityId
is to receive the new Address Description./batch/importMessages
endpoint.apikey | string Example: apikey=BP82MIFJTSJ5EP4MQCBDW7WYYVV0RPQ0 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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" 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 address description to use. See also: Address Description. |
streetaddressline1 | string <= 50 characters See also: Address Line 01 |
streetaddressline2 | string <= 50 characters See also: Address Line 02. |
city | string <= 20 characters See also: City. |
stateProvince | string <= 2 characters Uses standard two-character postal abbreviations. See also: State/Province, USPS State Abbreviations. |
country | string <= 2 characters See also: Country. Country entries of more than 2 characters on an imported record will prevent that record from updating. |
postalCode | string <= 15 characters See also: Postal Code. |
[- {
- "action": "U",
- "category": "C",
- "entityId": "string",
- "description": "string",
- "streetaddressline1": "string",
- "streetaddressline2": "string",
- "city": "string",
- "stateProvince": "st",
- "country": "st",
- "postalCode": "string"
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 Check File endpoint is the second of two endpoints provided to assist with offline transactions, in this case transactions tendered by check. Check information is imported, encrypted, then distributed to applicable POS terminals to enable automatic acceptance/rejection of tendered checks if the terminal goes offline and the tendered check information is listed in the Check File table. The process is enabled at the terminal-level and above by Advanced Setting in WebOffice (the same Advanced Setting as BIN Lookup Override):
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 Check File 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 Check File 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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
batch required | integer Example: batch=123 A unique identifier used to define related objects in a batch operation. |
List of Check File records to update.
routingNumber | string Routing number for checking account |
accountNumber required | string Account number for checking account |
[- {
- "routingNumber": "string",
- "accountNumber": "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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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"
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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"
}
]
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-003
would 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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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"
}
]
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 This field requires a valid API Key for an active Employee in CATAPULT Web Office. Required unless using the X-ECRS-APIKEY header. |
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"
}
]