Download OpenAPI specification:Download
This document describes the API backing the ECRS WebCart user interface. The WebCart API provides a robust and flexible framework for integrating and managing various WebCart functionalities in the eCommerce platform of your choice. This API enables developers to build custom e-commerce solutions by leveraging a wide range of endpoints that cover everything from user authentication and account management to order processing and inventory management.
In environments where multiple stores are served via a single domain name, a specific store can be selected by prefixing the given path with /s/{storeId} (ie., /s/1000-2/api/b).
Note that while ECRS attempts to maintain backwards compatibility whenever possible, this API is subject to change without notice.
There are various use cases for users accessing the WebCart API; however, users typically fall into one of two categories:
Example: A CATAPULT retailer wishes to create their own app with custom UI specific to their unique branding.
Example: A CATAPULT co-op wishes to manage their customers’ membership information and fees via a third-party. Any third-party acting as an employee to perform tasks (such as updating membership details) will need explicit permissions set at a granular level to make changes to the CATAPULT database.
The WebCart API is designed to empower integrators by providing a robust framework for building and managing e-commerce functionalities. The WebCart API enables you to:
While the WebCart API offers extensive capabilities, there are some limitations to be aware of:
The endpoints in the Employee group are designed to manage employee-authenticated requests. These endpoints allow employees to perform actions with Employee-level privileges. Before users can utilize many of the endpoints in this group, they must complete either “Machine Account Login” or “Authenticate Employee.”
Machine Account users should start with a call to “Machine Account Login” (/employee/machineEmployeeLogin) to create a session.
All other users should start with a call to the “Authenticate Employee” (/employee/password) endpoint. This is the endpoint that is used by WebCart’s Employee Login, so users looking to make their own Employee Login would want to use the “Authenticate Employee” endpoint as well. Until the user has successfully performed the “Machine Employee Login” or “Authenticate Employee,” all the other endpoints in this group will return an error.
If the authenticated user has the necessary permissions, the next step is often to call “Associate as Customer” (/employee/cs), which permits performing actions on behalf of specific customers.
Use the endpoints in this group to:
Allows employees to associate as a customer.
Once associated, methods that deal with a logged in customer will behave as if the associated customeris logged in, according to the employee's permissions.
Customer Association Request
required | object (DefaultPk) |
| code required | integer <int32> Value: 0 |
| message required | string Value: "Success" |
| code required | |
| message required | string Summary of the error. |
Customer Associate Request Request
{- "id": "1000-54"
}{- "code": 0,
- "message": "Success"
}Allows machine accounts to associate as an employee by using an API key.If permissions configured in Web Office allow, a machine employee may interact with select endpoints as though they are an employee. This includes, but is not limited to, associating as a customer via the "Associate as Customer" (/employee/cs) endpoint, and interacting with any "Account" (/me) endpoints or the "CMS Customer Membership Details" (/cms/membershipDetails) endpoint.To end machine account access, call the "Logout" (/auth/logout) endpoint or clear your cookies containing the auth token. Should a machine account attempt to access an endpoint either not configured or not authorized, a 403 error will be returned. This feature is currently disabled and will be available at a later date, a 403 will always be returned.
Machine account employee login request.
| apiKey required | string API key for the employee to login as. This key can be found or generated in WebOffice > Employees > {Employee} > (8) Api keys. |
| entity | object |
| status | integer <int32> |
object | |
| closed | boolean |
Array of objects (Link) unique | |
object | |
object (StatusType) | |
object | |
object (MediaType) | |
| allowedMethods | Array of strings unique |
object (EntityTag) | |
| length | integer <int32> |
| location | string <uri> |
object | |
| lastModified | string <date-time> |
| date | string <date-time> |
object |
| entity | object |
| status | integer <int32> |
object | |
| closed | boolean |
Array of objects (Link) unique | |
object | |
object (StatusType) | |
object | |
object (MediaType) | |
| allowedMethods | Array of strings unique |
object (EntityTag) | |
| length | integer <int32> |
| location | string <uri> |
object | |
| lastModified | string <date-time> |
| date | string <date-time> |
object |
Machine Employee Login Request
{- "apiKey": "AE1LMA6S012345678901234567890O0I"
}{- "entity": { },
- "status": 0,
- "metadata": {
- "empty": true,
- "property1": [
- { }
], - "property2": [
- { }
]
}, - "closed": true,
- "links": [
- {
- "params": {
- "property1": "string",
- "property2": "string"
}, - "rels": [
- "string"
], - "uriBuilder": { },
- "rel": "string",
- "title": "string",
- "type": "string"
}
], - "cookies": {
- "property1": {
- "name": "string",
- "value": "string",
- "version": 0,
- "path": "string",
- "domain": "string",
- "comment": "string",
- "maxAge": 0,
- "expiry": "2019-08-24T14:15:22Z",
- "secure": true,
- "httpOnly": true,
- "sameSite": "NONE"
}, - "property2": {
- "name": "string",
- "value": "string",
- "version": 0,
- "path": "string",
- "domain": "string",
- "comment": "string",
- "maxAge": 0,
- "expiry": "2019-08-24T14:15:22Z",
- "secure": true,
- "httpOnly": true,
- "sameSite": "NONE"
}
}, - "statusInfo": {
- "reasonPhrase": "string",
- "statusCode": 0,
- "family": "INFORMATIONAL"
}, - "stringHeaders": {
- "empty": true,
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "mediaType": {
- "type": "string",
- "subtype": "string",
- "parameters": {
- "property1": "string",
- "property2": "string"
}, - "wildcardSubtype": true,
- "wildcardType": true
}, - "allowedMethods": [
- "string"
], - "entityTag": {
- "value": "string",
- "weak": true
}, - "length": 0,
- "language": {
- "language": "string",
- "displayName": "string",
- "script": "string",
- "country": "string",
- "variant": "string",
- "extensionKeys": [
- "string"
], - "unicodeLocaleAttributes": [
- "string"
], - "unicodeLocaleKeys": [
- "string"
], - "iso3Language": "string",
- "iso3Country": "string",
- "displayLanguage": "string",
- "displayScript": "string",
- "displayCountry": "string",
- "displayVariant": "string"
}, - "lastModified": "2019-08-24T14:15:22Z",
- "date": "2019-08-24T14:15:22Z",
- "headers": {
- "empty": true,
- "property1": [
- { }
], - "property2": [
- { }
]
}
}| account | string |
| password | string |
object (DefaultPk) | |
| totp | string |
| scan | boolean |
{- "account": "string",
- "password": "string",
- "accountId": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "totp": "string",
- "scan": true
}Methods to manage customer push notification registration tokens. This includes methods to subscribe or unsubscribe registration tokens to specific topics. Customer association is required for all methods.
This method saves the requested registration token to the associated customer.
Customer registration token, optional date string with timezone, and optional list of topics. If no date is provided, the current date will be used. The date will be used to manage token expiration. The "ordering statuses" topic is required for a registration token to receive order status push notifications. Topics provided in the topics field will not be subscribed to an FCM topic at this time.
| registrationToken required | string The user's FCM registration token. |
| created | string Zoned timestamp representing the date when this token was created or last used. |
| topics | Array of strings Items Value: "ordering statuses" List of topics that determine which push notification(s) the "registrationToken" will receive. |
Customer Registration Token
{- "registrationToken": "dQw4w9WgXcQ:APA91bH1f8k9J7l8mN2o3P4Q5r6S7t8U"
}This method deletes all requested registration tokens from the associated customer.
List of customer registration tokens to be deleted.
| registrationTokens required | Array of strings List of customer registration tokens to be deleted. |
List with single registration token
{- "registrationTokens": [
- "dQw4w9WgXcQ:APA91bH1f8k9J7l8mN2o3P4Q5r6S7t8U"
]
}The endpoints in the Authorization group control login authorization. With these endpoints, you can manage all options related to signing into and out of WebCart.
Use these endpoints to control how users can:
Log in as a customer using federated authentication. This method of authentication expects a JSON Web Token (JWT) signed by a federated identity provider. This authentication JWT is often referred to as the "ID Token" in the providers' documentation. Currently, we support authentication JWTs from Google, Facebook, and Apple. If A guest user attempts to log in with social media and no existing record is found, A new customer record will be created. If a new customer federated login lacks a first name or last name in the token they will be autofilled with "Valued" and "Customer" respectively. If the email address is not verified, a code of -34 will be returned along with the UUID associated with the verification, and the Verify Registration endpoint should be called to complete the registration process.
| provider required | string Enum: "google" "facebook" "apple" |
| idToken required | string ID token for the customer logging in. This token should be a JWT signed by the account provider. |
| firstName | string <= 25 characters First name for the customer logging in. We will try to parse the name from the idToken but if it is missing it will be set to this value. |
| lastName | string <= 25 characters Last name for the customer logging in. We will try to parse the name from the idToken but if it is missing it will be set to this value. |
string <= 50 characters Email address for the customer logging in. We will try to parse the email from the idToken but if it is missing it will be set to this value. | |
| phone | string [ 10 .. 14 ] characters Phone number for the customer logging in. |
| scan | boolean Default: false Indicates whether the logging in customer is in Accelerated Checkout mode |
{- "idToken": "xxxxx.yyyyy.zzzzz",
- "firstName": "John",
- "lastName": "Smith",
- "email": "jsmith@email.com",
- "phone": "1234567890",
- "scan": false
}| provider required | string |
| redirectUri | string |
| clientId | string |
| code | string |
| state | string |
| error | string |
| scan | boolean Default: false Indicates whether the logging in customer is in Accelerated Checkout mode |
| oauth_token | string |
| oauth_verifier | string |
{- "redirectUri": "string",
- "clientId": "string",
- "code": "string",
- "state": "string",
- "error": "string",
- "scan": false,
- "oauth_token": "string",
- "oauth_verifier": "string"
}Removes the link between a customer's account and an OAuth provider. This operation ensures that the provider is unlinked only if it is not the last linked provider.
| provider | string |
{- "provider": "string"
}| account | string |
| password | string |
object (DefaultPk) | |
| totp | string |
| scan | boolean |
{- "account": "string",
- "password": "string",
- "accountId": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "totp": "string",
- "scan": true
}Handles submission of the signup form for a registering user
| firstName required | string <= 25 characters First name of the customer that is registering |
| lastName required | string <= 25 characters Last name of the customer that is registering |
| email required | string <= 50 characters E-mail address of the customer that is registering |
| phone required | string [ 10 .. 14 ] characters Phone number of the customer that is registering |
| password required | string [ 8 .. 255 ] characters Password of the customer that is registering |
| recaptcha | string Recaptcha validation for the customer registration attempt. Required if Recaptcha is enabled on the configuration and Registration is an enabled scenario. |
| marketing | boolean Indicates whether the registering customer is opting in to marketing e-mails |
| receipts | boolean Indicates whether the registering customer is opting in to e-mailed receipts, and opting out of printed receipts |
| scan | boolean Indicates whether the registering customer is in Accelerated Checkout mode |
object (Me) The boarding profile set on the configuration. |
Registering customer account number
{- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "stringstri",
- "password": "stringst",
- "recaptcha": "string",
- "marketing": true,
- "receipts": true,
- "scan": true,
- "boardingProfile": {
- "accountNumber": "string",
- "firstName": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "middleName": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "lastName": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "nickName": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "prefix": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "suffix": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "company": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "title": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "suppressReceipt": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "birthDate": {
- "name": "string",
- "option": "DISABLED",
- "value": "2019-08-24",
- "length": 0,
- "options": [
- {
- "id": "2019-08-24",
- "description": "string"
}
]
}, - "pf1": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "pf2": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "pf3": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "pf4": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "pf5": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "pf6": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "pf7": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "pf8": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "phones": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "phone": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "shipToPhone": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "shipToFax": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "billToPhone": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "billToFax": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "emails": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "email": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "billTo": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "shipTo": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "marketing": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "ereceipt": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "eReceipt": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}
}
], - "addresses": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "street1": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "street2": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "city": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "state": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "postal": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "country": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "shipTo": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "billTo": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
]
}
}"string"The endpoints in this group control password reset options. Use these endpoints to:
Method called by third party to get script to read over the phone to a customer
| code required | string Example: 123456 Code that user is meant to enter for password reset |
<Response> <Say loop="3">Your verification code is 1. 2. 3. 4. 5. 6.</Say> </Response>
Endpoints in this group control store-specific options, allowing users to access information set on the Web Profile for the store in Web Office. This includes:
Returns the store's configuration. This is mostly controlled by the Web Profile set on a Store in WebOffice.
object (StoreDto) | |
| siteUrl | string Site URL for this store's WebCart |
object (WebAppManifestDto) | |
object (MenuDto) | |
| allowSubstitutions | boolean Indicates whether the allow substitution checkbox should be displayed on each line item in the cart |
| substitutionPolicy | string Store's substitution policy |
| accessibilityDisclaimer | string Accessibility disclaimer if set by the merchant. Set by Advanced Setting com.ecrsoft.tserver.webcart.accessibilityDisclaimer |
| instructionsPerItem | boolean Indicates whether the shopper should be able to add per-item notes to an order |
| instructionsPerTransaction | boolean Indicates whether the shopper should be able to add per-transaction notes to an order |
| innerSearch | boolean Indicates whether the shopper should be able to do additional searches from within the primary search. Controlled by Advanced Setting com.ecrsoft.tserver.webcart.innerSearch |
| cartEnabled | boolean Indicates whether the cart is enabled in this web store. If this is set to false, shoppers should not be able to add items to their cart nor checkout. |
| listEnabled | boolean Indicates whether List functionality should be available to logged-in shoppers |
| itemSearchEnabled | boolean Indicates whether Item Search should be available on this web store. If this is set to false, there should be no search bar and shoppers should not be able to browse. |
| multistore | boolean Indicates whether this is a multi-store environment. If set to true, the shopper should be able to choose the store they are shopping at. |
| allowCustomerAdd | boolean Indicates whether guest shoppers should be allowed to register for new accounts. |
| requireCustomerToCheckout | boolean Indicates whether a logged in customer must be associated for checkout to succeed. |
| allowCouponClipping | boolean Indicates whether coupon clipping is enabled for this web store |
| billingPhoneNumberRequired | boolean Indicates whether the Billing Phone Number is required to be collected from the shopper |
| pastOrdersEnabled | boolean Indicates whether Past Orders are enabled. If set to true the shopper should be able to view their historically placed orders. |
| pastItemsEnabled | boolean Indicates whether Past Items are enabled. If set to true the shopper should be able to view items that they have historically ordered. |
| rewardsEnabled | boolean Indicates whether Rewards are enabled. If set to true the shopper should be able to view their existing reward progress. |
| walletEnabled | boolean Indicates whether the Wallet is enabled. If set to true a logged in shopper should be able to associate tokenized cards to their account. |
| shiftFourEnabled | boolean Indicates whether this web store is using Shift4 as a payment provider. |
| socialNetworksEnabled | boolean Indicates whether Social Networks are enabled. If set to true the shopper should be able to navigate to a merchant's social links on the web store. |
| customerCardEnabled | boolean Indicates whether Customer Card is enabled. If set to true the shopper should be able to view / present a Customer Card that displays a barcode of their account number, for customer association purposes. |
| allowEditOrder | boolean Indicates whether the shopper should be allowed to edit their order after they have placed it. |
| pwaEnabled | boolean Indicates whether the Progressive Web App (PWA) is enabled. If this is set to true then the client should request the app to be installed. |
| loyaltyName | string The name of the default Loyalty program if it exists. |
| loyaltyDecimal | boolean Indicates whether the decimal should be displayed for points on the default Loyalty program. |
| allowGiftCardCheck | boolean Indicates whether shoppers should be able to check gift card balances |
| allowEGiftCards | boolean Indicates whether E-Gift Cards are enabled for this web store. If set to true, E-Gift Cards should be purchasable on the site. |
object (GiftCardProfileDto) The E-Gift Card profile on the Transaction Security Profile. | |
| maxLists | integer <int32> [ 1 .. 99 ] Default: 10 The maximum number of lists a shopper should be able to configure. |
| maxListItems | integer <int32> [ 1 .. 499 ] Default: 100 The maximum number of items a shopper should be able to add to an individual list. |
| defaultCountry | integer <int32> Indicates the ID for the default country that should be selected in checkout. |
| defaultState | integer <int32> Indicates the ID for the default State / Province that should be selected in checkout. |
| mapPinAddress | boolean Indicates whether checkout displays option to select delivery location on Map |
| sellOutOfStock | boolean |
| hidePriceUntilLogin | boolean |
| displayQuantity | boolean |
| displayAvailability | boolean |
| limitedAvailabilityQuantity | number |
| limitedAvailabilityTerm | string |
| inStockTerm | string |
| outOfStockTerm | string |
| onOrderTerm | string |
| allowSpecialOrder | boolean |
| deliveryNotificationsDefaultToOff | boolean |
| preventOfflineCheckout | boolean |
| cmsEnabled | boolean |
| googlePayEnabled | boolean Indicates whether Google Pay is enabled. |
| storeBillingName | string The name of the store to show to shoppers for billing purposes |
| applePayEnabled | boolean Indicates whether Apple Pay is enabled. |
| applePayMerchantIdentifier | string Apple Pay Merchant Identifier |
| showGoogleLogin | boolean Indicates whether Google Login should be shown on the log in page |
| payNowEnabled | boolean |
| lineBustEnabled | boolean |
| payNowTotalLimit | number |
| payNowItemCountLimit | integer <int32> |
| recommendationsEnabled | boolean |
| homepageRecommendationsEnabled | boolean |
| couponRecommendationsEnabled | boolean |
| onSaleRecommendationsEnabled | boolean |
| scanAndGoEnabled | boolean |
| scanTimeout | integer <int32> |
| webCartPriceLevel | integer <int32> |
object (DefaultPk) | |
| i18nEnabled | boolean |
| i18nLanguage | Array of strings |
| cdn | string |
| googleMapsApiKey | string |
| googleMapsStrictAddressCheck | boolean |
| googleAnalyticsId | string |
| facebookPixelId | string |
| signifydKey | string |
| redPepperClientId | integer <int32> |
| includeCircularLinkInMenu | boolean |
| circularLinkText | string |
| orderTypesEnabled | boolean |
| orderTypesMessage | string |
Array of objects (SocialProvider) | |
Array of objects (PaymentProvider) | |
Array of objects (RowDto) | |
Array of objects (CountryDto) | |
Array of objects (StateDto) | |
Array of objects (AdDto) | |
Array of objects (CustomSourceDto) | |
Array of objects (ThirdPartyServiceProfileDto) | |
Array of objects (OrderTypeDto) | |
object | |
Array of objects (CustomerGroupCategoryDto) | |
Array of objects (BeaconDto) | |
| googleTagManagerId | string |
| youMayAlsoLikeLabel | string |
| frequentlyBoughtItemLabel | string |
| goesWellWithLabel | string |
| recommendedSubstitutesLabel | string |
| cortexKey | string |
| cardknoxEbtIfieldsKey | string |
| ebtBalanceTimeout | integer <int32> |
| whitelistEbt | boolean |
| showAllSpecialTenderBadges | boolean Default: false Controls whether items should display their eligibility on the item card for all tenders, instead of the default behavior of displaying only EBT eligibility. Controlled by Advanced Setting com.ecrsoft.tserver.webcart.itembadges.showAllSpecialTenders |
| allowAccountDeletion | boolean Default: false Controls whether shoppers see the option to trigger an account removal request Controlled by Advanced Setting com.ecrsoft.tserver.webcart.account.allowAccountDeletion |
{- "store": {
- "id": "1000-10",
- "name": "One With Nature",
- "number": "ABC1",
- "image": "1000-11",
- "latitude": 36.217646,
- "longitude": -81.684149,
- "webStore": true,
- "addresses": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "postal": "string",
- "country": "string",
- "shipTo": true,
- "billTo": true,
- "location": true,
- "webcart": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "emails": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "email": "string",
- "billTo": true,
- "shipTo": true,
- "marketing": true,
- "location": true,
- "webcart": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "ereceipt": true
}
], - "phones": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "locationPhone": true,
- "locationFax": true,
- "webcartPhone": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "faxes": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "locationPhone": true,
- "locationFax": true,
- "webcartPhone": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
]
}, - "webAppManifest": {
- "name": "ECRS WebCart",
- "short_name": "WebCart",
- "icons": [
- {
- "type": "image/png",
- "sizes": "192x192",
- "purpose": "maskable any"
}
], - "theme_color": "#FECE07",
- "background_color": "#006BA6",
- "display": "standalone",
- "orientation": "portrait",
- "description": "Shop online with One With Nature!",
- "dir": "ltr"
}, - "mainMenu": {
- "id": "1000-10",
- "name": "WebCart Upper Menu",
- "children": [
- { }
], - "orderTypeImage": "1000-2"
}, - "allowSubstitutions": true,
- "substitutionPolicy": "Unless you tell us differently using the \\\"Add Instructions\\\" feature, we won't substitute items you ordered with other items if the items you ordered are not available.",
- "accessibilityDisclaimer": "string",
- "instructionsPerItem": true,
- "instructionsPerTransaction": true,
- "innerSearch": true,
- "cartEnabled": true,
- "listEnabled": true,
- "itemSearchEnabled": true,
- "multistore": true,
- "allowCustomerAdd": true,
- "requireCustomerToCheckout": true,
- "allowCouponClipping": true,
- "billingPhoneNumberRequired": true,
- "pastOrdersEnabled": true,
- "pastItemsEnabled": true,
- "rewardsEnabled": true,
- "walletEnabled": true,
- "shiftFourEnabled": true,
- "socialNetworksEnabled": true,
- "customerCardEnabled": true,
- "allowEditOrder": true,
- "pwaEnabled": true,
- "loyaltyName": "Healthy Rewards",
- "loyaltyDecimal": true,
- "allowGiftCardCheck": true,
- "allowEGiftCards": true,
- "giftCardProfile": {
- "policy": "string",
- "minCardValue": 0,
- "maxCardValue": 0,
- "designs": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "egiftCardCustomAmount": true,
- "egiftCardAmounts": [
- 0
]
}, - "maxLists": 10,
- "maxListItems": 100,
- "defaultCountry": 15,
- "defaultState": 34,
- "mapPinAddress": true,
- "sellOutOfStock": true,
- "hidePriceUntilLogin": true,
- "displayQuantity": true,
- "displayAvailability": true,
- "limitedAvailabilityQuantity": 0,
- "limitedAvailabilityTerm": "string",
- "inStockTerm": "string",
- "outOfStockTerm": "string",
- "onOrderTerm": "string",
- "allowSpecialOrder": true,
- "deliveryNotificationsDefaultToOff": true,
- "preventOfflineCheckout": true,
- "cmsEnabled": true,
- "googlePayEnabled": true,
- "storeBillingName": "string",
- "applePayEnabled": true,
- "applePayMerchantIdentifier": "string",
- "showGoogleLogin": true,
- "payNowEnabled": true,
- "lineBustEnabled": true,
- "payNowTotalLimit": 0,
- "payNowItemCountLimit": 0,
- "recommendationsEnabled": true,
- "homepageRecommendationsEnabled": true,
- "couponRecommendationsEnabled": true,
- "onSaleRecommendationsEnabled": true,
- "scanAndGoEnabled": true,
- "scanTimeout": 0,
- "webCartPriceLevel": 0,
- "placeholderImage": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "i18nEnabled": true,
- "i18nLanguage": [
- "string"
], - "cdn": "string",
- "googleMapsApiKey": "string",
- "googleMapsStrictAddressCheck": true,
- "googleAnalyticsId": "string",
- "facebookPixelId": "string",
- "signifydKey": "string",
- "redPepperClientId": 0,
- "includeCircularLinkInMenu": true,
- "circularLinkText": "string",
- "orderTypesEnabled": true,
- "orderTypesMessage": "string",
- "socialProviders": [
- {
- "provider": "string",
- "userKey": "string",
- "authId": "string",
- "auth": true
}
], - "paymentProviders": [
- {
- "provider": "string"
}
], - "rows": [
- {
- "id": {
- "prefix": "string",
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "urlString": "string",
- "cpk": 0,
- "pk": 0
}, - "name": "string"
}
], - "countries": [
- {
- "id": 0,
- "description": "string",
- "abbrv": "string"
}
], - "states": [
- {
- "id": 0,
- "country": 0,
- "description": "string",
- "abbrv": "string"
}
], - "ads": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "order": 0,
- "label": "string",
- "type": 0,
- "link": "string",
- "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "customSources": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "type": 0,
- "label": "string",
- "content": "string"
}
], - "thirdPartyServiceProfiles": [
- {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}
], - "orderTypes": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "urlSlug": "string",
- "menu": {
- "id": "1000-10",
- "name": "WebCart Upper Menu",
- "children": [
- { }
], - "orderTypeImage": "1000-2"
}, - "ads": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "order": 0,
- "label": "string",
- "type": 0,
- "link": "string",
- "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "giftCard": true,
- "listOnly": true,
- "hidden": true,
- "autoFinalize": true,
- "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "urlEncodedSlug": "string"
}
], - "recaptchaScenarioStatuses": {
- "property1": true,
- "property2": true
}, - "customerGroups": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "canEdit": true,
- "mutuallyExclusive": true,
- "household": true,
- "groups": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string"
}
]
}
], - "beacons": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "uuid": "string",
- "url": "string"
}
], - "googleTagManagerId": "string",
- "youMayAlsoLikeLabel": "string",
- "frequentlyBoughtItemLabel": "string",
- "goesWellWithLabel": "string",
- "recommendedSubstitutesLabel": "string",
- "cortexKey": "string",
- "cardknoxEbtIfieldsKey": "string",
- "ebtBalanceTimeout": 0,
- "whitelistEbt": true,
- "showAllSpecialTenderBadges": false,
- "allowAccountDeletion": false
}Submits a Contact Us form which will send an e-mail to the store. It will also send an acknowledgement email to the e-mail in the form.
| name | string |
string | |
| subject | string |
| message | string |
| recaptcha | string |
{- "name": "string",
- "email": "string",
- "subject": "string",
- "message": "string",
- "recaptcha": "string"
}Returns the Custom Source detail for the ID passed in. Custom sources are set on the store's configuration and define custom content (e.g. entire HTML documents, or CSS overrides) to personalize their website.
| id required | string |
object (DefaultPk) | |
| type | integer <int32> |
| label | string |
| content | string |
{- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "type": 0,
- "label": "string",
- "content": "string"
}Returns the Web App Manifest for the purposes of installing a Progressive Web App (PWA).
| name | string Name of this store's web application. Defaults to the store name but configurable via advanced setting com.ecrsoft.tserver.webcart.app.name |
| short_name | string The shortened name displayed when the PWA is installed for this web application. |
Array of objects (AppIconDto) Icons for this store's web application, such as different sizes of their favicon. | |
| theme_color | string Primary color of the theme for this store's web application |
| background_color | string Background color of the theme for this store's web application. |
| display | string Value: "standalone" Defines the display property in the manifest for this store's web application. WebCart always returns standalone meaning it should be a standalone application |
| start_url | string Defines the start URL of this store's web application. |
| scope | string Defines the scope of this store's web application. Set to the same as the startUrl. |
| orientation | string Value: "portrait" Defines the orientation property in the manifest for this store's web application. WebCart always returns portrait meaning it should be used in portrait mode. |
| description | string Defines the description property in the manifest for this store's web application. By default this gets set to "Shop online with " + storeName + "!" but can be configured with the Advanced Setting com.ecrsoft.tserver.webcart.app.description |
| dir | string Value: "ltr" Defines the dir global attribute for this store's web application. WebCart always sets this as ltr meaning the text should be read from left-to-right. |
{- "name": "ECRS WebCart",
- "short_name": "WebCart",
- "icons": [
- {
- "type": "image/png",
- "sizes": "192x192",
- "purpose": "maskable any"
}
], - "theme_color": "#FECE07",
- "background_color": "#006BA6",
- "display": "standalone",
- "orientation": "portrait",
- "description": "Shop online with One With Nature!",
- "dir": "ltr"
}Returns detail objects for the stores set on the WebCart configuration.
object (id) ID of this store | |
| name | string Name of the store |
| number | string Number of this store |
object (image) ID of this store's web logo | |
| latitude | number Latitude of the this store |
| longitude | number Longitude of the this store |
| webStore | boolean Indicates whether this store has a Web Profile (and thus should have a WebCart) |
Array of objects (AddressDto) Physical addresses associated with this store | |
Array of objects (StoreEmailDto) E-mail addresses associated with this store | |
Array of objects (StorePhoneDto) Phone numbers associated with this store | |
Array of objects (StorePhoneDto) Fax numbers associated with this store |
[- {
- "id": "1000-10",
- "name": "One With Nature",
- "number": "ABC1",
- "image": "1000-11",
- "latitude": 36.217646,
- "longitude": -81.684149,
- "webStore": true,
- "addresses": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "postal": "string",
- "country": "string",
- "shipTo": true,
- "billTo": true,
- "location": true,
- "webcart": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "emails": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "email": "string",
- "billTo": true,
- "shipTo": true,
- "marketing": true,
- "location": true,
- "webcart": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "ereceipt": true
}
], - "phones": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "locationPhone": true,
- "locationFax": true,
- "webcartPhone": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "faxes": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "locationPhone": true,
- "locationFax": true,
- "webcartPhone": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
]
}
]Returns the .well-known files based on the ECRS-WELLKNOWN request header and the merchant's configuration. This is controlled by the Advanced Setting com.ecrsoft.tserver.webcart.well-known.[filename] and expects the name of the file to be present in the ECRS-WELLKNOWN request header.
| Content-Disposition | any |
The endpoints in this group can control the overall theme of your site. They generate a CSS style sheet using all Custom Sources in the Web Profile that are classified as MAIN_SCSS_HEADER or MAIN_SCSS_FOOTER.
These endpoints are primarily intended to style WebCart according to the merchant’s Custom Sources. Integrators using WebCart APIs to operate WebCart behind the scenes while maintaining their own UI may find these options limited. However, integrators developing their own applications can use these style endpoints to update styles dynamically without needing to deploy a new app version.
The endpoints in this group allow shoppers to retrieve and change account data on their WebCart profile. This includes:
{- "card": {
- "id": "string",
- "cvv": "string",
- "email": "string",
- "token": "string",
- "company": "string",
- "bin": "string",
- "finalDigits": "string",
- "billingStreet1": "string",
- "billingStreet2": "string",
- "billingCity": "string",
- "shippingStreet1": "string",
- "shippingStreet2": "string",
- "shippingCity": "string",
- "shippingState": "string",
- "billingCountry": "string",
- "shippingCountry": "string",
- "billingPhone": "string",
- "billingPostal": "string",
- "shippingPostal": "string",
- "billingState": "string",
- "shippingPhone": "string",
- "lastName": "string",
- "firstName": "string",
- "expiry": "string",
- "nameOnCard": "string",
- "type": "string"
}, - "recaptcha": "string"
}| cardId | string |
| defaultToken | boolean |
| brand | string |
| finalDigits | string |
| expiration | string |
object (DefaultPk) | |
| tenderType | integer <int32> |
{- "cardId": "string",
- "defaultToken": true,
- "brand": "string",
- "finalDigits": "string",
- "expiration": "string",
- "authFk": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "tenderType": 0
}| accountNumber | string |
object (FieldDtoString) | |
object (FieldDtoString) | |
object (FieldDtoString) | |
object (FieldDtoString) | |
object (FieldDtoDefaultPk) | |
object (FieldDtoDefaultPk) | |
object (FieldDtoString) | |
object (FieldDtoString) | |
object (FieldDtoBoolean) | |
object (FieldDtoLocalDate) | |
object (FieldDtoDefaultPk) | |
object (FieldDtoDefaultPk) | |
object (FieldDtoDefaultPk) | |
object (FieldDtoDefaultPk) | |
object (FieldDtoString) | |
object (FieldDtoString) | |
object (FieldDtoString) | |
object (FieldDtoString) | |
Array of objects (MePhoneDto) | |
Array of objects (MeEmailDto) | |
Array of objects (MeAddressDto) |
{- "accountNumber": "string",
- "firstName": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "middleName": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "lastName": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "nickName": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "prefix": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "suffix": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "company": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "title": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "suppressReceipt": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "birthDate": {
- "name": "string",
- "option": "DISABLED",
- "value": "2019-08-24",
- "length": 0,
- "options": [
- {
- "id": "2019-08-24",
- "description": "string"
}
]
}, - "pf1": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "pf2": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "pf3": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "pf4": {
- "name": "string",
- "option": "DISABLED",
- "value": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "length": 0,
- "options": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "description": "string"
}
]
}, - "pf5": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "pf6": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "pf7": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "pf8": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "phones": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "phone": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "shipToPhone": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "shipToFax": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "billToPhone": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "billToFax": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "emails": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "email": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "billTo": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "shipTo": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "marketing": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "ereceipt": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "eReceipt": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}
}
], - "addresses": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "street1": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "street2": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "city": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "state": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "postal": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "country": {
- "name": "string",
- "option": "DISABLED",
- "value": "string",
- "length": 0,
- "options": [
- {
- "id": "string",
- "description": "string"
}
]
}, - "shipTo": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "billTo": {
- "name": "string",
- "option": "DISABLED",
- "value": true,
- "length": 0,
- "options": [
- {
- "id": true,
- "description": "string"
}
]
}, - "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
]
}| cardId | string |
| defaultToken | boolean |
| brand | string |
| finalDigits | string |
| expiration | string |
object (DefaultPk) | |
| tenderType | integer <int32> |
{- "cardId": "string",
- "defaultToken": true,
- "brand": "string",
- "finalDigits": "string",
- "expiration": "string",
- "authFk": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "tenderType": 0
}These endpoints allow you to request order information to display a shopper’s Order History. This information should be made available to shoppers so that they are able to see details about their in-store and online purchases.
These endpoints facilitate the exploration and retrieval of inventory based on search parameters. They allow shoppers to:
Retrieves a list of item summaries matching the described search parameters.
| search required | string The browse request to execute |
Array of objects (TypedDefaultPk) The group path in which to search, consists of the ids of departments, promotional sale worksheets, goes well with groups, substitution groups, brands, item groups, and/or menu groups. | |
| q required | string <= 64 characters The query string that will be used to search for results |
| iq | Array of strings[ items [ 1 .. 64 ] characters ] Minor text modifiers that are performed within (as an AND) with the main query |
| s | string Enum: "NAZ" "NZA" "PLH" "PHL" "POP" The sort to use when collecting search results. In addition to the default(relevance) sort, indicated by the absence of this parameter the following are available. NAZ - Alphabetical ascending NZA - Albhabetical descending PLH - Price, low to high PHL - Price, high to low POP - Popularity, high to low |
| ps | integer <int32> <= 128 Default: 8 The number of results per page of the request |
| pn | integer <int32> >= 1 Default: 1 The 1-based index of the requested page |
object A map from the facet category id to the requested facet value ids |
| code | integer <int32> |
| message | string |
| redirect | string |
| data | object |
Array of objects (Alert) | |
object | |
object (BrowseRequest) Describes the search parameters for a set of entities in a WebCart | |
| searchTime | integer <int64> The time required to execute the browse in ms. |
| totalCount | integer <int64> The total number of records that would match the request if pagination was not performed. |
Array of objects (GroupDto) The group path followed to the current results, commonly used to generate a breadcrumb trail | |
Array of objects (GroupDto) Any children of the current group path | |
Array of objects (FacetCategory) The facet categories which are relevant to the current search so that the current search results can be filtered | |
| items | Array of objects The items returned by the search result |
| alternates | Array of strings Any alternate searches that should be suggested to the user. |
{- "g": "MGP-1000-20",
- "q": "App",
- "iq": [
- "Red"
], - "s": "NAZ",
- "ps": 16,
- "pn": 2,
- "facets": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}{- "code": 0,
- "message": "string",
- "redirect": "string",
- "data": { },
- "alerts": [
- {
- "code": "string",
- "values": {
- "property1": { },
- "property2": { }
}
}
], - "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "request": {
- "g": "MGP-1000-20",
- "q": "App",
- "iq": [
- "Red"
], - "s": "NAZ",
- "ps": 16,
- "pn": 2,
- "facets": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}, - "searchTime": 87,
- "totalCount": 1048,
- "groupPath": [
- {
- "id": "MGP-1000-20",
- "name": "Test Menu Group",
- "image": null
}
], - "groupChildren": [
- {
- "id": "CGP-1000-34",
- "name": "Test Item Group",
- "image": null
}, - {
- "id": "CGP-1000-35",
- "name": "Test Item Group 2",
- "image": null
}
], - "facets": [
- {
- "key": "Brand",
- "name": "Brand",
- "count": 1,
- "values": [
- {
- "key": "Maria's",
- "name": "Marias",
- "count": 2,
- "selected": false
}
]
}
], - "items": [
- { }
], - "alternates": [
- "Api",
- "Apple"
]
}Entry point for retrieving all facet values for a given category within a search.
| search required | string The facet category request to execute |
Array of objects (TypedDefaultPk) The group path in which to search, consists of the ids of departments, promotional sale worksheets, goes well with groups, substitution groups, brands, item groups, and | |
| q required | string <= 64 characters The query string that will be used to search for results |
| iq | Array of strings [ 1 .. 64 ] characters Minor text modifiers that are performed within (as an AND) with the main query |
| fc | string The key of the facet category to find all values for |
object A map from the facet category id to the requested facet value ids |
{- "g": [ ],
- "q": "App",
- "iq": [ ],
- "fc": "Brand",
- "facets": { }
}These endpoints facilitate queries for recommended items. If you have CATAPULT Cognition and wish to offer item and digital coupon recommendations, you’ll need to use the endpoint in this group to retrieve the recommendations from Artemis. Recommendations include:
If you are a CATAPULT retailer who would like to learn more about item and digital coupon recommendations, more information is available in this OLM article.
These endpoints facilitate queries for images from the CATAPULT database. They allow retrieval of the following images at a customizable size:
Maintaining images in Web Office makes it easier to have consistency throughout your in-person and online presence.
Generates a code-128 barcode based on data height/width parameters
| data required | string The data that should be encoded in the code-128 barcode |
| w | integer <int32> Default: 128 The desired width of the barcode. Optional. Defaults to 128 |
| h | integer <int32> Default: 64 The desired height of the barcode. Optional. Defaults to 64 |
Retrieves an appropriately sized image for the given image id. This request should not generally be made directly against the api, rather, a CDN should be setup to cache the images and use the api as it's backend. Requests should then be made via the CDN.
| id required | string The id of the image to retrieve |
| h | string The desired height of the image. Optional, if specified the only valid values are 24, 30, 50, 64, 180, and 240 |
| w | string The desired width of the image. Optional, if specified the only valid values are 24, 30, 50, 64, 180, and 240 |
Generates a Progressive Web App (PWA) asset using the store's favicon.
| h | string The desired height of the image. Optional, if specified the only valid values are 24, 30, 50, 64, 180, 240, and 512 |
| w | string The desired width of the image. Optional, if specified the only valid values are 24, 30, 50, 64, 180, 240, and 512 |
| resizeHeight | string The desired resize height of the image. Optional, if specified the only valid values are 24, 30, 50, 64, 180, 240, and 512 |
| resizeWidth | string The desired resize width of the image. Optional, if specified the only valid values are 24, 30, 50, 64, 180, 240, and 512 |
The endpoints in the Items group facilitate item queries. Use these endpoints to view Made-to-Order (MTO) modifications, detailed information, and summary information about items. See this OLM article for more information on how MTO is used in WebCart.
| id required | string |
Array of objects (ItemModifierAnswer) |
{- "options": [
- {
- "id": "string",
- "prohibitAlterations": true,
- "showDefault": true,
- "quantityId": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "quantity": 0
}
]
}The endpoints in this group facilitate queries for, and changes to, lists. Use the endpoints in this group to control:
object (DefaultPk) | |
| name | string |
| type | string Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" |
Array of objects (ListItemBasic) | |
| count | number |
{- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "type": "CUSTOM",
- "items": [
- {
- "id": {
- "prefix": "string",
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "urlString": "string",
- "cpk": 0,
- "pk": 0
}, - "listItemId": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "variation": "string",
- "quantity": 0,
- "weightedItemQuantity": 0,
- "sumQuantity": 0,
- "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "listItemSelected": true
}
], - "count": 0
}The endpoints in this group control the management and processing of user transactions within a shopper’s cart. Use the endpoints in this group to:
Returns the user's current cart.
object (id) ID of this store | |
| version | integer <int64> The version number of the transaction |
| subTotal | number The subtotal of the cart |
| rawSubTotal | number The subtotal of the cart without a discount |
| deliveryTotal | number The delivery total for the cart |
| shippingTotal | number The shipping total for the cart |
| taxTotal | number The tax total of the cart |
| tipTotal | number The tip total of the cart |
| roundUpTotal | number The Round Up total of the cart |
| grandTotal | number The grand total of the cart |
| dueTotal | number The unpaid amount on the cart |
| tenderedTotal | number The total of all tenders on the transaction |
| ebtSnapEligibleTotal | number Total amount of the transaction that is eligible for EBT SNAP |
| ebtTanfEligibleTotal | number Total amount of the transaction that is eligible for EBT TANF / EBT Cash |
| payLater | boolean If a pay later tender has been selected for this transaction |
| instructions | string If there are any transaction level customer instructions attached to this transaction then they are stored here |
Array of objects (CartLineDto) The list of line items in the cart | |
Array of objects (GiftCardLineDto) The list of gift card items in the cart | |
Array of objects (CartCouponDto) The list of coupons used on this transaction | |
Array of objects (CartDeferrableComboDto) The list of deferrable discounts used on this transaction | |
object (CheckoutResponseData) Object describing the current status of the checkout sequence for this cart | |
| inStore | boolean Returns true if the cart is being shopped in-store, in Accelerated Checkout |
object (orderType) Returns the ID for the cart's order type, if Multiple Order Types is enabled | |
| online | boolean Returns true if replication with the store is online, for the purposes of notifying the user that they may not be able to place their order. |
| lastSyncTime | string <date-time> Timestamp of the last time this cart was synced. To be sent with CartRequest. Prevents syncing with an out of date cart. |
| addedCouponValid | boolean |
{- "id": "1000-10",
- "version": 0,
- "subTotal": 1.27,
- "rawSubTotal": 1.27,
- "deliveryTotal": 1,
- "shippingTotal": 1,
- "taxTotal": 1,
- "tipTotal": 1,
- "roundUpTotal": 0.37,
- "grandTotal": 10,
- "dueTotal": 10,
- "tenderedTotal": 0,
- "ebtSnapEligibleTotal": 3,
- "ebtTanfEligibleTotal": 10,
- "payLater": true,
- "instructions": "Please take extra care of my order!",
- "lineItems": [
- {
- "id": 1,
- "order": 1,
- "scancode": "3283",
- "detail": "Apples Honeycrisp",
- "quantity": 1,
- "weightedItemQuantity": 2,
- "amountDivider": 2,
- "amount": 2,
- "extended": 4,
- "substitutable": true,
- "instructions": "Please make sure these are ripe!",
- "type": 0,
- "item": {
- "id": "1000-10",
- "image": "1000-11",
- "scanCode": "123456789012",
- "name": "Test Item Name",
- "alternateName": "Alternate Name",
- "suggestedPrice": 1.99,
- "actualPriceDivider": 2,
- "actualPrice": 4,
- "autoDiscount": "10% Off 3 or more.",
- "promo": "Sunday Special",
- "buyDown": "Test Buydown",
- "weightProfile": {
- "abbrv": "lb",
- "decimals": 2,
- "selectCount": 15,
- "selectMinimum": 0.5,
- "selectIncrement": 0.25,
- "allowWeightedQuantity": false
}, - "baseItem": "INV-1000-5",
- "ascQuantity": 0,
- "maxQuantity": 50,
- "maxBaseQuantity": 0,
- "quantityLimitData": {
- "comboPackAmount": 0,
- "vendorGroup": "string",
- "quantityLimit": 0
}, - "attributes": [
- {
- "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "Organic"
}
], - "itemGroups": [
- {
- "prefix": "string",
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "urlString": "string",
- "cpk": 0,
- "pk": 0
}
], - "specialTenders": [
- {
- "id": {
- "prefix": "string",
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "urlString": "string",
- "cpk": 0,
- "pk": 0
}, - "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "string",
- "name": "string",
- "requirements": "string",
- "description": "string",
- "category": "string",
- "brand": "string",
- "startDate": "string",
- "endDate": "string",
- "imageUrl": "string",
- "redeemLimit": "string",
- "requirementUpcs": [
- "string"
], - "rewardUpcs": [
- "string"
], - "targeted": true,
- "featured": true,
- "enabled": true,
- "sortOrder": 0,
- "validBanners": [
- "string"
], - "validLocations": [
- "string"
], - "validForStore": true
}
], - "outOfStock": false,
- "sellOutOfStock": false,
- "brandId": "1000-12",
- "brand": "Maria's",
- "size": "12oz",
- "shelfSequence": 123,
- "location": "Aisle 3, Section 5, Shelf 1",
- "hasModifiers": false,
- "hasLinkedItems": true,
- "averageWeight": 0.34,
- "hasRestriction": false,
- "hasAgeRestriction": true,
- "cashierApprovalRequired": true,
- "hasTimeRestrictions": true,
- "excludeFromCombos": true,
- "prohibitedSalesScheduleNames": [
- "string"
], - "departmentId": "1000-6",
- "department": "Grocery",
- "discountType": "override",
- "discontinued": true
}, - "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
- "linkType": "link",
- "linkedItems": [
- { }
], - "embeddedPrice": 1.5,
- "embeddedDiscount": 0.5,
- "roudUpId": "1000-3",
- "tipProfileId": 1,
- "tipOptionId": 3,
- "tipAmount": 3,
- "couponProviderId": "6",
- "couponItemScanCodes": [
- "string"
]
}
], - "giftCardItems": [
- {
- "id": 1,
- "order": 1,
- "code": "EGC",
- "account": "LJ4BEI2AFKLRNSAR",
- "detail": "E-Gift Card",
- "amount": 100,
- "quantity": 2,
- "design": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}, - "recipientName": "Bob & Alice",
- "senderName": "Joe Schmo",
- "message": "Congratulations! Get something delivered on me!",
- "recipientEmail": "test@ecrs.com",
- "recipientPhoneNumber": "(828) 265-2907",
- "print": true,
- "sendDate": "2024-05-19T16:00:00Z"
}
], - "coupons": [
- {
- "id": "1000-10",
- "name": "10% Off!",
- "code": "V8<6",
- "valid": true
}
], - "deferrableCombos": [
- {
- "id": "1000-10",
- "name": "Happy Birthday! 20% Off",
- "couponExpiration": "2024-05-31",
- "periodExpiration": "2024-06-07",
- "uses": 3,
- "deferred": true,
- "costs": [
- {
- "name": "string",
- "showDecimal": true,
- "value": 0
}
], - "rewards": [
- {
- "type": "DISCOUNT",
- "name": "string",
- "showDecimal": true,
- "value": 0
}
]
}
], - "checkout": {
- "stage": 1,
- "maxStage": 3,
- "maxStageReached": 3,
- "emails": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "email": "string",
- "billTo": true,
- "shipTo": true,
- "marketing": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "ereceipt": true
}
], - "phones": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "addresses": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "postal": "string",
- "country": "string",
- "shipTo": true,
- "billTo": true,
- "location": true,
- "webcart": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "billing": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shipping": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shippingMethod": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "cost": 0,
- "addressRequired": true,
- "reservationRequired": true,
- "status": "string",
- "memo": "string",
- "reservationDates": [
- {
- "date": "2019-08-24",
- "times": [
- {
- "start": "13:35:00",
- "end": "13:35:00",
- "available": true
}
]
}
], - "tipProfiles": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "type": 0,
- "value": 0,
- "default": true
}
]
}
], - "thirdPartyServiceProfile": {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}, - "reason": "string"
}, - "thirdPartyShipping": {
- "carrierCode": "string",
- "serviceCode": "string",
- "packageCode": "string",
- "serviceName": "string",
- "cost": 0
}, - "giftMessage": "string",
- "availableRoundups": [
- {
- "id": "1000-10",
- "name": "Round Up for charity",
- "selected": true
}
], - "reservationDate": "2024-05-12",
- "reservationTime": "13:35:00",
- "reservationExpiration": "2019-08-24T14:15:22Z",
- "shippingRequired": true,
- "shippingMethods": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "cost": 0,
- "addressRequired": true,
- "reservationRequired": true,
- "status": "string",
- "memo": "string",
- "reservationDates": [
- {
- "date": "2019-08-24",
- "times": [
- {
- "start": "13:35:00",
- "end": "13:35:00",
- "available": true
}
]
}
], - "tipProfiles": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "type": 0,
- "value": 0,
- "default": true
}
]
}
], - "thirdPartyServiceProfile": {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}, - "reason": "string"
}
], - "paymentMethods": [
- {
- "pmId": "string",
- "methodId": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "string",
- "finalDigits": "string",
- "expiration": "string",
- "authFk": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "tenderType": 0
}, - "provider": "string",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string"
}
], - "isGift": true
}, - "inStore": true,
- "orderType": "1000-2",
- "online": true,
- "lastSyncTime": "2019-08-24T14:15:22Z",
- "addedCouponValid": true
}Synchronizes the requested changes with the transaction backing the cart.
object (transaction) If the client knows about a transaction that backs it's current cart then it can provide the id here, otherwise a new transaction will be created to back the cart | |
| instructions | string Sends the desired instructional text for the transaction to the server |
Array of objects (CartSyncItem) The list of items that should be on the backing transaction | |
Array of objects (CartSyncSpecialOrderItem) The list of special order items that should be on the backing transaction. Special Order items are items the shopper wants but could not find on the site. | |
Array of objects (CartSyncCoupon) The list of coupons that should be on the backing transaction | |
Array of objects (CartSyncDeferrableCombo) The list of deferrable coupons that should be on the backing transaction | |
Array of objects (CartSyncGiftCardItem) The list of gift card items that should be on the backing transaction | |
object (CheckoutRequestData) Checkout data that should be on the backing transaction | |
| inStore | boolean Indicates whether the customer is shopping in-store (via Accelerated Checkout) |
| deliveryTotal | number The delivery total that should be on the backing transaction |
object (orderTypeId) If Multiple Order Types is enabled, this ID is used during the cart sync to associate the transaction with an order type | |
| lastSyncTime | string <date-time> Timestamp of the last time this cart was synced. Returned by CartResponse. Prevents syncing with an out of date cart. |
object (id) ID of this store | |
| version | integer <int64> The version number of the transaction |
| subTotal | number The subtotal of the cart |
| rawSubTotal | number The subtotal of the cart without a discount |
| deliveryTotal | number The delivery total for the cart |
| shippingTotal | number The shipping total for the cart |
| taxTotal | number The tax total of the cart |
| tipTotal | number The tip total of the cart |
| roundUpTotal | number The Round Up total of the cart |
| grandTotal | number The grand total of the cart |
| dueTotal | number The unpaid amount on the cart |
| tenderedTotal | number The total of all tenders on the transaction |
| ebtSnapEligibleTotal | number Total amount of the transaction that is eligible for EBT SNAP |
| ebtTanfEligibleTotal | number Total amount of the transaction that is eligible for EBT TANF / EBT Cash |
| payLater | boolean If a pay later tender has been selected for this transaction |
| instructions | string If there are any transaction level customer instructions attached to this transaction then they are stored here |
Array of objects (CartLineDto) The list of line items in the cart | |
Array of objects (GiftCardLineDto) The list of gift card items in the cart | |
Array of objects (CartCouponDto) The list of coupons used on this transaction | |
Array of objects (CartDeferrableComboDto) The list of deferrable discounts used on this transaction | |
object (CheckoutResponseData) Object describing the current status of the checkout sequence for this cart | |
| inStore | boolean Returns true if the cart is being shopped in-store, in Accelerated Checkout |
object (orderType) Returns the ID for the cart's order type, if Multiple Order Types is enabled | |
| online | boolean Returns true if replication with the store is online, for the purposes of notifying the user that they may not be able to place their order. |
| lastSyncTime | string <date-time> Timestamp of the last time this cart was synced. To be sent with CartRequest. Prevents syncing with an out of date cart. |
| addedCouponValid | boolean |
{- "transaction": "1000-1",
- "instructions": "string",
- "items": [
- {
- "id": 1,
- "item": "INV-1000-1",
- "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
- "quantity": 3,
- "substitutable": true,
- "instructions": "Please make sure these are ripe!",
- "weightedItemQuantity": 2,
- "embeddedPrice": 2,
- "originalPrice": 5,
- "embeddedDiscount": 1,
- "expiration": "2024-05-12",
- "order": 1,
- "type": 1,
- "tipProfileId": 1,
- "tipOptionId": 3,
- "tipAmount": 5,
- "roundUpId": "1000-9",
- "roundUpAmount": 0.73,
- "entryMethod": "RECOMMENDATION_HOME_PAGE"
}
], - "specialOrderItems": [
- {
- "id": 1,
- "description": "I couldn't find strawberry short cake from the deli, but I would like that please",
- "quantity": 1
}
], - "coupons": [
- {
- "code": "V<X9",
- "remove": true
}
], - "deferrableCombos": [
- {
- "id": "1000-10",
- "deferred": true
}
], - "giftCardItems": [
- {
- "id": 3,
- "amount": 100,
- "quantity": 2,
- "design": "1000-8",
- "recipientName": "Robert & Alice",
- "senderName": "Joesph Schmo",
- "message": "You are the best! Get some groceries on me!",
- "recipientEmail": "test@ecrs.com",
- "recipientPhoneNumber": "(828) 265-2907",
- "print": true,
- "sendDate": "2025-05-19T16:00:00Z"
}
], - "checkout": {
- "stage": 1,
- "maxStageReached": 3,
- "billing": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shipping": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shippingMethod": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "cost": 0,
- "addressRequired": true,
- "reservationRequired": true,
- "status": "string",
- "memo": "string",
- "reservationDates": [
- {
- "date": "2019-08-24",
- "times": [
- {
- "start": "13:35:00",
- "end": "13:35:00",
- "available": true
}
]
}
], - "tipProfiles": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "type": 0,
- "value": 0,
- "default": true
}
]
}
], - "thirdPartyServiceProfile": {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}, - "reason": "string"
}, - "thirdPartyShipping": {
- "carrierCode": "string",
- "serviceCode": "string",
- "packageCode": "string"
}, - "giftMessage": "string",
- "reservationDate": "2024-05-31",
- "reservationTime": "13:35:00",
- "isGift": true
}, - "inStore": true,
- "deliveryTotal": 0,
- "orderTypeId": "1000-3",
- "lastSyncTime": "2019-08-24T14:15:22Z"
}{- "id": "1000-10",
- "version": 0,
- "subTotal": 1.27,
- "rawSubTotal": 1.27,
- "deliveryTotal": 1,
- "shippingTotal": 1,
- "taxTotal": 1,
- "tipTotal": 1,
- "roundUpTotal": 0.37,
- "grandTotal": 10,
- "dueTotal": 10,
- "tenderedTotal": 0,
- "ebtSnapEligibleTotal": 3,
- "ebtTanfEligibleTotal": 10,
- "payLater": true,
- "instructions": "Please take extra care of my order!",
- "lineItems": [
- {
- "id": 1,
- "order": 1,
- "scancode": "3283",
- "detail": "Apples Honeycrisp",
- "quantity": 1,
- "weightedItemQuantity": 2,
- "amountDivider": 2,
- "amount": 2,
- "extended": 4,
- "substitutable": true,
- "instructions": "Please make sure these are ripe!",
- "type": 0,
- "item": {
- "id": "1000-10",
- "image": "1000-11",
- "scanCode": "123456789012",
- "name": "Test Item Name",
- "alternateName": "Alternate Name",
- "suggestedPrice": 1.99,
- "actualPriceDivider": 2,
- "actualPrice": 4,
- "autoDiscount": "10% Off 3 or more.",
- "promo": "Sunday Special",
- "buyDown": "Test Buydown",
- "weightProfile": {
- "abbrv": "lb",
- "decimals": 2,
- "selectCount": 15,
- "selectMinimum": 0.5,
- "selectIncrement": 0.25,
- "allowWeightedQuantity": false
}, - "baseItem": "INV-1000-5",
- "ascQuantity": 0,
- "maxQuantity": 50,
- "maxBaseQuantity": 0,
- "quantityLimitData": {
- "comboPackAmount": 0,
- "vendorGroup": "string",
- "quantityLimit": 0
}, - "attributes": [
- {
- "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "Organic"
}
], - "itemGroups": [
- {
- "prefix": "string",
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "urlString": "string",
- "cpk": 0,
- "pk": 0
}
], - "specialTenders": [
- {
- "id": {
- "prefix": "string",
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "urlString": "string",
- "cpk": 0,
- "pk": 0
}, - "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "string",
- "name": "string",
- "requirements": "string",
- "description": "string",
- "category": "string",
- "brand": "string",
- "startDate": "string",
- "endDate": "string",
- "imageUrl": "string",
- "redeemLimit": "string",
- "requirementUpcs": [
- "string"
], - "rewardUpcs": [
- "string"
], - "targeted": true,
- "featured": true,
- "enabled": true,
- "sortOrder": 0,
- "validBanners": [
- "string"
], - "validLocations": [
- "string"
], - "validForStore": true
}
], - "outOfStock": false,
- "sellOutOfStock": false,
- "brandId": "1000-12",
- "brand": "Maria's",
- "size": "12oz",
- "shelfSequence": 123,
- "location": "Aisle 3, Section 5, Shelf 1",
- "hasModifiers": false,
- "hasLinkedItems": true,
- "averageWeight": 0.34,
- "hasRestriction": false,
- "hasAgeRestriction": true,
- "cashierApprovalRequired": true,
- "hasTimeRestrictions": true,
- "excludeFromCombos": true,
- "prohibitedSalesScheduleNames": [
- "string"
], - "departmentId": "1000-6",
- "department": "Grocery",
- "discountType": "override",
- "discontinued": true
}, - "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
- "linkType": "link",
- "linkedItems": [
- { }
], - "embeddedPrice": 1.5,
- "embeddedDiscount": 0.5,
- "roudUpId": "1000-3",
- "tipProfileId": 1,
- "tipOptionId": 3,
- "tipAmount": 3,
- "couponProviderId": "6",
- "couponItemScanCodes": [
- "string"
]
}
], - "giftCardItems": [
- {
- "id": 1,
- "order": 1,
- "code": "EGC",
- "account": "LJ4BEI2AFKLRNSAR",
- "detail": "E-Gift Card",
- "amount": 100,
- "quantity": 2,
- "design": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}, - "recipientName": "Bob & Alice",
- "senderName": "Joe Schmo",
- "message": "Congratulations! Get something delivered on me!",
- "recipientEmail": "test@ecrs.com",
- "recipientPhoneNumber": "(828) 265-2907",
- "print": true,
- "sendDate": "2024-05-19T16:00:00Z"
}
], - "coupons": [
- {
- "id": "1000-10",
- "name": "10% Off!",
- "code": "V8<6",
- "valid": true
}
], - "deferrableCombos": [
- {
- "id": "1000-10",
- "name": "Happy Birthday! 20% Off",
- "couponExpiration": "2024-05-31",
- "periodExpiration": "2024-06-07",
- "uses": 3,
- "deferred": true,
- "costs": [
- {
- "name": "string",
- "showDecimal": true,
- "value": 0
}
], - "rewards": [
- {
- "type": "DISCOUNT",
- "name": "string",
- "showDecimal": true,
- "value": 0
}
]
}
], - "checkout": {
- "stage": 1,
- "maxStage": 3,
- "maxStageReached": 3,
- "emails": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "email": "string",
- "billTo": true,
- "shipTo": true,
- "marketing": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "ereceipt": true
}
], - "phones": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "addresses": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "postal": "string",
- "country": "string",
- "shipTo": true,
- "billTo": true,
- "location": true,
- "webcart": true,
- "did": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}
], - "billing": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shipping": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shippingMethod": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "cost": 0,
- "addressRequired": true,
- "reservationRequired": true,
- "status": "string",
- "memo": "string",
- "reservationDates": [
- {
- "date": "2019-08-24",
- "times": [
- {
- "start": "13:35:00",
- "end": "13:35:00",
- "available": true
}
]
}
], - "tipProfiles": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "type": 0,
- "value": 0,
- "default": true
}
]
}
], - "thirdPartyServiceProfile": {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}, - "reason": "string"
}, - "thirdPartyShipping": {
- "carrierCode": "string",
- "serviceCode": "string",
- "packageCode": "string",
- "serviceName": "string",
- "cost": 0
}, - "giftMessage": "string",
- "availableRoundups": [
- {
- "id": "1000-10",
- "name": "Round Up for charity",
- "selected": true
}
], - "reservationDate": "2024-05-12",
- "reservationTime": "13:35:00",
- "reservationExpiration": "2019-08-24T14:15:22Z",
- "shippingRequired": true,
- "shippingMethods": [
- {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "cost": 0,
- "addressRequired": true,
- "reservationRequired": true,
- "status": "string",
- "memo": "string",
- "reservationDates": [
- {
- "date": "2019-08-24",
- "times": [
- {
- "start": "13:35:00",
- "end": "13:35:00",
- "available": true
}
]
}
], - "tipProfiles": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "type": 0,
- "value": 0,
- "default": true
}
]
}
], - "thirdPartyServiceProfile": {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}, - "reason": "string"
}
], - "paymentMethods": [
- {
- "pmId": "string",
- "methodId": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "string",
- "finalDigits": "string",
- "expiration": "string",
- "authFk": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "tenderType": 0
}, - "provider": "string",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string"
}
], - "isGift": true
}, - "inStore": true,
- "orderType": "1000-2",
- "online": true,
- "lastSyncTime": "2019-08-24T14:15:22Z",
- "addedCouponValid": true
}Check out the current transaction. Checking out using this method will send the transaction to the Web Orders queue.
| complete | boolean If the current payment completed the order. |
object (GoodbyeData) Data used to display the goodbye / thank you screen |
{- "complete": true,
- "goodbyeData": {
- "orderId": "1000-1",
- "scanCode": "5R945K75X771BN",
- "orderDate": "2024-05-09",
- "orderTotal": 22.42,
- "taxTotal": 1,
- "shippingTotal": 7,
- "shippingMethod": "Pickup",
- "reservationDate": "2019-08-24T14:15:22Z",
- "chargeBalance": 10,
- "chargeLimit": 500,
- "loyaltyAccruals": [
- {
- "loyaltyName": "Healthy Rewards",
- "loyaltyMinimumAmount": 5,
- "loyaltyMinimumBalance": 1,
- "loyaltyRedeemed": 0.5,
- "loyaltyProjectedBalance": 10,
- "loyaltyAccrual": 0.1,
- "loyaltyExpiring": 2,
- "loyaltyExpirationDate": "2024-05-09",
- "showDecimal": true
}
], - "coupons": [
- {
- "name": "string",
- "code": "string"
}
], - "punchCards": [
- {
- "name": "string",
- "loyaltyRule": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "complete": 0,
- "currentPunches": 0,
- "requiredPunches": 0,
- "accrued": 0,
- "redeemed": 0,
- "inactive": true,
- "expiration": "2019-08-24"
}
], - "printableGiftCards": [
- {
- "id": 1,
- "order": 1,
- "code": "EGC",
- "account": "LJ4BEI2AFKLRNSAR",
- "detail": "E-Gift Card",
- "amount": 100,
- "quantity": 2,
- "design": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}, - "recipientName": "Bob & Alice",
- "senderName": "Joe Schmo",
- "message": "Congratulations! Get something delivered on me!",
- "recipientEmail": "test@ecrs.com",
- "recipientPhoneNumber": "(828) 265-2907",
- "print": true,
- "sendDate": "2024-05-19T16:00:00Z"
}
], - "savings": 2.6
}
}Returns the payment methods that the merchant has configured eligible for Pay Now.
| pmId | string |
object (DefaultPk) | |
| name | string |
| available | boolean |
| type | integer <int32> |
| testing | boolean |
| balance | number |
| eligible | number |
| minimum | number |
| maximum | number |
object (TokenInfo) | |
| provider | string |
| iframePath | string |
| clientKey | string |
| accessBlock | string |
| serverPath | string |
| iframePropertyQueryCount | integer <int32> |
| merchantId | string |
| countryCode | string |
| currencyCode | string |
| applePayMerchantIdentifier | string |
[- {
- "pmId": "string",
- "methodId": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "string",
- "finalDigits": "string",
- "expiration": "string",
- "authFk": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "tenderType": 0
}, - "provider": "string",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string"
}
]Check out the current transaction for in-store line-busting. Checking out using this method will send the transaction the normal in-store suspend queue (not the Web Orders queue).
| complete | boolean If the current payment completed the order. |
object (GoodbyeData) Data used to display the goodbye / thank you screen |
{- "complete": true,
- "goodbyeData": {
- "orderId": "1000-1",
- "scanCode": "5R945K75X771BN",
- "orderDate": "2024-05-09",
- "orderTotal": 22.42,
- "taxTotal": 1,
- "shippingTotal": 7,
- "shippingMethod": "Pickup",
- "reservationDate": "2019-08-24T14:15:22Z",
- "chargeBalance": 10,
- "chargeLimit": 500,
- "loyaltyAccruals": [
- {
- "loyaltyName": "Healthy Rewards",
- "loyaltyMinimumAmount": 5,
- "loyaltyMinimumBalance": 1,
- "loyaltyRedeemed": 0.5,
- "loyaltyProjectedBalance": 10,
- "loyaltyAccrual": 0.1,
- "loyaltyExpiring": 2,
- "loyaltyExpirationDate": "2024-05-09",
- "showDecimal": true
}
], - "coupons": [
- {
- "name": "string",
- "code": "string"
}
], - "punchCards": [
- {
- "name": "string",
- "loyaltyRule": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "complete": 0,
- "currentPunches": 0,
- "requiredPunches": 0,
- "accrued": 0,
- "redeemed": 0,
- "inactive": true,
- "expiration": "2019-08-24"
}
], - "printableGiftCards": [
- {
- "id": 1,
- "order": 1,
- "code": "EGC",
- "account": "LJ4BEI2AFKLRNSAR",
- "detail": "E-Gift Card",
- "amount": 100,
- "quantity": 2,
- "design": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}, - "recipientName": "Bob & Alice",
- "senderName": "Joe Schmo",
- "message": "Congratulations! Get something delivered on me!",
- "recipientEmail": "test@ecrs.com",
- "recipientPhoneNumber": "(828) 265-2907",
- "print": true,
- "sendDate": "2024-05-19T16:00:00Z"
}
], - "savings": 2.6
}
}Check out the current transaction and complete it immediately. Checking out using this method will bypass the picking process.
| complete | boolean If the current payment completed the order. |
object (GoodbyeData) Data used to display the goodbye / thank you screen |
{- "complete": true,
- "goodbyeData": {
- "orderId": "1000-1",
- "scanCode": "5R945K75X771BN",
- "orderDate": "2024-05-09",
- "orderTotal": 22.42,
- "taxTotal": 1,
- "shippingTotal": 7,
- "shippingMethod": "Pickup",
- "reservationDate": "2019-08-24T14:15:22Z",
- "chargeBalance": 10,
- "chargeLimit": 500,
- "loyaltyAccruals": [
- {
- "loyaltyName": "Healthy Rewards",
- "loyaltyMinimumAmount": 5,
- "loyaltyMinimumBalance": 1,
- "loyaltyRedeemed": 0.5,
- "loyaltyProjectedBalance": 10,
- "loyaltyAccrual": 0.1,
- "loyaltyExpiring": 2,
- "loyaltyExpirationDate": "2024-05-09",
- "showDecimal": true
}
], - "coupons": [
- {
- "name": "string",
- "code": "string"
}
], - "punchCards": [
- {
- "name": "string",
- "loyaltyRule": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "complete": 0,
- "currentPunches": 0,
- "requiredPunches": 0,
- "accrued": 0,
- "redeemed": 0,
- "inactive": true,
- "expiration": "2019-08-24"
}
], - "printableGiftCards": [
- {
- "id": 1,
- "order": 1,
- "code": "EGC",
- "account": "LJ4BEI2AFKLRNSAR",
- "detail": "E-Gift Card",
- "amount": 100,
- "quantity": 2,
- "design": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "image": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}
}, - "recipientName": "Bob & Alice",
- "senderName": "Joe Schmo",
- "message": "Congratulations! Get something delivered on me!",
- "recipientEmail": "test@ecrs.com",
- "recipientPhoneNumber": "(828) 265-2907",
- "print": true,
- "sendDate": "2024-05-19T16:00:00Z"
}
], - "savings": 2.6
}
}The endpoints in this group control the management of order type carts. Use these endpoints in conjunction with CATAPULT WebCart’s Multiple Order Type functionality to offer more than one type of order such as delivery and pickup. If you are a CATAPULT retailer who would like to learn more about Multiple Order Types in WebCart, see this related documentation in the OLM. Use these endpoints to retrieve and synchronize order type carts and retrieve detailed information about a specific order type.
| id required | string |
object (transaction) If the client knows about a transaction that backs it's current cart then it can provide the id here, otherwise a new transaction will be created to back the cart | |
| instructions | string Sends the desired instructional text for the transaction to the server |
Array of objects (CartSyncItem) The list of items that should be on the backing transaction | |
Array of objects (CartSyncSpecialOrderItem) The list of special order items that should be on the backing transaction. Special Order items are items the shopper wants but could not find on the site. | |
Array of objects (CartSyncCoupon) The list of coupons that should be on the backing transaction | |
Array of objects (CartSyncDeferrableCombo) The list of deferrable coupons that should be on the backing transaction | |
Array of objects (CartSyncGiftCardItem) The list of gift card items that should be on the backing transaction | |
object (CheckoutRequestData) Checkout data that should be on the backing transaction | |
| inStore | boolean Indicates whether the customer is shopping in-store (via Accelerated Checkout) |
| deliveryTotal | number The delivery total that should be on the backing transaction |
object (orderTypeId) If Multiple Order Types is enabled, this ID is used during the cart sync to associate the transaction with an order type | |
| lastSyncTime | string <date-time> Timestamp of the last time this cart was synced. Returned by CartResponse. Prevents syncing with an out of date cart. |
{- "transaction": "1000-1",
- "instructions": "string",
- "items": [
- {
- "id": 1,
- "item": "INV-1000-1",
- "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
- "quantity": 3,
- "substitutable": true,
- "instructions": "Please make sure these are ripe!",
- "weightedItemQuantity": 2,
- "embeddedPrice": 2,
- "originalPrice": 5,
- "embeddedDiscount": 1,
- "expiration": "2024-05-12",
- "order": 1,
- "type": 1,
- "tipProfileId": 1,
- "tipOptionId": 3,
- "tipAmount": 5,
- "roundUpId": "1000-9",
- "roundUpAmount": 0.73,
- "entryMethod": "RECOMMENDATION_HOME_PAGE"
}
], - "specialOrderItems": [
- {
- "id": 1,
- "description": "I couldn't find strawberry short cake from the deli, but I would like that please",
- "quantity": 1
}
], - "coupons": [
- {
- "code": "V<X9",
- "remove": true
}
], - "deferrableCombos": [
- {
- "id": "1000-10",
- "deferred": true
}
], - "giftCardItems": [
- {
- "id": 3,
- "amount": 100,
- "quantity": 2,
- "design": "1000-8",
- "recipientName": "Robert & Alice",
- "senderName": "Joesph Schmo",
- "message": "You are the best! Get some groceries on me!",
- "recipientEmail": "test@ecrs.com",
- "recipientPhoneNumber": "(828) 265-2907",
- "print": true,
- "sendDate": "2025-05-19T16:00:00Z"
}
], - "checkout": {
- "stage": 1,
- "maxStageReached": 3,
- "billing": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shipping": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shippingMethod": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "cost": 0,
- "addressRequired": true,
- "reservationRequired": true,
- "status": "string",
- "memo": "string",
- "reservationDates": [
- {
- "date": "2019-08-24",
- "times": [
- {
- "start": "13:35:00",
- "end": "13:35:00",
- "available": true
}
]
}
], - "tipProfiles": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "type": 0,
- "value": 0,
- "default": true
}
]
}
], - "thirdPartyServiceProfile": {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}, - "reason": "string"
}, - "thirdPartyShipping": {
- "carrierCode": "string",
- "serviceCode": "string",
- "packageCode": "string"
}, - "giftMessage": "string",
- "reservationDate": "2024-05-31",
- "reservationTime": "13:35:00",
- "isGift": true
}, - "inStore": true,
- "deliveryTotal": 0,
- "orderTypeId": "1000-3",
- "lastSyncTime": "2019-08-24T14:15:22Z"
}object (transaction) If the client knows about a transaction that backs it's current cart then it can provide the id here, otherwise a new transaction will be created to back the cart | |
| instructions | string Sends the desired instructional text for the transaction to the server |
Array of objects (CartSyncItem) The list of items that should be on the backing transaction | |
Array of objects (CartSyncSpecialOrderItem) The list of special order items that should be on the backing transaction. Special Order items are items the shopper wants but could not find on the site. | |
Array of objects (CartSyncCoupon) The list of coupons that should be on the backing transaction | |
Array of objects (CartSyncDeferrableCombo) The list of deferrable coupons that should be on the backing transaction | |
Array of objects (CartSyncGiftCardItem) The list of gift card items that should be on the backing transaction | |
object (CheckoutRequestData) Checkout data that should be on the backing transaction | |
| inStore | boolean Indicates whether the customer is shopping in-store (via Accelerated Checkout) |
| deliveryTotal | number The delivery total that should be on the backing transaction |
object (orderTypeId) If Multiple Order Types is enabled, this ID is used during the cart sync to associate the transaction with an order type | |
| lastSyncTime | string <date-time> Timestamp of the last time this cart was synced. Returned by CartResponse. Prevents syncing with an out of date cart. |
[- {
- "transaction": "1000-1",
- "instructions": "string",
- "items": [
- {
- "id": 1,
- "item": "INV-1000-1",
- "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
- "quantity": 3,
- "substitutable": true,
- "instructions": "Please make sure these are ripe!",
- "weightedItemQuantity": 2,
- "embeddedPrice": 2,
- "originalPrice": 5,
- "embeddedDiscount": 1,
- "expiration": "2024-05-12",
- "order": 1,
- "type": 1,
- "tipProfileId": 1,
- "tipOptionId": 3,
- "tipAmount": 5,
- "roundUpId": "1000-9",
- "roundUpAmount": 0.73,
- "entryMethod": "RECOMMENDATION_HOME_PAGE"
}
], - "specialOrderItems": [
- {
- "id": 1,
- "description": "I couldn't find strawberry short cake from the deli, but I would like that please",
- "quantity": 1
}
], - "coupons": [
- {
- "code": "V<X9",
- "remove": true
}
], - "deferrableCombos": [
- {
- "id": "1000-10",
- "deferred": true
}
], - "giftCardItems": [
- {
- "id": 3,
- "amount": 100,
- "quantity": 2,
- "design": "1000-8",
- "recipientName": "Robert & Alice",
- "senderName": "Joesph Schmo",
- "message": "You are the best! Get some groceries on me!",
- "recipientEmail": "test@ecrs.com",
- "recipientPhoneNumber": "(828) 265-2907",
- "print": true,
- "sendDate": "2025-05-19T16:00:00Z"
}
], - "checkout": {
- "stage": 1,
- "maxStageReached": 3,
- "billing": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shipping": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "shippingMethod": {
- "id": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "name": "string",
- "cost": 0,
- "addressRequired": true,
- "reservationRequired": true,
- "status": "string",
- "memo": "string",
- "reservationDates": [
- {
- "date": "2019-08-24",
- "times": [
- {
- "start": "13:35:00",
- "end": "13:35:00",
- "available": true
}
]
}
], - "tipProfiles": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "littlePk": 0,
- "littleCpk": 0,
- "urlString": "string"
}, - "type": 0,
- "value": 0,
- "default": true
}
]
}
], - "thirdPartyServiceProfile": {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}, - "reason": "string"
}, - "thirdPartyShipping": {
- "carrierCode": "string",
- "serviceCode": "string",
- "packageCode": "string"
}, - "giftMessage": "string",
- "reservationDate": "2024-05-31",
- "reservationTime": "13:35:00",
- "isGift": true
}, - "inStore": true,
- "deliveryTotal": 0,
- "orderTypeId": "1000-3",
- "lastSyncTime": "2019-08-24T14:15:22Z"
}
]The endpoints in this group facilitate check-in. WebCart's check-in functionality allows customers to signify they have arrived at the store to pick-up an order. Use the endpoints in this group to:
The endpoints in this group facilitate queries and updates to charge accounts. Use endpoints in this group to:
| id required | string |
| method | string |
object | |
| amount | number |
| recaptcha | string |
{- "method": "string",
- "info": {
- "property1": "string",
- "property2": "string"
}, - "amount": 0,
- "recaptcha": "string"
}There is one endpoint in this group that facilitates querying for circulars. This only considers circulars created on active Price & Cost Change worksheets at this time. Items pulled from the circular will populate the “Current Specials” option that displays in the header of a WebCart site.
The endpoints in this group control the management of customer membership details and payments. The Online Manual (OLM) contains more information about CATAPULT Membership Server (CMS) and how to set it up in WebCart. Use the endpoints in this group to:
Provides membership details for a specific customer
object (CoopMemberInfoDto) | |
object (CoopMemberEquityDto) | |
object (CoopMemberFeesDto) | |
object (CoopMemberJoiningFeeDto) |
| code required | |
| message required | string Summary of the error. |
| code required | |
| message required | string Summary of the error. |
{- "memberInfo": {
- "memberId": "string",
- "program": "string",
- "status": "string",
- "memberJoined": "2019-08-24"
}, - "memberEquity": {
- "equityTotal": 0,
- "equityNeeded": 0,
- "equityNextAmountDue": 0,
- "equityNextDueDate": "2019-08-24",
- "equityLastAmount": 0,
- "equityLastDueDate": "2019-08-24",
- "equityDue": true
}, - "memberFees": {
- "feesTotal": 0,
- "memberNextAmountDue": 0,
- "membershipNextDueDate": "2019-08-24",
- "feesLastAmount": 0,
- "feesLastDueDate": "2019-08-24",
- "feesDue": true
}, - "memberJoiningFee": {
- "joiningFeePaid": true,
- "joiningFeeAmount": 0
}
}Returns a list of payment methods that can be used to pay equity or fees.
object (CoopMemberInfoDto) | |
object (CoopMemberEquityDto) | |
object (CoopMemberFeesDto) | |
object (CoopMemberJoiningFeeDto) |
{- "memberInfo": {
- "memberId": "string",
- "program": "string",
- "status": "string",
- "memberJoined": "2019-08-24"
}, - "memberEquity": {
- "equityTotal": 0,
- "equityNeeded": 0,
- "equityNextAmountDue": 0,
- "equityNextDueDate": "2019-08-24",
- "equityLastAmount": 0,
- "equityLastDueDate": "2019-08-24",
- "equityDue": true
}, - "memberFees": {
- "feesTotal": 0,
- "memberNextAmountDue": 0,
- "membershipNextDueDate": "2019-08-24",
- "feesLastAmount": 0,
- "feesLastDueDate": "2019-08-24",
- "feesDue": true
}, - "memberJoiningFee": {
- "joiningFeePaid": true,
- "joiningFeeAmount": 0
}
}Allows for a membership customer to pay their membership fee, pay equity, and returns the updated customer.
| chargeTypeParam required | string Enum: "equityPayment" "membershipFee" Determines where the payment is being made to |
| chargeType required | string |
required | object (CmsPaymentRequest) Membership payment request including payment method, amount, form, and, conditionally, reCAPTCHA information. |
| method | string |
object | |
| amount | number |
| recaptcha | string |
object (CoopMemberInfoDto) | |
object (CoopMemberEquityDto) | |
object (CoopMemberFeesDto) | |
object (CoopMemberJoiningFeeDto) |
{- "method": "string",
- "info": {
- "property1": "string",
- "property2": "string"
}, - "amount": 0,
- "recaptcha": "string"
}{- "memberInfo": {
- "memberId": "string",
- "program": "string",
- "status": "string",
- "memberJoined": "2019-08-24"
}, - "memberEquity": {
- "equityTotal": 0,
- "equityNeeded": 0,
- "equityNextAmountDue": 0,
- "equityNextDueDate": "2019-08-24",
- "equityLastAmount": 0,
- "equityLastDueDate": "2019-08-24",
- "equityDue": true
}, - "memberFees": {
- "feesTotal": 0,
- "memberNextAmountDue": 0,
- "membershipNextDueDate": "2019-08-24",
- "feesLastAmount": 0,
- "feesLastDueDate": "2019-08-24",
- "feesDue": true
}, - "memberJoiningFee": {
- "joiningFeePaid": true,
- "joiningFeeAmount": 0
}
}The endpoints in this group allow you to offer digital coupons on your e-commerce site. Use the endpoints in this group to:
Array of objects (TypedDefaultPk) The group path in which to search, consists of the ids of departments, promotional sale worksheets, goes well with groups, substitution groups, brands, item groups, and/or menu groups. | |
| q required | string <= 64 characters The query string that will be used to search for results |
| iq | Array of strings[ items [ 1 .. 64 ] characters ] Minor text modifiers that are performed within (as an AND) with the main query |
| s | string Enum: "NAZ" "NZA" "PLH" "PHL" "POP" The sort to use when collecting search results. In addition to the default(relevance) sort, indicated by the absence of this parameter the following are available. NAZ - Alphabetical ascending NZA - Albhabetical descending PLH - Price, low to high PHL - Price, high to low POP - Popularity, high to low |
| ps | integer <int32> <= 128 Default: 8 The number of results per page of the request |
| pn | integer <int32> >= 1 Default: 1 The 1-based index of the requested page |
object A map from the facet category id to the requested facet value ids |
{- "g": "MGP-1000-20",
- "q": "App",
- "iq": [
- "Red"
], - "s": "NAZ",
- "ps": 16,
- "pn": 2,
- "facets": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Returns digital coupon recommendations for a specific customer. Requires cognition coupon recommendations to be enabled.
| id | string |
| name | string |
| requirements | string |
| description | string |
| category | string |
| brand | string |
| startDate | string |
| endDate | string |
| imageUrl | string |
| redeemLimit | string |
| requirementUpcs | Array of strings |
| rewardUpcs | Array of strings |
| targeted | boolean |
| featured | boolean |
| enabled | boolean |
| sortOrder | integer <int32> |
| validBanners | Array of strings |
| validLocations | Array of strings |
| validForStore | boolean |
[- {
- "id": "string",
- "name": "string",
- "requirements": "string",
- "description": "string",
- "category": "string",
- "brand": "string",
- "startDate": "string",
- "endDate": "string",
- "imageUrl": "string",
- "redeemLimit": "string",
- "requirementUpcs": [
- "string"
], - "rewardUpcs": [
- "string"
], - "targeted": true,
- "featured": true,
- "enabled": true,
- "sortOrder": 0,
- "validBanners": [
- "string"
], - "validLocations": [
- "string"
], - "validForStore": true
}
]The endpoints in this group allow you to accept EBT payments. Use the endpoints in this group to:
The endpoints in this group facilitate querying and creating gift cards, including those requiring a PIN for additional security. Use these endpoints to:
The endpoints in this group allow you to accepting payments on your e-commerce site. Use the endpoints in this group to:
Payment authorization can be collected in several different ways. Refer to the Authorize endpoint documentation (in this group) for more information about all available methods.
Perform a pre-authorization with a payment token for the shopper's current cart.
Pre-authorization can be collected in several different ways.
{method}. Its Tender must have the type "Tokenization".
Refer to the Add Token endpoint for more details.
Use the ID of the Payment Method for adding a card for {method}. Its Tender must have the type "Credit Card", which is different from "Tokenization". This is the Method used to add new cards.
To pre-authorize with Google Pay, you need configure your CardConnect Electronic Tender Server to support it. Follow these steps to set it up:
Note: These instructions will be moved to the OLM as soon as possible.
Use the same {method} as Google Pay.
Note that Apple Pay is currently experimental.
{method}. Its Tender must have the type "Gift Card".| method required | string The ID of the payment method to authorize. |
Method-specific data needed to complete authorization
| amount required | number The amount to authorize. |
| authFk required | string The ID of the saved card. |
| finalDigits required | string The final digits (usually last four) of the saved card. |
| brand required | string The brand of the saved card. |
| code required | integer <int32> Value: 0 |
| message required | string Value: "Success" |
| successful required | boolean Whether or not the authorization succeeded. |
| primaryCorrelation required | string The primary correlation of the authorization. This is not a token. |
| authorizedAmount required | number The amount that was authorized. |
| authorizationDate required | string Timestamp corresponding to the time that authorization occurred. |
| code required | |
| message required | string A more precise description of the error. |
object Map of additional errors. |
Saved Card
{- "amount": 101.23,
- "authFk": "1000-20",
- "finalDigits": "4242",
- "brand": "Visa"
}{- "code": 0,
- "message": "Success",
- "successful": true,
- "primaryCorrelation": "323120061480",
- "authorizedAmount": 101.23,
- "authorizationDate": "2024-11-18T17:04:40.8104213"
}| merchantValidationSource required | string (MerchantValidationSource) Value: "APPLE_PAY" Source of the request |
| validationUrl | string |
{- "merchantValidationSource": "APPLE_PAY",
- "validationUrl": "string"
}The endpoints in this group facilitate Accelerated Checkout. Use the endpoints in this group to:
The endpoints in this group control delivery options. Use the endpoints in this group to:
object (DefaultPk) | |
object (CartAddress) | |
| dropoffPhone | string |
| amount | number |
| dropoffDay | string |
| dropoffTime | string |
| dropoffInstructions | string |
| contactlessDropoff | boolean |
| tip | number |
{- "shippingMethod": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "dropoffAddress": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "dropoffPhone": "string",
- "amount": 0,
- "dropoffDay": "string",
- "dropoffTime": "string",
- "dropoffInstructions": "string",
- "contactlessDropoff": true,
- "tip": 0
}object (DefaultPk) | |
object (CartAddress) | |
| dropoffPhone | string |
| dropoffFirstName | string |
| dropoffLastName | string |
| dropoffEmail | string |
| amount | number |
| dropoffDay | string |
| dropoffTime | string |
| dropoffInstructions | string |
{- "shippingMethod": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "dropoffAddress": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}, - "dropoffPhone": "string",
- "dropoffFirstName": "string",
- "dropoffLastName": "string",
- "dropoffEmail": "string",
- "amount": 0,
- "dropoffDay": "string",
- "dropoffTime": "string",
- "dropoffInstructions": "string"
}This group consists of one endpoint which facilitates the acquisition of shipping rate estimates. Estimates are calculated based on the combination of the selected Shipping Method and the Shipping Address entered.
Provides a list of shipping rate estimates
object (DefaultPk) | |
object (CartAddress) |
Array of objects (ShippingRate) |
{- "shippingMethodId": {
- "cpk": 0,
- "pk": 0,
- "bigPk": 0,
- "urlString": "string"
}, - "shippingAddress": {
- "firstName": "ECR",
- "lastName": "Software",
- "email": "test@ecrs.com",
- "phone": "(828) 265-2907",
- "street1": "277 Howard Street",
- "street2": "Suite 1",
- "postal": "28607",
- "city": "Boone",
- "country": 15,
- "state": 34,
- "latitude": 36.217646,
- "longitude": -81.684149
}
}{- "rates": [
- {
- "serviceName": "string",
- "carrierCode": "string",
- "serviceCode": "string",
- "packageCode": "string",
- "cost": 0
}
]
}The endpoints in this group facilitate the management of orders within the system. Use the endpoints in this group to:
This group consists of one endpoint which facilitates the creation of fraud cases for investigation and resolution.
| Code | Name | Description |
|---|---|---|
| 0 | CODE_SUCCESS | Success response |
| -1 | CODE_GENERIC_ERROR | Generic error, something went wrong. The message field should have more detail |
| -2 | CODE_INVALID_CUSTOMER | Customer is not valid. Either a bad ID, or the customer is marked inactive in the system, or something wrong with the claims |
| -3 | CODE_CANNOT_REMOVE_PASSWORD_PROVIDER | Returned when someone tries to unassociate an OAuth connected account and something went wrong with the account provider's password |
| -4 | CODE_CANNOT_REMOVE_LAST_PROVIDER | Returned when someone tries to unassociate an OAuth connected account and something went wrong trying to delete the last provider |
| -5 | CODE_UNABLE_TO_DELETE | Returned when a completed order is being edited, but the original order could not be found to delete |
| -6 | CODE_NO_WEBPROFILE | Web Profile is not attached in the store system, contact merchant |
| -7 | CODE_NO_REMOTE | Returned when an operation requires a connection to the store's database, but the connection is presently broken. Can be thrown from the /api/me/orders/orders request |
| -8 | CODE_INVALID_ORDER | Returned when the transaction we are trying to retrieve cannot be found (such as in the cart request) |
| -9 | CODE_NO_SUCH_ORDER | Unused |
| -10 | CODE_INCORRECT_CUSTOMER | Returned if we detect that the tranaction we are trying to retrieve does not belong to the associated customer |
| -11 | CODE_NO_RECEIPT_PROFILE | Returned from the /api/me/orders/{sc}/receipt (Generate Receipt) request if there is no receipt profile in the store system, contact merchant |
| -12 | CODE_VALIDATION_ERROR | Returned if something went wrong validating the request, e.g. an empty payload is sent to /api/items/summaries |
| -13 | CODE_INVALID_EMPLOYEE | Returned if an Employee is required for the last action, but is not associated |
| -14 | CODE_TWO_FACTOR_REQUIRED | Returned during a customer password login if we need to collect a second factor of auth |
| -15 | CODE_DISABLED_FEATURE | Returned if the last action is not enabled in the store's system, contact merchant. Can be thrown during cart, list, and order operations |
| -16 | CODE_RATE_LIMIT | Returned if the rate limit has been exceeded for the last action |
| -17 | CODE_TOKEN_EXPIRED | Returned if user is trying to reset their password but the token they used for verification is expired |
| -18 | CODE_TOKEN_FAILURES_EXCEEDED | Returned if user is trying to reset their password but has exceeded 10 failure attempts |
| -19 | CODE_INVALID_ORDER_STATUS | Returned if the user is trying to cancel or edit a completed order but the order is not cancellabled |
| -20 | CODE_ALREADY_SUBMITTED | Returned if the user is trying to "check in" but they have already submitted the form |
| -21 | CODE_FRAUD_DETECTED | Returned during cart confirmation if the merchant has fraud checking enabled and it has detected fraud |
| -22 | CODE_GIFT_CARD_PIN_REQUIRED | Returned in /api/gc/{id} if the gift card we find requires a PIN, and one was not sent |
| -23 | CODE_REPLICATION_OFFLINE | Returned during cart confirmation / pay now / line busting if replication is currently offline. Transaction cannot be completed right now. |
| -24 | CODE_ORDER_TYPE_REMOVED | Returned during a cart request if the provided order type is not enabled |
| -25 | CODE_INACTIVE_MEMBER | Returned during customer association if the store is using Membership and the customer is marked as an inactive member |
| -26 | CODE_WEBSERVICES_OFFLINE | Returned during customer association is the store is using Membership and we cannot connect to the webservices at the HQ server |
| -27 | CODE_MEMBER_PAYMENT_DUE | Returned during cart confirmation if the store is using Membership and the customer owes on their dues |
| -28 | CODE_CART_OUTDATED | Returned during a cart sync if the `lastSyncTime` sent in the request does not match what we have on the server. Issue a /api/cart GET to get the up-to-date sync time and cart information |
| -29 | CODE_INSUFFICIENT_PERMISSIONS | Returned when the user does not have sufficient permissions to complete the request. |
| -30 | CODE_DUPLICATE_PUSH_NOTIFICATION_TOKEN | Returned when attempting to save a registration token that already exists for the associated customer. |
| -31 | CODE_MAX_PUSH_NOTIFICATION_TOKENS | Returned when attempting to save a customer registration token and the customer is at the registration token limit. |
| -32 | CODE_PUSH_NOTIFICATION_TOKEN_NOT_FOUND | Returned when attempting to delete a customer registration token that is not saved. |
| -33 | CODE_INVALID_DELIVERY_SETTINGS | Returned when the delivery request is invalid, such as containing contactless dropoff and restricted items. |
| -34 | CODE_VERIFICATION_REQUIRED | Returned when further verification is required to complete the request, such as email verification. |