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
id required | string The ID of the user to associate as. |
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. |
length | integer <int32> |
location | string <uri> |
object | |
lastModified | string <date-time> |
date | string <date-time> |
object | |
entity | object |
status | integer <int32> |
object | |
object | |
closed | boolean |
Array of objects (Link) unique | |
object (StatusType) | |
object (MediaType) | |
object (EntityTag) | |
allowedMethods | Array of strings unique |
object |
length | integer <int32> |
location | string <uri> |
object | |
lastModified | string <date-time> |
date | string <date-time> |
object | |
entity | object |
status | integer <int32> |
object | |
object | |
closed | boolean |
Array of objects (Link) unique | |
object (StatusType) | |
object (MediaType) | |
object (EntityTag) | |
allowedMethods | Array of strings unique |
object |
Machine Employee Login Request
{- "apiKey": "AE1LMA6S012345678901234567890O0I"
}
{- "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": [
- { }
]
}, - "entity": { },
- "status": 0,
- "metadata": {
- "empty": true,
- "property1": [
- { }
], - "property2": [
- { }
]
}, - "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"
}
}, - "closed": true,
- "links": [
- {
- "type": "string",
- "params": {
- "property1": "string",
- "property2": "string"
}, - "rel": "string",
- "title": "string",
- "uriBuilder": { },
- "rels": [
- "string"
]
}
], - "statusInfo": {
- "reasonPhrase": "string",
- "statusCode": 0,
- "family": "INFORMATIONAL"
}, - "mediaType": {
- "type": "string",
- "subtype": "string",
- "parameters": {
- "property1": "string",
- "property2": "string"
}, - "wildcardType": true,
- "wildcardSubtype": true
}, - "entityTag": {
- "value": "string",
- "weak": true
}, - "allowedMethods": [
- "string"
], - "stringHeaders": {
- "empty": true,
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}
account required | string <= 50 characters The account name to log in with |
password required | string The password to log in with |
accountId | string The account id to log in with, used when multiple accounts are associated with the same login |
totp | string The TOTP code to log in with, used when 2-factor authentication enabled is enabled |
scan | boolean Whether the shopper is using Accelerated Checkout |
{- "account": "johndoe@email.com",
- "password": "password123",
- "accountId": "1000-1",
- "totp": "123456",
- "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 Authorization endpoints provide comprehensive control over login authorization, allowing you to manage various aspects of user authentication and session management.
Use these endpoints to control how users can:
Claims information:
WebCart sessions are persisted using cookies in the form of a JWT token. When an action requires the cookie to be updated, two values are set in the header:
Checks if the authenticated customer has two-factor authentication (2FA) enabled on their account
setup | boolean Flag indicating if two-factor authentication is set up for this customer |
{- "setup": true
}
Removes the Time-based One-Time Password (TOTP) setup from the authenticated customer's account, disabling two-factor authentication
setup | boolean Flag indicating if two-factor authentication is set up for this customer |
{- "setup": true
}
Validates a Time-based One-Time Password (TOTP) code against the provided secret and sets up two-factor authentication for the authenticated customer
secret required | string Secret used to generate the TOTP code |
code required | string TOTP code to confirm |
setup | boolean Flag indicating if two-factor authentication is set up for this customer |
{- "secret": "JBSWY3DPEHPK3PXP",
- "code": "123456"
}
{- "setup": true
}
Sends a time-based one-time password (TOTP) to the customer's email address for use with two-factor authentication. This TOTP is valid for 4 minutes.
id required | string Customer ID |
{- "id": "1000-1"
}
When using the Facebook Classic Login, customers can log in using their Facebook user access token. However, there is a known issue that affects some users.
Known Issue:
token | string Facebook access token |
{- "token": "EAAIZAse1BrloBOxiUDdFPJOHMpjTmQBjzSarihir3BKC1fpUPRyAgP3kq8kZC5EuajTad2Gik4oqkiRjy8h8AM3X8z902Enk65qykR2ZAH99ZCx4sxigZA7Dws9Qo51WBiaZBQHfgTXpjDGUVlsAZBr0XCR1WRrxrmKYH6Tz9FyAIgllrVor3V3qJDGMqgL4ZBLK5TDZCwNPEyKVC0XjfsM2zBmABbgrENhBYir1voLYSWmZCJ65UuaZA6itU6gnD7aYb8ZD"
}
Customers can log in using federated authentication. This method of authentication expects a JSON Web Token (JWT) signed by a federated identity provider.
Token Information: This authentication JWT is often referred to as the "ID Token" in the providers' documentation.
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
}
Generates a new Time-based One-Time Password (TOTP) secret for the authenticated customer. This endpoint returns both the secret and a URL that can be used with authenticator apps.
secret | string Secret used to generate the TOTP code |
secretUrl | string URL used to generate the TOTP code |
{- "secret": "JBSWY3DPEHPK3PXP",
- "secretUrl": "otpauth://totp/Terminal:customer@store?secret"
}
Authenticates a customer using various OAuth providers including Facebook, Google, LinkedIn, GitHub, Microsoft, Yahoo, and Instagram.
Email verification may be required. If the email address is not verified, a code of -34 will be returned along with the UUID associated with the verification. The Verify Customer endpoint should be called to complete the registration process.
provider required | string Enum: "facebook" "google" "linkedin" "github" "live" "yahoo" "instagram" OAuth provider name |
redirectUri required | string URI to redirect after authentication |
clientId required | string OAuth 2.0 client identifier |
code required | string OAuth 2.0 authorization code received from authorization server |
state | string OAuth 2.0 state parameter to maintain session between request and callback |
error | string Error message returned by the authorization server |
scan | boolean Default: false Indicates whether the logging in customer is in Accelerated Checkout mode |
oauth_token | string Deprecated OAuth 1.0 request token received from authorization server |
oauth_verifier | string Deprecated OAuth 1.0 verifier code used to exchange for an access token |
{- "clientId": "client_12345",
- "code": "4/P7q7W91a-oMsCeLvIaQm6bTrgtp7",
- "state": "xyzABC123",
- "error": "access_denied",
- "scan": false,
- "oauth_token": "abc123xyz456",
- "oauth_verifier": "z9y8x7"
}
Removes the link between a customer's account and an OAuth provider. This operation will only proceed if there is at least one other linked provider remaining.
provider required | string Enum: "google" "facebook" "apple" "linkedin" "github" "live" "yahoo" "instagram" Provider to unlink |
{- "provider": "facebook"
}
Authenticates a customer using their username/email and password credentials.
It is possible that multiple customers exist with the same username and password, for which this endpoint will return a list of customer objects for the customer to select from.
If the customer has 2-factor authentication enabled, a 200 response will be returned with a code of -14 and the customer object.
account required | string <= 50 characters The account name to log in with |
password required | string The password to log in with |
accountId | string The account id to log in with, used when multiple accounts are associated with the same login |
totp | string The TOTP code to log in with, used when 2-factor authentication enabled is enabled |
scan | boolean Whether the shopper is using Accelerated Checkout |
id | string The ID of the customer. |
accountNumber | string The account number of the customer. |
displayName | string The display name of the customer. |
{- "account": "johndoe@email.com",
- "password": "password123",
- "accountId": "1000-1",
- "totp": "123456",
- "scan": true
}
{- "id": "1000-3",
- "accountNumber": "123456789",
- "displayName": "John Doe"
}
Resends a verification code to a customer who is in the process of registering
key required | string Verification key identifier |
scan | boolean Default: false Flag indicating if the shopper is in Accelerated Checkout mode |
New verification UUID
{- "key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "scan": false
}
"a567c10b-58cc-4372-a567-0e02b2c3c10b"
Handles submission of the signup form for a registering user.
A 6-digit code will be emailed to the registering user and a verified UUID will be returned upon successful registration. The Verify Customer endpoint should be called to complete the registration process.
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. A valid password must contain a capital letter, a lowercase letter, a number, and a symbol. |
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. |
Verification UUID
{- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "stringstri",
- "password": "stringst",
- "recaptcha": "string",
- "marketing": true,
- "receipts": true,
- "scan": true,
- "boardingProfile": {
- "accountNumber": "WB24XVXCXIBY3ZH3",
- "firstName": {
- "name": "firstName",
- "option": "REQUIRED",
- "value": "John",
- "length": 25
}, - "middleName": {
- "name": "middleName",
- "option": "OPTIONAL",
- "value": "Michael",
- "length": 25
}, - "lastName": {
- "name": "lastName",
- "option": "REQUIRED",
- "value": "Doe",
- "length": 25
}, - "nickName": {
- "name": "nickName",
- "option": "OPTIONAL",
- "value": "Johnny",
- "length": 25
}, - "prefix": {
- "name": "prefix",
- "option": "OPTIONAL",
- "value": "1000-16",
- "options": [
- {
- "id": "1000-16",
- "description": "Mr."
}, - {
- "id": "1000-17",
- "description": "Ms."
}, - {
- "id": "1000-18",
- "description": "Mrs."
}, - {
- "id": "1000-19",
- "description": "unknown"
}
]
}, - "suffix": {
- "name": "suffix",
- "option": "OPTIONAL",
- "value": "1000-19",
- "options": [
- {
- "id": "1000-16",
- "description": "Jr."
}, - {
- "id": "1000-19",
- "description": "Sr."
}
]
}, - "company": "{\n \"name\": \"company\",\n \"option\": \"OPTIONAL\",\n \"value\": ECRS,\n \"length\": 50\n}",
- "title": "{\n \"name\": \"title\",\n \"option\": \"OPTIONAL\",\n \"value\": Technical Writer,\n \"length\": 25\n}",
- "suppressReceipt": {
- "name": "suppressReceipt",
- "option": "OPTIONAL",
- "value": false
}, - "birthDate": {
- "name": "birthDate",
- "option": "OPTIONAL",
- "value": "1995-05-04"
}, - "pf1": {
- "name": "Configured PowerField 1 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf2": {
- "name": "Configured PowerField 2 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf3": {
- "name": "Configured PowerField 3 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf4": {
- "name": "Configured PowerField 4 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf5": {
- "name": "Configured PowerField 5 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "pf6": {
- "name": "Configured PowerField 6 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "pf7": {
- "name": "Configured PowerField 7 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "pf8": {
- "name": "Configured PowerField 8 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "phones": [
- {
- "id": "1000-39172",
- "name": "Web",
- "phone": {
- "name": "phone",
- "option": "OPTIONAL",
- "value": "(333) 999-0000",
- "length": 14
}, - "shipToPhone": {
- "name": "phoneShipping",
- "option": "OPTIONAL",
- "value": false
}, - "shipToFax": {
- "name": "faxShipping",
- "option": "OPTIONAL",
- "value": false
}, - "billToPhone": {
- "name": "phoneBilling",
- "option": "OPTIONAL",
- "value": false
}, - "billToFax": {
- "name": "faxBilling",
- "option": "OPTIONAL",
- "value": false
}, - "did": "1000-9563"
}, - {
- "id": "1000-105285",
- "name": "Personal",
- "phone": {
- "name": "phone",
- "option": "REQUIRED",
- "value": "3332221111",
- "length": 14
}, - "did": "1000-7280"
}
], - "emails": [
- {
- "id": "1000-44090",
- "name": "Web",
- "email": {
- "name": "email",
- "option": "OPTIONAL",
- "value": "johndoe@ecrs.com"
}, - "ereceipt": null,
- "did": "1000-11"
}, - {
- "id": "1000-51792",
- "name": "E-Mail",
- "email": {
- "name": "email",
- "option": "OPTIONAL",
- "value": "johndoe@ecrs.com"
}, - "billTo": {
- "name": "emailBilling",
- "option": "OPTIONAL",
- "value": false
}, - "shipTo": {
- "name": "emailShipping",
- "option": "OPTIONAL",
- "value": false
}, - "marketing": {
- "name": "emailMarketing",
- "option": "REQUIRED",
- "value": false
}, - "ereceipt": {
- "name": "emailReceipt",
- "option": "REQUIRED",
- "value": true
}, - "did": "1000-7247",
- "eReceipt": {
- "name": "emailReceipt",
- "option": "REQUIRED",
- "value": true
}
}
], - "addresses": [
- {
- "id": "1000-57638",
- "name": "Home Address",
- "street1": {
- "name": "street1",
- "option": "OPTIONAL",
- "value": "277 Howard St.",
- "length": 30
}, - "street2": {
- "name": "street2",
- "option": "OPTIONAL",
- "value": "",
- "length": 30
}, - "city": {
- "name": "city",
- "option": "OPTIONAL",
- "value": "Boone",
- "length": 20
}, - "state": {
- "name": "state",
- "option": "OPTIONAL",
- "value": "NC",
- "length": 2
}, - "postal": {
- "name": "postal",
- "option": "OPTIONAL",
- "value": "28607",
- "length": 15
}, - "country": {
- "name": "country",
- "option": "OPTIONAL",
- "value": "US",
- "length": 4
}, - "shipTo": {
- "name": "addressShipping",
- "option": "OPTIONAL",
- "value": true
}, - "billTo": {
- "name": "addressBilling",
- "option": "OPTIONAL",
- "value": false
}, - "did": "1000-4"
}
]
}
}
"a567c10b-58cc-4372-a567-0e02b2c3c10b"
Verifies changes to a customer's account using a verification code. This includes creating a new account.
key required | string The key (UUID) returned by the initial Forgot Password request. |
code required | string The verification code the shopper received. |
{- "key": "2aa895da-2c0c-4bfc-a682-082b80eb91e2",
- "code": "735412"
}
Safely edits a shopper's email address.
If adding a new email address, a verification email will be sent to that address. Prompt the shopper to enter the verification code and submit it with the UUID to the Verify Customer endpoint. If the email address is already attached to the shopper under a different description, no verificationis required. If the email address is null or empty, it will be removed from the description if possible.
descriptionId required | string The ID of the email description to edit. |
string The new email address. Omit to delete. |
type required | string Enum: "VERIFICATION_EMAIL_SENT" "NO_VERIFICATION_REQUIRED" "SUCCESSFULLY_DELETED" The type of success.
|
key required | string The key (UUID) associated with this verification request. Submit it with the code the shopper received to the Verify Customer endpoint to add the email to the shopper's record. |
code required | |
message required | string Summary of the error. |
{- "descriptionId": "1000-7",
- "email": "user@mail.com"
}
Returned when verification is required.
{- "type": "VERIFICATION_EMAIL_SENT",
- "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
The endpoints in this group allow shoppers to reset their passwords. Here is an overview of the steps involved.
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>
Creates a password reset token and contacts a shopper with a verification code to reset their password.
contact required | string The email address or phone number to contact the shopper for password reset. If |
method required | string Enum: "EMAIL" "TEXT" "CALL" How to contact the shopper with the verification code. |
code required | integer <int32> Value: 0 |
message required | string Value: "Success" |
data required | string A key (UUID) that identifies the newly created reset token. This must be used with the shopper's code to complete verification in Verify Shopper. |
code required | integer <int32> Value: -1 |
message required | string Value: "Customer Password Recovery Not Allowed from your network({IP_ADDRESS})." |
{- "contact": "jsmith@mail.com",
- "method": "EMAIL"
}
{- "code": 0,
- "message": "Success",
- "data": "2aa895da-2c0c-4bfc-a682-082b80eb91e2"
}
Checks if a given token is valid. Useful to reject a reset attempt before the shopper creates a new password. A token can be obtained by calling the Verify Shopper endpoint.
token required | string The reset token to validate. |
code required | integer <int32> Value: 0 |
message required | string Value: "Success" |
data required | string Enum: "VERIFICATION_CODE" "PASSWORD_RESET" "REMEMBER_ME" "CHECKIN" The type of the token. |
code required | integer <int32> Value: -1 |
message required | string Value: "Token is no longer valid." |
{- "code": 0,
- "message": "Success",
- "data": "PASSWORD_RESET"
}
Resets a shopper's password using a reset token. A token can be obtained by calling the Verify Shopper endpoint.
token required | string The reset token to use. |
password required | string [ 8 .. 255 ] characters The new password to set. A valid password must contain a capital letter, a lowercase letter, a number, and a symbol. |
code required | integer <int32> Value: -1 |
message required | string Value: "Customer Password Recovery Not Allowed from your network({IP_ADDRESS})." |
{- "password": "Password123!"
}
{- "code": -1,
- "message": "Customer Password Recovery Not Allowed from your network({IP_ADDRESS})."
}
Gets the reset token corresponding to a key (UUID) if the verification code is valid. A key can be obtained by calling the Forgot Password endpoint. If there is exactly one account that matches the given key, the token is returned directly. In rare cases, the key may match multiple accounts. If this happens, a list of matching accounts is returned. Verification must be completed with the Verify Selected Account endpoint.
key required | string The key (UUID) returned by the initial Forgot Password request. |
code required | string The verification code the shopper received. |
code required | integer <int32> Value: 0 |
message required | string Value: "Success" |
data required | string Reset token. |
{- "key": "2aa895da-2c0c-4bfc-a682-082b80eb91e2",
- "code": "735412"
}
{- "code": 0,
- "message": "Success",
- "data": "string"
}
Gets the reset token corresponding to a key and specific account if the verification code is valid. Use only if multiple accounts matched a key when calling the Verify Shopper endpoint.
account required | string The ID of the account to verify. |
key required | string The key (UUID) returned by the initial Forgot Password request. |
code required | string The verification code the shopper received. |
code required | integer <int32> Value: 0 |
message required | string Value: "Success" |
data required | string Reset token. |
{- "key": "2aa895da-2c0c-4bfc-a682-082b80eb91e2",
- "code": "735412"
}
{- "code": 0,
- "message": "Success",
- "data": "string"
}
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> |
placeholderImage | string |
i18nEnabled | boolean |
i18nLanguage | Array of strings |
cdn | string |
googleMapsApiKey | string |
googleMapsStrictAddressCheck | boolean |
googleAnalyticsId | string |
facebookPixelId | string |
signifydKey | string |
redPepperClientId | integer <int32> |
redPepperUrl | string |
redPepperHideInStoryOnlyItems | boolean |
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": "string",
- "name": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "postal": "string",
- "country": "string",
- "shipTo": true,
- "billTo": true,
- "location": true,
- "webcart": true,
- "did": "string"
}
], - "emails": [
- {
- "id": "string",
- "name": "string",
- "email": "string",
- "billTo": true,
- "shipTo": true,
- "marketing": true,
- "location": true,
- "webcart": true,
- "ereceipt": true,
- "did": "string"
}
], - "phones": [
- {
- "id": "string",
- "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "locationPhone": true,
- "locationFax": true,
- "webcartPhone": true,
- "did": "string"
}
], - "faxes": [
- {
- "id": "string",
- "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "locationPhone": true,
- "locationFax": true,
- "webcartPhone": true,
- "did": "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": "string",
- "image": "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": "string",
- "i18nEnabled": true,
- "i18nLanguage": [
- "string"
], - "cdn": "string",
- "googleMapsApiKey": "string",
- "googleMapsStrictAddressCheck": true,
- "googleAnalyticsId": "string",
- "facebookPixelId": "string",
- "signifydKey": "string",
- "redPepperClientId": 0,
- "redPepperUrl": "string",
- "redPepperHideInStoryOnlyItems": true,
- "includeCircularLinkInMenu": true,
- "circularLinkText": "string",
- "orderTypesEnabled": true,
- "orderTypesMessage": "string",
- "socialProviders": [
- {
- "provider": "string",
- "userKey": "string",
- "authId": "string",
- "auth": true
}
], - "paymentProviders": [
- {
- "provider": "string"
}
], - "rows": [
- {
- "id": "string",
- "name": "string"
}
], - "countries": [
- {
- "id": 0,
- "description": "string",
- "abbrv": "string"
}
], - "states": [
- {
- "id": 0,
- "country": 0,
- "description": "string",
- "abbrv": "string"
}
], - "ads": [
- {
- "id": "string",
- "order": 0,
- "label": "string",
- "type": 0,
- "link": "string",
- "image": "string"
}
], - "customSources": [
- {
- "id": "string",
- "type": 0,
- "label": "string",
- "content": "string"
}
], - "thirdPartyServiceProfiles": [
- {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}
], - "orderTypes": [
- {
- "id": "string",
- "name": "string",
- "urlSlug": "string",
- "menu": {
- "id": "1000-10",
- "name": "WebCart Upper Menu",
- "children": [
- { }
], - "orderTypeImage": "1000-2"
}, - "ads": [
- {
- "id": "string",
- "order": 0,
- "label": "string",
- "type": 0,
- "link": "string",
- "image": "string"
}
], - "giftCard": true,
- "listOnly": true,
- "hidden": true,
- "autoFinalize": true,
- "image": "string",
- "urlEncodedSlug": "string"
}
], - "recaptchaScenarioStatuses": {
- "property1": true,
- "property2": true
}, - "customerGroups": [
- {
- "id": "string",
- "name": "string",
- "canEdit": true,
- "mutuallyExclusive": true,
- "household": true,
- "groups": [
- {
- "id": "string",
- "name": "string"
}
]
}
], - "beacons": [
- {
- "id": "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 |
id | string |
type | integer <int32> |
label | string |
content | string |
{- "id": "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": "string",
- "name": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "postal": "string",
- "country": "string",
- "shipTo": true,
- "billTo": true,
- "location": true,
- "webcart": true,
- "did": "string"
}
], - "emails": [
- {
- "id": "string",
- "name": "string",
- "email": "string",
- "billTo": true,
- "shipTo": true,
- "marketing": true,
- "location": true,
- "webcart": true,
- "ereceipt": true,
- "did": "string"
}
], - "phones": [
- {
- "id": "string",
- "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "locationPhone": true,
- "locationFax": true,
- "webcartPhone": true,
- "did": "string"
}
], - "faxes": [
- {
- "id": "string",
- "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "locationPhone": true,
- "locationFax": true,
- "webcartPhone": true,
- "did": "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.
Custom sources are set on the store's configuration and define custom content (e.g. CSS overrides) to personalize their website.
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.
Returns the theme configuration including primary and secondary colors. Requires employee authentication.
This endpoint is deprecated, use Get CSS Theme instead.
primary required | string Default: "#0d6efd" Primary theme color in hex format |
secondary required | string Default: "#6c757d" Secondary theme color in hex format |
{- "primary": "#0d6efd",
- "secondary": "#6c757d"
}
Returns the CSS theme file for styling the web application. Uses ETag for caching.
The endpoints in this group allow shoppers to retrieve and change account data on their WebCart profile. This includes:
This saves a tokenized EBT card to the customer's wallet.
This endpoint is rate limited, and if reCAPTCHA is configured, requires a reCAPTCHA response.
object (WebAuthCard) The EBT card to be added to the customer's wallet. | |
recaptcha | string The recaptcha response from the client. This is used to validate the request and prevent abuse. |
autoReloadStatus | string Enum: "ENABLED" "DISABLED" "NOT_ALLOWED" Represents the status of auto-reload functionality for a customer. |
reloadAmount | number The reload amount for the customer's default token. |
defaultReloadAmount | number The default reload amount from the WebCart terminal's authorization security profile. |
Array of objects (ChargeAccountBalance) A list of charge accounts associated with the customer. | |
tokenStatus | string Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED" Represents the status of returning tokenization information from the server |
Array of objects (TokenInfo) A list of tokens associated with the customer. | |
object (creditPaymentMethod) If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found. | |
object (ebtPaymentMethod) If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found. |
{- "card": {
- "fields": { },
- "id": "string",
- "type": "EBT",
- "finalDigits": "string",
- "billingPostal": "string",
- "nameOnCard": "string",
- "email": "string",
- "company": "string",
- "expiry": "string",
- "billingStreet2": "string",
- "bin": "string",
- "billingStreet1": "string",
- "billingCity": "string",
- "token": "string",
- "billingCountry": "string",
- "shippingStreet2": "string",
- "shippingCity": "string",
- "shippingCountry": "string",
- "billingPhone": "string",
- "shippingState": "string",
- "shippingStreet1": "string",
- "shippingPhone": "string",
- "shippingPostal": "string",
- "billingState": "string",
- "cvv": "string",
- "firstName": "string",
- "lastName": "string"
}, - "recaptcha": "string"
}
{- "autoReloadStatus": "ENABLED",
- "reloadAmount": 50,
- "defaultReloadAmount": 25,
- "chargeAccounts": [
- {
- "id": "1000-34",
- "name": "Charge Account",
- "balance": 100,
- "creditLimit": 1000
}
], - "tokenStatus": "NORMAL",
- "tokens": [
- {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}
], - "creditPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}, - "ebtPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}
}
This saves a tokenized card to the customer's wallet.
This endpoint is rate limited and if reCAPTCHA is configured, requires a reCAPTCHA response.
To save a tokenized card for CardConnect and Stripe, WebCart will perform an authorization and reversal of one dollar to verify the authenticity of the card.
property name* additional property | string |
autoReloadStatus | string Enum: "ENABLED" "DISABLED" "NOT_ALLOWED" Represents the status of auto-reload functionality for a customer. |
reloadAmount | number The reload amount for the customer's default token. |
defaultReloadAmount | number The default reload amount from the WebCart terminal's authorization security profile. |
Array of objects (ChargeAccountBalance) A list of charge accounts associated with the customer. | |
tokenStatus | string Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED" Represents the status of returning tokenization information from the server |
Array of objects (TokenInfo) A list of tokens associated with the customer. | |
object (creditPaymentMethod) If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found. | |
object (ebtPaymentMethod) If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found. |
{- "property1": "string",
- "property2": "string"
}
{- "autoReloadStatus": "ENABLED",
- "reloadAmount": 50,
- "defaultReloadAmount": 25,
- "chargeAccounts": [
- {
- "id": "1000-34",
- "name": "Charge Account",
- "balance": 100,
- "creditLimit": 1000
}
], - "tokenStatus": "NORMAL",
- "tokens": [
- {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}
], - "creditPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}, - "ebtPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}
}
Returns the active claims for the user.
Claims are used to determine the user's permissions, access levels, cart, order type information, price level, and more.
id | string |
expiration | string <date-time> |
subject | string |
notBefore | string <date-time> |
issuer | string |
audience | string |
issuedAt | string <date-time> |
empty | boolean |
property name* additional property | object |
{- "id": "string",
- "expiration": "2019-08-24T14:15:22Z",
- "subject": "string",
- "notBefore": "2019-08-24T14:15:22Z",
- "issuer": "string",
- "audience": "string",
- "issuedAt": "2019-08-24T14:15:22Z",
- "empty": true,
- "property1": { },
- "property2": { }
}
This returns the status (available/clipped/expired/redeemed) of any third-party digital coupons available to the customer. Only digital coupons for configured digital coupon services will be returned.
clipped | Array of strings List of clipped digital coupon IDs. |
redeemed | Array of strings List of redeemed digital coupon IDs. |
expired | Array of strings List of expired digital coupon IDs. |
available | Array of strings List of available digital coupon IDs. |
availablePrefixes | Array of strings List of available digital coupon ID prefixes. Only prefixes for enabled digital coupon providers are returned. |
{- "clipped": [
- "string"
], - "redeemed": [
- "string"
], - "expired": [
- "string"
], - "available": [
- "string"
], - "availablePrefixes": [
- "string"
]
}
This allows the customer to delete a tokenized card from their wallet. This can be used for credit and EBT cards.
If any EBT tenders have been applied to the transaction with the token to be removed, they will be voided before removing the token.
cardId | string An identifier for the card from the card processor. |
defaultToken | boolean If true, this is considered the default token for the associated customer. The default token is used for secure auto-reload of charge accounts. EBT SNAP and EBT Cash tokens are not eligible to be default tokens. |
brand | string The brand of the card. |
finalDigits | string The last four digits of the card. |
expiration | string The card expiration date in MMYY format. This is the same format used by the card processor. For example, a card that expires in December 2025 would be represented as 1225. |
authFk | string The unique identifier for the authorization server profile configured on the WebCart terminal. |
tenderType | integer <int32> Tender type backing this token: 4 for Credit, 6 for EBT SNAP, 8 for Debit, 12 for EBT Cash, 14 for Gift Card, 23 for Tokenization. |
autoReloadStatus | string Enum: "ENABLED" "DISABLED" "NOT_ALLOWED" Represents the status of auto-reload functionality for a customer. |
reloadAmount | number The reload amount for the customer's default token. |
defaultReloadAmount | number The default reload amount from the WebCart terminal's authorization security profile. |
Array of objects (ChargeAccountBalance) A list of charge accounts associated with the customer. | |
tokenStatus | string Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED" Represents the status of returning tokenization information from the server |
Array of objects (TokenInfo) A list of tokens associated with the customer. | |
object (creditPaymentMethod) If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found. | |
object (ebtPaymentMethod) If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found. |
{- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}
{- "autoReloadStatus": "ENABLED",
- "reloadAmount": 50,
- "defaultReloadAmount": 25,
- "chargeAccounts": [
- {
- "id": "1000-34",
- "name": "Charge Account",
- "balance": 100,
- "creditLimit": 1000
}
], - "tokenStatus": "NORMAL",
- "tokens": [
- {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}
], - "creditPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}, - "ebtPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}
}
This returns any store coupons / customer groups linked to the customer's account.
id | string The unique identifier for the store coupon / customer group |
expiration | string <date-time> The expiration date of the store coupon / customer group. This is only set if the coupon is set to expire. |
action | string Enum: "add" "remove" This field is used to allow customers to opt-in or opt-out of a store coupon / customer group. |
[- {
- "id": "1000-34",
- "expiration": "2019-08-24T14:15:22Z",
- "action": "add"
}
]
This is used to add / remove customers from one or more store coupon(s) / customer group(s).
id | string The unique identifier for the store coupon / customer group |
expiration | string <date-time> The expiration date of the store coupon / customer group. This is only set if the coupon is set to expire. |
action | string Enum: "add" "remove" This field is used to allow customers to opt-in or opt-out of a store coupon / customer group. |
id | string The unique identifier for the store coupon / customer group |
expiration | string <date-time> The expiration date of the store coupon / customer group. This is only set if the coupon is set to expire. |
action | string Enum: "add" "remove" This field is used to allow customers to opt-in or opt-out of a store coupon / customer group. |
[- {
- "id": "1000-34",
- "expiration": "2019-08-24T14:15:22Z",
- "action": "add"
}
]
[- {
- "id": "1000-34",
- "expiration": "2019-08-24T14:15:22Z",
- "action": "add"
}
]
If a customer is associated, a detail object containing customer information such as their account number, phones, emails, addresses, and other information is returned.
Only information configured on the site's boarding profile is populated in the response.
If no customer is associated, then an empty boarding profile is returned.
accountNumber | string The account number of the customer. The format of this number is determined by the store's configuration. |
object (firstName) The first name of the customer. | |
object (middleName) The middle name of the customer. | |
object (lastName) The last name of the customer. | |
object (nickName) The nick name of the customer. | |
object (prefix) The prefix of the customer. If updating the value, the | |
object (suffix) The suffix of the customer. If updating the value, the | |
object (company) The company name for the customer. | |
object (title) The title for the customer. This is often paired with the company name to denote their title at the company. | |
object (suppressReceipt) If true, the customer will not receive paper receipts when they shop in-store but instead will receive electronic receipts at the email address they entered. This is the | |
object (birthDate) The birth date of the customer. | |
object (pf1)
| |
object (pf2)
| |
object (pf3)
| |
object (pf4)
| |
object (pf5)
| |
object (pf6)
| |
object (pf7)
| |
object (pf8)
| |
Array of objects (MePhoneDto) A list of phone numbers associated with the customer. Each entry includes a Description and a Phone Number. The Descriptions are configured in Web Office as Phone Description Profiles (e.g. Office, Personal, etc.). The Phone Number is the number associated with that description. The number may include formatting such as spaces, dashes, or parentheses. | |
Array of objects (MeEmailDto) A list of emails associated with the customer. Each entry includes a Description and an Email. The Descriptions are configured in Web Office as Email Description Profiles (e.g. Office, Personal, etc.). The Email is the value associated with that description. | |
Array of objects (MeAddressDto) A list of addresses associated with the customer. Each entry includes a Description and an Address. The Descriptions are configured in Web Office as Address Description Profiles (e.g. Office, Personal, etc.). The Address is the value associated with that description. |
{- "accountNumber": "WB24XVXCXIBY3ZH3",
- "firstName": {
- "name": "firstName",
- "option": "REQUIRED",
- "value": "John",
- "length": 25
}, - "middleName": {
- "name": "middleName",
- "option": "OPTIONAL",
- "value": "Michael",
- "length": 25
}, - "lastName": {
- "name": "lastName",
- "option": "REQUIRED",
- "value": "Doe",
- "length": 25
}, - "nickName": {
- "name": "nickName",
- "option": "OPTIONAL",
- "value": "Johnny",
- "length": 25
}, - "prefix": {
- "name": "prefix",
- "option": "OPTIONAL",
- "value": "1000-16",
- "options": [
- {
- "id": "1000-16",
- "description": "Mr."
}, - {
- "id": "1000-17",
- "description": "Ms."
}, - {
- "id": "1000-18",
- "description": "Mrs."
}, - {
- "id": "1000-19",
- "description": "unknown"
}
]
}, - "suffix": {
- "name": "suffix",
- "option": "OPTIONAL",
- "value": "1000-19",
- "options": [
- {
- "id": "1000-16",
- "description": "Jr."
}, - {
- "id": "1000-19",
- "description": "Sr."
}
]
}, - "company": "{\n \"name\": \"company\",\n \"option\": \"OPTIONAL\",\n \"value\": ECRS,\n \"length\": 50\n}",
- "title": "{\n \"name\": \"title\",\n \"option\": \"OPTIONAL\",\n \"value\": Technical Writer,\n \"length\": 25\n}",
- "suppressReceipt": {
- "name": "suppressReceipt",
- "option": "OPTIONAL",
- "value": false
}, - "birthDate": {
- "name": "birthDate",
- "option": "OPTIONAL",
- "value": "1995-05-04"
}, - "pf1": {
- "name": "Configured PowerField 1 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf2": {
- "name": "Configured PowerField 2 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf3": {
- "name": "Configured PowerField 3 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf4": {
- "name": "Configured PowerField 4 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf5": {
- "name": "Configured PowerField 5 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "pf6": {
- "name": "Configured PowerField 6 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "pf7": {
- "name": "Configured PowerField 7 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "pf8": {
- "name": "Configured PowerField 8 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "phones": [
- {
- "id": "1000-39172",
- "name": "Web",
- "phone": {
- "name": "phone",
- "option": "OPTIONAL",
- "value": "(333) 999-0000",
- "length": 14
}, - "shipToPhone": {
- "name": "phoneShipping",
- "option": "OPTIONAL",
- "value": false
}, - "shipToFax": {
- "name": "faxShipping",
- "option": "OPTIONAL",
- "value": false
}, - "billToPhone": {
- "name": "phoneBilling",
- "option": "OPTIONAL",
- "value": false
}, - "billToFax": {
- "name": "faxBilling",
- "option": "OPTIONAL",
- "value": false
}, - "did": "1000-9563"
}, - {
- "id": "1000-105285",
- "name": "Personal",
- "phone": {
- "name": "phone",
- "option": "REQUIRED",
- "value": "3332221111",
- "length": 14
}, - "did": "1000-7280"
}
], - "emails": [
- {
- "id": "1000-44090",
- "name": "Web",
- "email": {
- "name": "email",
- "option": "OPTIONAL",
- "value": "johndoe@ecrs.com"
}, - "ereceipt": null,
- "did": "1000-11"
}, - {
- "id": "1000-51792",
- "name": "E-Mail",
- "email": {
- "name": "email",
- "option": "OPTIONAL",
- "value": "johndoe@ecrs.com"
}, - "billTo": {
- "name": "emailBilling",
- "option": "OPTIONAL",
- "value": false
}, - "shipTo": {
- "name": "emailShipping",
- "option": "OPTIONAL",
- "value": false
}, - "marketing": {
- "name": "emailMarketing",
- "option": "REQUIRED",
- "value": false
}, - "ereceipt": {
- "name": "emailReceipt",
- "option": "REQUIRED",
- "value": true
}, - "did": "1000-7247",
- "eReceipt": {
- "name": "emailReceipt",
- "option": "REQUIRED",
- "value": true
}
}
], - "addresses": [
- {
- "id": "1000-57638",
- "name": "Home Address",
- "street1": {
- "name": "street1",
- "option": "OPTIONAL",
- "value": "277 Howard St.",
- "length": 30
}, - "street2": {
- "name": "street2",
- "option": "OPTIONAL",
- "value": "",
- "length": 30
}, - "city": {
- "name": "city",
- "option": "OPTIONAL",
- "value": "Boone",
- "length": 20
}, - "state": {
- "name": "state",
- "option": "OPTIONAL",
- "value": "NC",
- "length": 2
}, - "postal": {
- "name": "postal",
- "option": "OPTIONAL",
- "value": "28607",
- "length": 15
}, - "country": {
- "name": "country",
- "option": "OPTIONAL",
- "value": "US",
- "length": 4
}, - "shipTo": {
- "name": "addressShipping",
- "option": "OPTIONAL",
- "value": true
}, - "billTo": {
- "name": "addressBilling",
- "option": "OPTIONAL",
- "value": false
}, - "did": "1000-4"
}
]
}
If a customer is associated, this endpoint allows the customer to update their information.
The request body only needs to include the data the customer wishes to change. In other words, the entire request body does not need to be sent if only a specific field is being updated.
accountNumber | string The account number of the customer. The format of this number is determined by the store's configuration. |
object (firstName) The first name of the customer. | |
object (middleName) The middle name of the customer. | |
object (lastName) The last name of the customer. | |
object (nickName) The nick name of the customer. | |
object (prefix) The prefix of the customer. If updating the value, the | |
object (suffix) The suffix of the customer. If updating the value, the | |
object (company) The company name for the customer. | |
object (title) The title for the customer. This is often paired with the company name to denote their title at the company. | |
object (suppressReceipt) If true, the customer will not receive paper receipts when they shop in-store but instead will receive electronic receipts at the email address they entered. This is the | |
object (birthDate) The birth date of the customer. | |
object (pf1)
| |
object (pf2)
| |
object (pf3)
| |
object (pf4)
| |
object (pf5)
| |
object (pf6)
| |
object (pf7)
| |
object (pf8)
| |
Array of objects (MePhoneDto) A list of phone numbers associated with the customer. Each entry includes a Description and a Phone Number. The Descriptions are configured in Web Office as Phone Description Profiles (e.g. Office, Personal, etc.). The Phone Number is the number associated with that description. The number may include formatting such as spaces, dashes, or parentheses. | |
Array of objects (MeEmailDto) A list of emails associated with the customer. Each entry includes a Description and an Email. The Descriptions are configured in Web Office as Email Description Profiles (e.g. Office, Personal, etc.). The Email is the value associated with that description. | |
Array of objects (MeAddressDto) A list of addresses associated with the customer. Each entry includes a Description and an Address. The Descriptions are configured in Web Office as Address Description Profiles (e.g. Office, Personal, etc.). The Address is the value associated with that description. |
{- "accountNumber": "WB24XVXCXIBY3ZH3",
- "firstName": {
- "name": "firstName",
- "option": "REQUIRED",
- "value": "John",
- "length": 25
}, - "middleName": {
- "name": "middleName",
- "option": "OPTIONAL",
- "value": "Michael",
- "length": 25
}, - "lastName": {
- "name": "lastName",
- "option": "REQUIRED",
- "value": "Doe",
- "length": 25
}, - "nickName": {
- "name": "nickName",
- "option": "OPTIONAL",
- "value": "Johnny",
- "length": 25
}, - "prefix": {
- "name": "prefix",
- "option": "OPTIONAL",
- "value": "1000-16",
- "options": [
- {
- "id": "1000-16",
- "description": "Mr."
}, - {
- "id": "1000-17",
- "description": "Ms."
}, - {
- "id": "1000-18",
- "description": "Mrs."
}, - {
- "id": "1000-19",
- "description": "unknown"
}
]
}, - "suffix": {
- "name": "suffix",
- "option": "OPTIONAL",
- "value": "1000-19",
- "options": [
- {
- "id": "1000-16",
- "description": "Jr."
}, - {
- "id": "1000-19",
- "description": "Sr."
}
]
}, - "company": "{\n \"name\": \"company\",\n \"option\": \"OPTIONAL\",\n \"value\": ECRS,\n \"length\": 50\n}",
- "title": "{\n \"name\": \"title\",\n \"option\": \"OPTIONAL\",\n \"value\": Technical Writer,\n \"length\": 25\n}",
- "suppressReceipt": {
- "name": "suppressReceipt",
- "option": "OPTIONAL",
- "value": false
}, - "birthDate": {
- "name": "birthDate",
- "option": "OPTIONAL",
- "value": "1995-05-04"
}, - "pf1": {
- "name": "Configured PowerField 1 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf2": {
- "name": "Configured PowerField 2 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf3": {
- "name": "Configured PowerField 3 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf4": {
- "name": "Configured PowerField 4 Name",
- "option": "OPTIONAL",
- "value": "1000-7263",
- "options": [
- {
- "id": "1000-7263",
- "description": "Option 1"
}, - {
- "id": "1000-7268",
- "description": "Option 2"
}
]
}, - "pf5": {
- "name": "Configured PowerField 5 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "pf6": {
- "name": "Configured PowerField 6 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "pf7": {
- "name": "Configured PowerField 7 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "pf8": {
- "name": "Configured PowerField 8 Name",
- "option": "OPTIONAL",
- "value": "FOO",
- "length": 30
}, - "phones": [
- {
- "id": "1000-39172",
- "name": "Web",
- "phone": {
- "name": "phone",
- "option": "OPTIONAL",
- "value": "(333) 999-0000",
- "length": 14
}, - "shipToPhone": {
- "name": "phoneShipping",
- "option": "OPTIONAL",
- "value": false
}, - "shipToFax": {
- "name": "faxShipping",
- "option": "OPTIONAL",
- "value": false
}, - "billToPhone": {
- "name": "phoneBilling",
- "option": "OPTIONAL",
- "value": false
}, - "billToFax": {
- "name": "faxBilling",
- "option": "OPTIONAL",
- "value": false
}, - "did": "1000-9563"
}, - {
- "id": "1000-105285",
- "name": "Personal",
- "phone": {
- "name": "phone",
- "option": "REQUIRED",
- "value": "3332221111",
- "length": 14
}, - "did": "1000-7280"
}
], - "emails": [
- {
- "id": "1000-44090",
- "name": "Web",
- "email": {
- "name": "email",
- "option": "OPTIONAL",
- "value": "johndoe@ecrs.com"
}, - "ereceipt": null,
- "did": "1000-11"
}, - {
- "id": "1000-51792",
- "name": "E-Mail",
- "email": {
- "name": "email",
- "option": "OPTIONAL",
- "value": "johndoe@ecrs.com"
}, - "billTo": {
- "name": "emailBilling",
- "option": "OPTIONAL",
- "value": false
}, - "shipTo": {
- "name": "emailShipping",
- "option": "OPTIONAL",
- "value": false
}, - "marketing": {
- "name": "emailMarketing",
- "option": "REQUIRED",
- "value": false
}, - "ereceipt": {
- "name": "emailReceipt",
- "option": "REQUIRED",
- "value": true
}, - "did": "1000-7247",
- "eReceipt": {
- "name": "emailReceipt",
- "option": "REQUIRED",
- "value": true
}
}
], - "addresses": [
- {
- "id": "1000-57638",
- "name": "Home Address",
- "street1": {
- "name": "street1",
- "option": "OPTIONAL",
- "value": "277 Howard St.",
- "length": 30
}, - "street2": {
- "name": "street2",
- "option": "OPTIONAL",
- "value": "",
- "length": 30
}, - "city": {
- "name": "city",
- "option": "OPTIONAL",
- "value": "Boone",
- "length": 20
}, - "state": {
- "name": "state",
- "option": "OPTIONAL",
- "value": "NC",
- "length": 2
}, - "postal": {
- "name": "postal",
- "option": "OPTIONAL",
- "value": "28607",
- "length": 15
}, - "country": {
- "name": "country",
- "option": "OPTIONAL",
- "value": "US",
- "length": 4
}, - "shipTo": {
- "name": "addressShipping",
- "option": "OPTIONAL",
- "value": true
}, - "billTo": {
- "name": "addressBilling",
- "option": "OPTIONAL",
- "value": false
}, - "did": "1000-4"
}
]
}
This is used to change a customer's account password.
The old password must be provided to verify the customer. The new password must meet the following password strength requirements:
- Minimum 8 characters
- Maximum 255 characters
- At least 1 uppercase letter
- At least 1 number
- At least 1 symbol
oldPassword | string The old password for the customer account. |
newPassword | string The new password for the customer account. |
{- "oldPassword": "oldPassword123",
- "newPassword": "newPassword123"
}
For associated customer, this returns reward information such as enrolled loyalty programs, discounts, discount groups, customer group / store coupon triggered coupons, and punch cards. This endpoint will not return third party coupon information.
This is traditionally used to display a Rewards
page to the customer.
discount | string If the customer is assigned a discount group, this is the discount name. If the customer is not assigned a discount group, but is assigned a discount, this will be the description of that discount. |
Array of objects (LoyaltyBalanceInfo) A list of loyalty programs and related information for the associated customer. | |
Array of objects (CouponCombo) A list of coupons triggered by customer groups/store coupons that are available to a customer. | |
Array of objects (CouponPunchCard) A list of punch cards that are available to the given customer. |
{- "discount": "string",
- "loyaltyBalances": [
- {
- "id": "1000-38",
- "name": "string",
- "showDecimal": true,
- "online": true,
- "eligible": 0,
- "balance": 0,
- "accrual": 0,
- "redeemed": 0,
- "minimumBalance": 0,
- "minimumRedemption": 0,
- "redeemable": true,
- "disabled": true,
- "expirationDate": "2019-08-24",
- "expiring": 0
}
], - "coupons": [
- {
- "id": "1000-38",
- "name": "string",
- "details": "string",
- "expiration": "2019-08-24T14:15:22Z"
}
], - "punchCards": [
- {
- "ruleId": "1000-38",
- "name": "string",
- "details": "string",
- "completedCards": 0,
- "currentPunches": 0,
- "requiredPunches": 0,
- "expiration": "2019-08-24T14:15:22Z"
}
]
}
This endpoint can be used to unsubscribe a customer from marketing emails.
This includes the cart abandonment email. All emails on the customer record will be opted-out of marketing after calling this endpoint.
cus required | string Example: cus=1000-234 The unique customer catapult ID for the customer. In the form of pk-cpk. |
acc required | string Example: acc=WB24XVXCXIBY3ZH3 The customer's account number. |
This endpoint allows an associated customer to update their auto-reload status and auto-reload amount.
Secure auto-reload is not a feature supported in WebCart right now.
enabled | boolean Whether or not auto reload is enabled for the customer. |
amount | number The amount to automatically reload. Must be larger than the minimum default auto-reload amount if configured. |
autoReloadStatus | string Enum: "ENABLED" "DISABLED" "NOT_ALLOWED" Represents the status of auto-reload functionality for a customer. |
reloadAmount | number The reload amount for the customer's default token. |
defaultReloadAmount | number The default reload amount from the WebCart terminal's authorization security profile. |
Array of objects (ChargeAccountBalance) A list of charge accounts associated with the customer. | |
tokenStatus | string Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED" Represents the status of returning tokenization information from the server |
Array of objects (TokenInfo) A list of tokens associated with the customer. | |
object (creditPaymentMethod) If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found. | |
object (ebtPaymentMethod) If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found. |
{- "enabled": true,
- "amount": 50
}
{- "autoReloadStatus": "ENABLED",
- "reloadAmount": 50,
- "defaultReloadAmount": 25,
- "chargeAccounts": [
- {
- "id": "1000-34",
- "name": "Charge Account",
- "balance": 100,
- "creditLimit": 1000
}
], - "tokenStatus": "NORMAL",
- "tokens": [
- {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}
], - "creditPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}, - "ebtPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}
}
This allows a customer to update their default credit token.
The default token is used by secure auto-reload for change accounts and it is also the payment option selected by default when a using a credit payment method in WebCart. Tokenized EBT cards cannot be default tokens.
cardId | string An identifier for the card from the card processor. |
defaultToken | boolean If true, this is considered the default token for the associated customer. The default token is used for secure auto-reload of charge accounts. EBT SNAP and EBT Cash tokens are not eligible to be default tokens. |
brand | string The brand of the card. |
finalDigits | string The last four digits of the card. |
expiration | string The card expiration date in MMYY format. This is the same format used by the card processor. For example, a card that expires in December 2025 would be represented as 1225. |
authFk | string The unique identifier for the authorization server profile configured on the WebCart terminal. |
tenderType | integer <int32> Tender type backing this token: 4 for Credit, 6 for EBT SNAP, 8 for Debit, 12 for EBT Cash, 14 for Gift Card, 23 for Tokenization. |
autoReloadStatus | string Enum: "ENABLED" "DISABLED" "NOT_ALLOWED" Represents the status of auto-reload functionality for a customer. |
reloadAmount | number The reload amount for the customer's default token. |
defaultReloadAmount | number The default reload amount from the WebCart terminal's authorization security profile. |
Array of objects (ChargeAccountBalance) A list of charge accounts associated with the customer. | |
tokenStatus | string Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED" Represents the status of returning tokenization information from the server |
Array of objects (TokenInfo) A list of tokens associated with the customer. | |
object (creditPaymentMethod) If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found. | |
object (ebtPaymentMethod) If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found. |
{- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}
{- "autoReloadStatus": "ENABLED",
- "reloadAmount": 50,
- "defaultReloadAmount": 25,
- "chargeAccounts": [
- {
- "id": "1000-34",
- "name": "Charge Account",
- "balance": 100,
- "creditLimit": 1000
}
], - "tokenStatus": "NORMAL",
- "tokens": [
- {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}
], - "creditPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}, - "ebtPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}
}
Returns digital wallet information for the associated customer. This includes charge accounts, tokenized credit cards, tokenized EBT cards, as well as credit and EBT payment methods defined on the WebCart terminal.
Moreover, this endpoint returns the auto-reload status for the customer in relation to any associated charge accounts.
In WebCart, this endpoint is used to display a digital wallet page to the customer.
autoReloadStatus | string Enum: "ENABLED" "DISABLED" "NOT_ALLOWED" Represents the status of auto-reload functionality for a customer. |
reloadAmount | number The reload amount for the customer's default token. |
defaultReloadAmount | number The default reload amount from the WebCart terminal's authorization security profile. |
Array of objects (ChargeAccountBalance) A list of charge accounts associated with the customer. | |
tokenStatus | string Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED" Represents the status of returning tokenization information from the server |
Array of objects (TokenInfo) A list of tokens associated with the customer. | |
object (creditPaymentMethod) If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found. | |
object (ebtPaymentMethod) If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found. |
{- "autoReloadStatus": "ENABLED",
- "reloadAmount": 50,
- "defaultReloadAmount": 25,
- "chargeAccounts": [
- {
- "id": "1000-34",
- "name": "Charge Account",
- "balance": 100,
- "creditLimit": 1000
}
], - "tokenStatus": "NORMAL",
- "tokens": [
- {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}
], - "creditPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}, - "ebtPaymentMethod": {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "string"
}
}
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 |
g | Array of strings 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 required | integer <int32> The status code of the response.Refer to "Error Codes" in API Responses for a complete reference. |
message required | string A string description of the status code |
redirect | string A redirect URL to send the user to, if applicable |
data | object The main response payload that varies based on the API endpoint |
Array of objects (Alert) A list of alerts that may be relevant to the user | |
object A map of field names to their validation error messages, if applicable | |
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": "Success",
- "data": { },
- "alerts": [
- {
- "code": "shipping.invalid",
- "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 |
g | Array of strings 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.
Given an item ID, this endpoint will return all necessary information to display any item modifiers and linked items associated with the item. This endpoint is typically used to display the item customization options when a customer is viewing a MTO item.
id required | string Example: INV-1000-12 The typed unique ID of the requested item |
terminalGroup | string Unique identifier for the terminal group associated with this Item Modifier |
object (ItemModifierCategoryTree) Linked items associated with this item. | |
Array of objects (ItemModifierCategoryTree) List of item modifier categories. | |
object Map of item modifier answers, where the key is a identifier for the item modifier category item and the value is an object describing the answer. |
{- "terminalGroup": "1000-345",
- "linkedItems": {
- "id": "string",
- "name": "string",
- "min": 0,
- "max": 0,
- "autoDoneOnMax": true,
- "scoBackground": "1000-194959",
- "scoWidth": 0,
- "scoHeight": 0,
- "items": [
- {
- "id": "[1000-5573]",
- "order": 0,
- "inv": "1000-78",
- "quantities": {
- "id": "1002-1259",
- "price": 0.5,
- "name": "A little",
- "defaultItem": true,
- "quantity": 1,
- "scoSelectedImage": "string"
}, - "minimum": 0,
- "maximum": 0,
- "increment": 0,
- "price": 0,
- "freeQuantity": 0,
- "countTowardsMaxSelections": true,
- "subTree": { },
- "name": "string",
- "image": "1000-194959",
- "scoUnselectedImage": "1000-194959",
- "scoSelectedImage": "1000-194959"
}
], - "prohibitAlterations": true
}, - "categories": [
- {
- "id": "string",
- "name": "string",
- "min": 0,
- "max": 0,
- "autoDoneOnMax": true,
- "scoBackground": "1000-194959",
- "scoWidth": 0,
- "scoHeight": 0,
- "items": [
- {
- "id": "[1000-5573]",
- "order": 0,
- "inv": "1000-78",
- "quantities": {
- "id": "1002-1259",
- "price": 0.5,
- "name": "A little",
- "defaultItem": true,
- "quantity": 1,
- "scoSelectedImage": "string"
}, - "minimum": 0,
- "maximum": 0,
- "increment": 0,
- "price": 0,
- "freeQuantity": 0,
- "countTowardsMaxSelections": true,
- "subTree": { },
- "name": "string",
- "image": "1000-194959",
- "scoUnselectedImage": "1000-194959",
- "scoSelectedImage": "1000-194959"
}
], - "prohibitAlterations": true
}
], - "answers": {
- "[1000-6630]": {
- "id": "[1000-6630]",
- "quantity": 1
}, - "[1000-6609]": {
- "id": "[1000-6609]",
- "quantity": 1
}
}
}
Given an item and an array of customer modifier selections, this endpoint will encode the item and modifiers into a variation string that can be used to identify the item with the selected modifiers. Two identical items with the same modifiers will have the same variation string.
id required | string Example: INV-1000-12 The typed unique ID of the requested item |
Array of objects (ItemModifierAnswer) List of item modifier answers representing the selected options for the variation. |
id | string The created variation string. |
{- "options": [
- {
- "id": "[1000-5459]",
- "quantity": 2
}, - {
- "id": "[1000-5484]",
- "quantity": 1
}, - {
- "id": "[1000-6608]",
- "quantity": 1
}, - {
- "id": "[1000-6609]",
- "quantity": 1
}, - {
- "id": "[1000-6625]",
- "quantity": 1
}, - {
- "id": "[1000-6626]",
- "quantity": 1
}, - {
- "id": "[1000-6630]",
- "quantity": 1
}, - {
- "id": "[1000-6633]",
- "quantity": 1
}, - {
- "id": "[1000-6634]",
- "quantity": 1
}, - {
- "id": "[1000-6635]",
- "quantity": 1
}
]
}
{- "id": "string"
}
Returns detailed item data given the item's scan code.
This is an expansion on the item summary data returned by the /i/q
and /i/summaries
endpoints.
This response is traditionally used to populate the item detail page using the item's scancode.
Note that only non-empty fields will be returned in the ItemDetail
response object.
scanCode required | string Example: scanCode=049000000276 The scan code to look up. |
id | string The unique ID of the item |
image | string The id of the image of an item |
scanCode | string The scancode for the item |
name | string The name of the item |
alternateName | string The alternate name of an item, if available. This is used to present items in different languages.This is the |
suggestedPrice | number The suggested or pre-sale price of the item |
actualPriceDivider | integer <int32> If a price divider is in effect this contains the divider |
actualPrice | number The actual price of the item. This is typically the base price but can take into account special pricing. |
autoDiscount | string If an auto-discount applies to an item it is named here |
promo | string If the item is on any type of promotion the name of that promotion is indicated |
buyDown | string If a buydown is active for the given item it is named here |
object (WeightProfileDto) If the item is sold by weight this object describes the weight parameters | |
baseItem | string If this item is an additional scan code (alternate ID) then this is the ID of its base item |
ascQuantity | number If this item is an additional scan code (alternate ID) then this is the ASC quantity of the item |
maxQuantity | number The max number of this item that can be purchased or added to the cart in a single transaction |
maxBaseQuantity | number The maximum base quantity that should be set for this item taking into account on-hands. That is, the shopper should not be allowed to add more than this quantity to their cart. |
object (QuantityLimitDataDescription) Quantity limits as given by RACS (Retail Access Control Standards). | |
Array of objects (ItemAttributeDto) The list of health attributes which apply to this item | |
itemGroups | Array of strings The list of item groups to which this item belongs |
Array of objects (WebPaymentMethodDto) Special tenders that this item is eligible for, such as EBT or Loyalty | |
Array of objects (ExternalCoupon) The list of external/digital coupons which apply to this item | |
outOfStock | boolean Indicates if this item is currently out of stock |
sellOutOfStock | boolean Indicates if this item can be sold while out of stock. Based on global and item-level settings |
object (brandId) The id of this item's brand | |
brand | string The name of this item's brand |
size | string The description of this item's size |
shelfSequence | integer <int32> The number of this item's shelf sequence |
location | string The description of this item's location within the store |
hasModifiers | boolean Indicates whether the item has modifiers which require variation ID before they can be added to the cart. |
hasLinkedItems | boolean Indicates if an item has linked items, such as made-to-order items |
averageWeight | number If a weighted item should be sold by average weight, the average weight will be indicated here |
hasRestriction | boolean Indicates if a sales restriction is applied to an item that would require cashier involvement when order is fulfilled (e.g. a check ID requirement). |
hasAgeRestriction | boolean Indicates if an item has an age restriction and the shopper's age should be verified on pickup or delivery. |
cashierApprovalRequired | boolean Indicates if an item must be approved by a cashier at the POS, and thus should not be used for pay-now |
hasTimeRestrictions | boolean Indicates if an item has time restrictions and cannot be purchased at certain times. |
excludeFromCombos | boolean Indicates if this item should be excluded from dynamic promotions. |
prohibitedSalesScheduleNames | Array of strings Names of the Prohibited Sales Schedules that currently apply to this item. |
object (departmentId) ID of the department this item belongs to | |
department | string Name of the department this item belongs to |
discountType | string Enum: "override" "dollar" "percent" If this item has an Auto Discount, this is the type of discount |
loyalty | number Estimated loyalty points to be accrued on this item. This is calculated based on the actual price and the loyalty multiplier. |
availability | string Enum: "out" "low" "high" "order" "showQuantity" Item availability status. |
onHand | number Estimated quantity on hand. This is only set if the 'Display item quantity' setting is enabled in Web Office. If the 'Display item quantity' setting is enabled and the 'Limited availability quantity' is greater than 0, then the on hand will only be returned if the 'Limited availability quantity' is greater than the on hand. If the 'Limited availability quantity' is zero, then the on hand will be returned as long as it is greater than 0. |
servingsPerContainer | string Servings Per Container entered in the |
servingSize | string Serving size entered in the |
Array of objects (Nutrition) Nutrition fact key/value pairs from the | |
ingredients | string Ingredients field from the |
local | boolean True if the |
regionalDescriptor | string Regional Descriptor field from the |
productionMethod | string Production Method from the |
Array of objects (CustomSource) List of custom sources linked to this item that have the type | |
Array of objects (ItemSummary) List of alternate IDs for this item. This is populated from the | |
Array of objects (Image) List of item images. This is populated from the | |
discontinued | boolean |
{- "id": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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",
- "loyalty": 12,
- "availability": "low",
- "onHand": 13,
- "servingsPerContainer": "10",
- "servingSize": "1 CONE (4 g)",
- "nutrition": [
- {
- "id": 27,
- "name": "Calories",
- "value": 11,
- "unit": null,
- "percent": 0,
- "parent": 0,
- "order": 0,
- "depth": 0
}
], - "ingredients": "POTATO STARCH, TAPIOCA STARCH, PALM OIL (GMO FREE), SUGAR, DIETARY FIBERS, EMUSLIFIER (LECITHIN), COCOA POWDER, XANTHAN GUM, SALT, BAKING SODA, NATURAL VANILLA.",
- "local": true,
- "regionalDescriptor": "United States of America",
- "productionMethod": "Bottled by Machines",
- "customSources": [
- {
- "id": "1000-133079",
- "label": "Custom Source",
- "content": "Custom Source"
}
], - "alternateItems": [
- {
- "id": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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
}
], - "images": [
- {
- "id": "1000-133079",
- "caption": "string"
}
], - "discontinued": true
}
Returns Item Summary data given the item's scan code.
Note that multiple items will be returned if the scan code corresponds to an Alternate ID
sc required | string Example: sc=049000000276 The scan code to look up. |
codeType | string Enum: "UPCA" "upc_a" "UPCE" "upc_e" "EAN13" "ean_13" The type of |
originalPrice | number The base price embedded in a GS1 scan code. This is encoded in a custom ECRS format in GS1 DataBars using Application Identifier 91. WebCart parses this format and returns the numerical value. Only returned if one of |
embeddedPrice | number The current price embedded in the scan code. This could come from a GS1 DataBar or a UPCA Type 2 barcode. In a GS1 DataBar, this is Application Identifier 392. |
embeddedDiscount | number The discount embedded in a KNET markdown label (prefix 9980). |
embeddedNetWeight | number The weight in kilograms embedded in a GS1 scan code. This is Application Identifier 310. |
expiration | string <date> The expiration date of the scan code. This is only available in GS1 DataBars and KNET markdown labels (prefix 9980). In a GS1 DataBar, this is Application Identifier 17. |
Array of objects (ItemSummary) List of items matching the UPC. Note that there can be multiple matches if the scan code corresponds to an Alternate ID. |
{- "originalPrice": 20,
- "embeddedPrice": 15.15,
- "embeddedDiscount": 1.2,
- "embeddedNetWeight": 1.02,
- "expiration": "2019-08-24",
- "items": [
- {
- "id": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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
}
]
}
Returns detailed item data given the item's typed ID.
This is an expansion on the item summary data returned by the /i/q
and /i/summaries
endpoints.
This response is traditionally used to populate the item detail page using the item's scancode.
Note that only non-empty fields will be returned in the ItemDetail
response object.
id required | string Example: INV-1000-12 The typed unique ID of the requested item |
id | string The unique ID of the item |
image | string The id of the image of an item |
scanCode | string The scancode for the item |
name | string The name of the item |
alternateName | string The alternate name of an item, if available. This is used to present items in different languages.This is the |
suggestedPrice | number The suggested or pre-sale price of the item |
actualPriceDivider | integer <int32> If a price divider is in effect this contains the divider |
actualPrice | number The actual price of the item. This is typically the base price but can take into account special pricing. |
autoDiscount | string If an auto-discount applies to an item it is named here |
promo | string If the item is on any type of promotion the name of that promotion is indicated |
buyDown | string If a buydown is active for the given item it is named here |
object (WeightProfileDto) If the item is sold by weight this object describes the weight parameters | |
baseItem | string If this item is an additional scan code (alternate ID) then this is the ID of its base item |
ascQuantity | number If this item is an additional scan code (alternate ID) then this is the ASC quantity of the item |
maxQuantity | number The max number of this item that can be purchased or added to the cart in a single transaction |
maxBaseQuantity | number The maximum base quantity that should be set for this item taking into account on-hands. That is, the shopper should not be allowed to add more than this quantity to their cart. |
object (QuantityLimitDataDescription) Quantity limits as given by RACS (Retail Access Control Standards). | |
Array of objects (ItemAttributeDto) The list of health attributes which apply to this item | |
itemGroups | Array of strings The list of item groups to which this item belongs |
Array of objects (WebPaymentMethodDto) Special tenders that this item is eligible for, such as EBT or Loyalty | |
Array of objects (ExternalCoupon) The list of external/digital coupons which apply to this item | |
outOfStock | boolean Indicates if this item is currently out of stock |
sellOutOfStock | boolean Indicates if this item can be sold while out of stock. Based on global and item-level settings |
object (brandId) The id of this item's brand | |
brand | string The name of this item's brand |
size | string The description of this item's size |
shelfSequence | integer <int32> The number of this item's shelf sequence |
location | string The description of this item's location within the store |
hasModifiers | boolean Indicates whether the item has modifiers which require variation ID before they can be added to the cart. |
hasLinkedItems | boolean Indicates if an item has linked items, such as made-to-order items |
averageWeight | number If a weighted item should be sold by average weight, the average weight will be indicated here |
hasRestriction | boolean Indicates if a sales restriction is applied to an item that would require cashier involvement when order is fulfilled (e.g. a check ID requirement). |
hasAgeRestriction | boolean Indicates if an item has an age restriction and the shopper's age should be verified on pickup or delivery. |
cashierApprovalRequired | boolean Indicates if an item must be approved by a cashier at the POS, and thus should not be used for pay-now |
hasTimeRestrictions | boolean Indicates if an item has time restrictions and cannot be purchased at certain times. |
excludeFromCombos | boolean Indicates if this item should be excluded from dynamic promotions. |
prohibitedSalesScheduleNames | Array of strings Names of the Prohibited Sales Schedules that currently apply to this item. |
object (departmentId) ID of the department this item belongs to | |
department | string Name of the department this item belongs to |
discountType | string Enum: "override" "dollar" "percent" If this item has an Auto Discount, this is the type of discount |
loyalty | number Estimated loyalty points to be accrued on this item. This is calculated based on the actual price and the loyalty multiplier. |
availability | string Enum: "out" "low" "high" "order" "showQuantity" Item availability status. |
onHand | number Estimated quantity on hand. This is only set if the 'Display item quantity' setting is enabled in Web Office. If the 'Display item quantity' setting is enabled and the 'Limited availability quantity' is greater than 0, then the on hand will only be returned if the 'Limited availability quantity' is greater than the on hand. If the 'Limited availability quantity' is zero, then the on hand will be returned as long as it is greater than 0. |
servingsPerContainer | string Servings Per Container entered in the |
servingSize | string Serving size entered in the |
Array of objects (Nutrition) Nutrition fact key/value pairs from the | |
ingredients | string Ingredients field from the |
local | boolean True if the |
regionalDescriptor | string Regional Descriptor field from the |
productionMethod | string Production Method from the |
Array of objects (CustomSource) List of custom sources linked to this item that have the type | |
Array of objects (ItemSummary) List of alternate IDs for this item. This is populated from the | |
Array of objects (Image) List of item images. This is populated from the | |
discontinued | boolean |
{- "id": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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",
- "loyalty": 12,
- "availability": "low",
- "onHand": 13,
- "servingsPerContainer": "10",
- "servingSize": "1 CONE (4 g)",
- "nutrition": [
- {
- "id": 27,
- "name": "Calories",
- "value": 11,
- "unit": null,
- "percent": 0,
- "parent": 0,
- "order": 0,
- "depth": 0
}
], - "ingredients": "POTATO STARCH, TAPIOCA STARCH, PALM OIL (GMO FREE), SUGAR, DIETARY FIBERS, EMUSLIFIER (LECITHIN), COCOA POWDER, XANTHAN GUM, SALT, BAKING SODA, NATURAL VANILLA.",
- "local": true,
- "regionalDescriptor": "United States of America",
- "productionMethod": "Bottled by Machines",
- "customSources": [
- {
- "id": "1000-133079",
- "label": "Custom Source",
- "content": "Custom Source"
}
], - "alternateItems": [
- {
- "id": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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
}
], - "images": [
- {
- "id": "1000-133079",
- "caption": "string"
}
], - "discontinued": true
}
Typically used for MTO items. Once an MTO item has been modified and a variation created, this endpoint will return the item with the selected modifier selections using the variation.
id required | string Example: INV-1000-12 The typed unique ID of the requested item |
variation | string The requested variation string. |
terminalGroup | string Unique identifier for the terminal group associated with this Item Modifier |
object (ItemModifierCategoryTree) Linked items associated with this item. | |
Array of objects (ItemModifierCategoryTree) List of item modifier categories. | |
object Map of item modifier answers, where the key is a identifier for the item modifier category item and the value is an object describing the answer. |
{- "variation": "string"
}
{- "terminalGroup": "1000-345",
- "linkedItems": {
- "id": "string",
- "name": "string",
- "min": 0,
- "max": 0,
- "autoDoneOnMax": true,
- "scoBackground": "1000-194959",
- "scoWidth": 0,
- "scoHeight": 0,
- "items": [
- {
- "id": "[1000-5573]",
- "order": 0,
- "inv": "1000-78",
- "quantities": {
- "id": "1002-1259",
- "price": 0.5,
- "name": "A little",
- "defaultItem": true,
- "quantity": 1,
- "scoSelectedImage": "string"
}, - "minimum": 0,
- "maximum": 0,
- "increment": 0,
- "price": 0,
- "freeQuantity": 0,
- "countTowardsMaxSelections": true,
- "subTree": { },
- "name": "string",
- "image": "1000-194959",
- "scoUnselectedImage": "1000-194959",
- "scoSelectedImage": "1000-194959"
}
], - "prohibitAlterations": true
}, - "categories": [
- {
- "id": "string",
- "name": "string",
- "min": 0,
- "max": 0,
- "autoDoneOnMax": true,
- "scoBackground": "1000-194959",
- "scoWidth": 0,
- "scoHeight": 0,
- "items": [
- {
- "id": "[1000-5573]",
- "order": 0,
- "inv": "1000-78",
- "quantities": {
- "id": "1002-1259",
- "price": 0.5,
- "name": "A little",
- "defaultItem": true,
- "quantity": 1,
- "scoSelectedImage": "string"
}, - "minimum": 0,
- "maximum": 0,
- "increment": 0,
- "price": 0,
- "freeQuantity": 0,
- "countTowardsMaxSelections": true,
- "subTree": { },
- "name": "string",
- "image": "1000-194959",
- "scoUnselectedImage": "1000-194959",
- "scoSelectedImage": "1000-194959"
}
], - "prohibitAlterations": true
}
], - "answers": {
- "[1000-6630]": {
- "id": "[1000-6630]",
- "quantity": 1
}, - "[1000-6609]": {
- "id": "[1000-6609]",
- "quantity": 1
}
}
}
Given a comma delimited list of scan codes, a list of item summaries will be returned.
This is a convenience method for getting multiple item summaries in a single request.
Note that this endpoint does not return detailed item data. For that, use the /i/detail
or /i/
endpoints.
scanCodes required | string Example: scanCodes=049000000276,018775121196 List of scancodes to look up |
id | string The unique ID of the item |
image | string The id of the image of an item |
scanCode | string The scancode for the item |
name | string The name of the item |
alternateName | string The alternate name of an item, if available. This is used to present items in different languages.This is the |
suggestedPrice | number The suggested or pre-sale price of the item |
actualPriceDivider | integer <int32> If a price divider is in effect this contains the divider |
actualPrice | number The actual price of the item. This is typically the base price but can take into account special pricing. |
autoDiscount | string If an auto-discount applies to an item it is named here |
promo | string If the item is on any type of promotion the name of that promotion is indicated |
buyDown | string If a buydown is active for the given item it is named here |
object (WeightProfileDto) If the item is sold by weight this object describes the weight parameters | |
baseItem | string If this item is an additional scan code (alternate ID) then this is the ID of its base item |
ascQuantity | number If this item is an additional scan code (alternate ID) then this is the ASC quantity of the item |
maxQuantity | number The max number of this item that can be purchased or added to the cart in a single transaction |
maxBaseQuantity | number The maximum base quantity that should be set for this item taking into account on-hands. That is, the shopper should not be allowed to add more than this quantity to their cart. |
object (QuantityLimitDataDescription) Quantity limits as given by RACS (Retail Access Control Standards). | |
Array of objects (ItemAttributeDto) The list of health attributes which apply to this item | |
itemGroups | Array of strings The list of item groups to which this item belongs |
Array of objects (WebPaymentMethodDto) Special tenders that this item is eligible for, such as EBT or Loyalty | |
Array of objects (ExternalCoupon) The list of external/digital coupons which apply to this item | |
outOfStock | boolean Indicates if this item is currently out of stock |
sellOutOfStock | boolean Indicates if this item can be sold while out of stock. Based on global and item-level settings |
object (brandId) The id of this item's brand | |
brand | string The name of this item's brand |
size | string The description of this item's size |
shelfSequence | integer <int32> The number of this item's shelf sequence |
location | string The description of this item's location within the store |
hasModifiers | boolean Indicates whether the item has modifiers which require variation ID before they can be added to the cart. |
hasLinkedItems | boolean Indicates if an item has linked items, such as made-to-order items |
averageWeight | number If a weighted item should be sold by average weight, the average weight will be indicated here |
hasRestriction | boolean Indicates if a sales restriction is applied to an item that would require cashier involvement when order is fulfilled (e.g. a check ID requirement). |
hasAgeRestriction | boolean Indicates if an item has an age restriction and the shopper's age should be verified on pickup or delivery. |
cashierApprovalRequired | boolean Indicates if an item must be approved by a cashier at the POS, and thus should not be used for pay-now |
hasTimeRestrictions | boolean Indicates if an item has time restrictions and cannot be purchased at certain times. |
excludeFromCombos | boolean Indicates if this item should be excluded from dynamic promotions. |
prohibitedSalesScheduleNames | Array of strings Names of the Prohibited Sales Schedules that currently apply to this item. |
object (departmentId) ID of the department this item belongs to | |
department | string Name of the department this item belongs to |
discountType | string Enum: "override" "dollar" "percent" If this item has an Auto Discount, this is the type of discount |
discontinued | boolean |
[- {
- "id": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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
}
]
The endpoints in this group facilitate queries for, and changes to, lists. Use the endpoints in this group to control:
Returns the requested list for the associated customer.
id required | string Example: 1002-1350700 Unique ID for the requested list. |
id | string The unique ID of the list. |
name | string The name of the list |
type | string Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" The type of the list. This is used to determine the list's purpose. For example, a save for later, custom, or favorites list. |
detail | boolean Value used to denote that this response contains list details. Always true. |
Array of objects (ListItemDetail) The items in the list. This is a detailed view of the items in the list. | |
count | number The number of items in the list. This is influenced by the quantity of each item in the list. |
{- "id": "1000-345",
- "name": "Favorites",
- "type": "CUSTOM",
- "detail": true,
- "items": [
- {
- "item": {
- "id": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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": {
- "id": "YLMfH9nO9RVY6zpGlSIFlgIrBeMQIh+/skdSdjyKw38=",
- "priceOfModifiers": 4.55,
- "modifiers": [
- {
- "type": "link",
- "name": "string",
- "quantity": 0,
- "descriptor": "string",
- "priceOfModifier": 0
}
]
}, - "quantity": 2,
- "weightedItemQuantity": 3,
- "listItemSelected": false
}
], - "count": 5
}
Returns all lists saved for the associated customer.
If the customer is not logged in or lists are disabled, an empty list will be returned.
If the customer is logged in and has lists, a list of lists will be returned.
id | string The unique ID of the list. |
name | string The name of the list |
type | string Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" The type of the list. This is used to determine the list's purpose. For example, a save for later, custom, or favorites list. |
Array of objects (ListItemBasic) The items in the list. | |
count | number The number of items in the list. This is influenced by the quantity of each item in the list. |
[- {
- "id": "1000-345",
- "name": "Favorites",
- "type": "CUSTOM",
- "items": [
- {
- "id": "INV-1000-12",
- "listItemId": "1000-12",
- "name": "Spring Water",
- "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
- "quantity": 2,
- "weightedItemQuantity": 3,
- "sumQuantity": 0,
- "image": "1000-12",
- "listItemSelected": false
}
], - "count": 5
}
]
Creates a new list or updates an existing list.
If the list already exists, it will be updated with the new items and/or list name.
If the list does not exist, it will be created with the provided items.
The new or updated list is then returned.
Required object for creating or update a customer's list.
id | string The unique ID of the list. |
name | string The name of the list |
type | string Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" The type of the list. This is used to determine the list's purpose. For example, a save for later, custom, or favorites list. |
Array of objects (ListItemBasic) The items in the list. | |
count | number The number of items in the list. This is influenced by the quantity of each item in the list. |
id | string The unique ID of the list. |
name | string The name of the list |
type | string Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" The type of the list. This is used to determine the list's purpose. For example, a save for later, custom, or favorites list. |
Array of objects (ListItemBasic) The items in the list. | |
count | number The number of items in the list. This is influenced by the quantity of each item in the list. |
List Sync Request
{- "id": "1000-10000103",
- "name": "List Name",
- "type": "CUSTOM",
- "items": [
- {
- "id": "INV-1000-19343",
- "quantity": 1,
- "weightedItemQuantity": 0
}
], - "count": 1
}
{- "id": "1000-345",
- "name": "Favorites",
- "type": "CUSTOM",
- "items": [
- {
- "id": "INV-1000-12",
- "listItemId": "1000-12",
- "name": "Spring Water",
- "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
- "quantity": 2,
- "weightedItemQuantity": 3,
- "sumQuantity": 0,
- "image": "1000-12",
- "listItemSelected": false
}
], - "count": 5
}
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": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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": "1000-20",
- "image": "1000-25"
}, - "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": "string",
- "name": "string",
- "email": "string",
- "billTo": true,
- "shipTo": true,
- "marketing": true,
- "ereceipt": true,
- "did": "string"
}
], - "phones": [
- {
- "id": "string",
- "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "did": "string"
}
], - "addresses": [
- {
- "id": "string",
- "name": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "postal": "string",
- "country": "string",
- "shipTo": true,
- "billTo": true,
- "location": true,
- "webcart": true,
- "did": "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": "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,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "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": "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,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "type": 0,
- "value": 0,
- "default": true
}
]
}
], - "thirdPartyServiceProfile": {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}, - "reason": "string"
}
], - "paymentMethods": [
- {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "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": "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,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "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": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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": "1000-20",
- "image": "1000-25"
}, - "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": "string",
- "name": "string",
- "email": "string",
- "billTo": true,
- "shipTo": true,
- "marketing": true,
- "ereceipt": true,
- "did": "string"
}
], - "phones": [
- {
- "id": "string",
- "name": "string",
- "phone": "string",
- "billToPhone": true,
- "billToFax": true,
- "shipToPhone": true,
- "shipToFax": true,
- "fax": true,
- "did": "string"
}
], - "addresses": [
- {
- "id": "string",
- "name": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "postal": "string",
- "country": "string",
- "shipTo": true,
- "billTo": true,
- "location": true,
- "webcart": true,
- "did": "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": "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,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "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": "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,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "type": 0,
- "value": 0,
- "default": true
}
]
}
], - "thirdPartyServiceProfile": {
- "id": 0,
- "name": "string",
- "thirdPartyServiceProvider": {
- "id": 0,
- "name": "string",
- "type": 0
}
}, - "reason": "string"
}
], - "paymentMethods": [
- {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "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": "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": "1000-20",
- "image": "1000-25"
}, - "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 A unique identifier for the method and token combination. |
methodId | string A unique identifier for the payment method. |
name | string The display name for the payment method. |
available | boolean Indicates if this payment method is eligible for the current transaction. |
type | integer <int32> If this payment method has a tender attached, this is the tender type of the attached tender. 4 for Credit, 6 for EBT SNAP, 8 for Debit, 12 for EBT Cash, 14 for Gift Card, 23 for Tokenization. |
testing | boolean If true, this payment method is configured with test environment credentials. In other words, this is not a production configuration. |
balance | number The current balance available on the given payment method if one is valid. This is only available for payment methods that support balance checking. For example, EBT SNAP, EBT Cash, Loyalty, and charge accounts. |
eligible | number The amount of this transaction that is eligible for the given tender. |
minimum | number The minimum balance required to redeem using this tender. Null if not configured. |
maximum | number The maximum redeemable balance for this tender. Null if not configured. |
object (TokenInfo) If this is a token tender then this contains the token specific data. | |
provider | string Enum: "ecrs-charge" "ecrs-loyalty" "ecrs-gift-card" "dwolla" "paypal" "tokenization" "cardpointe" "stripe" "shiftfour" "cardknox-ebt" The provider associated with the payment method. |
iframePath | string The iframe URL used to render a payment processor's iframe. This is only applicable for CardConnect and ShiftFour. |
clientKey | string Key used by the payment processor to accept digital payments. This is only applicable for Stripe and ShiftFour. |
accessBlock | string Access block used by the payment processor to accept digital payments. This is only applicable for ShiftFour. |
serverPath | string Server path URL used by the payment processor to accept digital payments. This is only applicable for ShiftFour. |
iframePropertyQueryCount | integer <int32> Testing variable used to count the number of times an initiate request was made to the digital payment processor. This is only applicable for ShiftFour test configurations. |
merchantId | string Merchant ID used by the payment processor to accept digital payments. This is only applicable for CardConnect. |
countryCode | string Country code used by the payment processor to accept digital payments. This is only applicable for CardConnect. |
currencyCode | string Currency code used by the payment processor to accept digital payments. This is only applicable for CardConnect. |
applePayMerchantIdentifier | string Apple pay merchant identifier used by the digital payment processor to accept Apple Pay. This is only applicable for CardConnect. |
googlePayMerchantId | string Google Pay merchant ID used by the digital payment processor to accept Google Pay. This is only applicable for CardConnect. |
[- {
- "pmId": "1000-27966",
- "methodId": "1000-27966",
- "name": "Pay Online",
- "available": true,
- "type": 0,
- "testing": true,
- "balance": 0,
- "eligible": 0,
- "minimum": 0,
- "maximum": 0,
- "token": {
- "cardId": "string",
- "defaultToken": true,
- "brand": "Visa",
- "finalDigits": "1234",
- "expiration": "1225",
- "authFk": "1000-21",
- "tenderType": 4
}, - "provider": "ecrs-charge",
- "iframePath": "string",
- "clientKey": "string",
- "accessBlock": "string",
- "serverPath": "string",
- "iframePropertyQueryCount": 0,
- "merchantId": "string",
- "countryCode": "string",
- "currencyCode": "string",
- "applePayMerchantIdentifier": "string",
- "googlePayMerchantId": "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": "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": "1000-20",
- "image": "1000-25"
}, - "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": "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": "1000-20",
- "image": "1000-25"
}, - "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": "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,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "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": "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,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "name": "string",
- "displayName": "string",
- "allowCustomAmount": true,
- "tipOptions": [
- {
- "id": {
- "pk": 0,
- "urlString": "string",
- "littleCpk": 0,
- "littlePk": 0
}, - "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:
g | Array of strings 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 The identifier for this external coupon. |
name | string The name for this external coupon. This is the name that will be displayed to the customer. |
requirements | string Any requirements for the usage or redemption of this coupon. Often used to explain legal requirements. |
description | string The long form description of this coupon. This is often used to explain the coupon in detail. |
category | string The type of digital coupon. |
brand | string The brand of items relating to this digital coupon |
startDate | string The start date for redemption of this coupon. |
endDate | string The end date for redemption of this coupon. |
imageUrl | string The url of the image related to this coupon. This is often used to display the coupon in a digital wallet or app. |
redeemLimit | string The maximum number of times this coupon can be redeemed. |
requirementUpcs | Array of strings The list of item UPCs that can trigger this coupon. These are returned in GTIN-14 format. |
rewardUpcs | Array of strings The list of item UPCs that can trigger rewards for this coupon. These are returned in GTIN-14 format. |
targeted | boolean Indicates whether this coupon is targeted at specific customers or groups. |
featured | boolean Indicates whether this coupon should be featured/highlighted in search results. This is used to promote specific coupons. |
enabled | boolean Indicates whether this coupon is enabled and should be displayed to customers. |
sortOrder | integer <int32> The sort order for this coupon. This is used to determine the order in which coupons are displayed to customers. Lower numbers are displayed first. |
validBanners | Array of strings List of banners that can display this coupon. This is used to restrict coupon display to specific groups of stores. |
validLocations | Array of strings List of CATAPULT Store IDs that can display and redeem this coupon. This is used to restrict coupon display to specific stores. |
validForStore | boolean Indicates whether this coupon is valid for the current store. This is used to determine if the coupon should be displayed to the customer. |
[- {
- "id": "gc:10101-1232",
- "name": "FIJI: $1.00 off",
- "requirements": "Limit of one coupon per household.",
- "description": "Save $6.00 on ONE (1) Brand Item. This coupon is valid for one time use only.",
- "category": "CENTS OFF",
- "brand": "Gillette",
- "startDate": "2025-04-01",
- "endDate": "2025-04-02",
- "redeemLimit": "3",
- "requirementUpcs": [
- "00047400689435",
- "00047400685697"
], - "rewardUpcs": [
- "00047400689435",
- "00047400685697"
], - "targeted": true,
- "featured": true,
- "enabled": true,
- "sortOrder": 3,
- "validBanners": [
- "Banner 1",
- "Banner 2"
], - "validLocations": [
- "123",
- "124"
], - "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:
Retrieves gift card details and balance by card identifier. Returns an error with code -22 if a PIN is required.
id required | string Gift card identifier |
dynamic required | boolean Indicates if the gift card has dynamic balance |
account required | string Gift card account number or identifier |
balance required | number Current balance available on the gift card |
status required | string Enum: "active" "inactive" "invalid" Status of the gift card |
object (GiftCardDesign) Design information for the gift card | |
recipientName | string Name of the gift card recipient |
senderName | string Name of the gift card sender |
message | string Personal message included with the gift card |
egiftCard | boolean Indicates if this is an electronic gift card |
{- "dynamic": false,
- "account": "6123456789012345",
- "balance": 50,
- "status": "active",
- "design": {
- "id": "1000-20",
- "image": "1000-25"
}, - "recipientName": "John Doe",
- "senderName": "Jane Smith",
- "message": "Happy Birthday!",
- "egiftCard": true
}
Retrieves gift card details and balance using the provided card identifier and PIN. Use this endpoint when PIN verification is required.
id required | string Gift card identifier |
pin required | string PIN for the gift card |
dynamic required | boolean Indicates if the gift card has dynamic balance |
account required | string Gift card account number or identifier |
balance required | number Current balance available on the gift card |
status required | string Enum: "active" "inactive" "invalid" Status of the gift card |
object (GiftCardDesign) Design information for the gift card | |
recipientName | string Name of the gift card recipient |
senderName | string Name of the gift card sender |
message | string Personal message included with the gift card |
egiftCard | boolean Indicates if this is an electronic gift card |
{- "pin": "123456"
}
{- "dynamic": false,
- "account": "6123456789012345",
- "balance": 50,
- "status": "active",
- "design": {
- "id": "1000-20",
- "image": "1000-25"
}, - "recipientName": "John Doe",
- "senderName": "Jane Smith",
- "message": "Happy Birthday!",
- "egiftCard": true
}
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.
Redirects to the Checkout page when the payment authorization is cancelled. Note that this method does not actually cancel the authorization; the POST endpoint can be used for that purpose.
This endpoint is typically called as a callback from the payment provider when a user decides to cancel the payment flow.
method required | string Example: 1000-20 ID of the payment method for which to cancel authorization |
Cancels an ongoing payment authorization process initiated by the payment provider. This endpoint is typically called as a callback from the payment provider when a user decides to cancel the payment flow.
method required | string Example: 1000-20 ID of the payment method for which to cancel authorization |
Completes an authorization process initiated by the payment provider. This endpoint is typically called as a callback from the payment provider after the user has completed their part of the authorization flow.
method required | string Example: 1000-20 ID of the payment method to complete authorization |
Form data containing the authorization details
property name* additional property | string |
code required | |
message required | string A more precise description of the error. |
object Map of additional errors. |
code required | |
message required | string A more precise description of the error. |
object Map of additional errors. |
{- "authFk": "1000-20",
- "finalDigits": "4242",
- "brand": "Visa"
}
{- "code": -1,
- "message": "string",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}
Perform a pre-authorization with a payment token for the shopper's current cart. Pre-authorization can be collected in several different ways.
After the Authorize call is complete, execute a Get Cart endpoint to get the updated due total.
{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:
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 the 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"
}
Cancels all payment authorizations associated with the current transaction. This endpoint will void all existing authorizations and remove the pay-later property if it exists.
code required | |
message required | string A more precise description of the error. |
object Map of additional errors. |
{- "code": -1,
- "message": "string",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}
Cancels a specific payment authorization identified by the line item ID.
id required | string Example: 123 Line item ID of the authorization to cancel. Use -1 to remove the Pay Later property. |
code required | |
message required | string A more precise description of the error. |
object Map of additional errors. |
{- "code": -1,
- "message": "string",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}
Gets any settings necessary to perform an authorization using a given payment method provider.
This endpoint determines what information is needed based on the payment method type (deferred tender or online tender).
method required | string Example: 1000-20 ID of the payment method to get settings for |
Validates merchant identity for payment processing. Currently only supports Apple Pay validation.
merchantValidationSource required | string (MerchantValidationSource) Value: "APPLE_PAY" Source of the request |
validationUrl | string Validation URL provided by the payment service |
session | string Opaque session object used to complete merchant validation which allows Apple Pay to interact with the payment processor. |
{- "merchantValidationSource": "APPLE_PAY",
}
{- "session": "{\"obfuscated\":\"data\"}"
}
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:
Finalizes a delivery using the most recently generated quote associated with the active user.
This is the third and final step in the order creation process.
It is recommended to validate the quote before finalizing.
Note: DoorDash requires validation prior to finalization.
dropoffInstructions | string <= 1024 characters Instructions for the drop-off location. |
contactlessDropoff | boolean Indicates if the drop-off should be contactless. Note that contactless delivery is not available if restricted items are in the cart. |
sendNotifications | boolean Indicates if notifications should be sent. |
{- "dropoffInstructions": "Leave at the front door, beware of dog.",
- "contactlessDropoff": true,
- "sendNotifications": true
}
Returns delivery details based on the provided unique delivery ID.
Primarily used to check the current status of a delivery.
shippingMethodPk required | integer <int32> The primary key of the shipping method. |
shippingMethodCpk required | integer <int32> The composite key of the shipping method. |
deliveryId | string The unique identifier for the delivery.When using DoorDash, this is the DoorDash order ID. |
requestStatus | string Enum: "SUCCESS" "ERROR" The status of the delivery request. Acceptable values here are SUCCESS or ERROR. |
requestStatusMessage | string A message providing additional information about the request status. |
object (DeliveryStatus) The detailed status of the delivery. |
{- "shippingMethodPk": 3,
- "shippingMethodCpk": 1000,
- "deliveryId": "DEL123456789"
}
{- "requestStatus": "SUCCESS",
- "requestStatusMessage": "Pending driver.",
- "deliveryStatus": "SCHEDULED"
}
Initiates a delivery quote using the provided delivery and drop-off details.
This is the second step in the delivery request workflow.
shippingMethod required | string The shipping method identifier. |
required | object (CartAddress) Shipping address details |
dropoffPhone required | string The phone number for the drop-off location. Typically used to contact the recipient if needed during delivery. |
amount required | number The total cost for the delivery itself. |
dropoffDay required | string The drop-off day in YYYY-MM-DD format. |
dropoffTime required | string The drop-off time in HH:mm:ss format. |
dropoffInstructions | string <= 1024 characters Special instructions for the drop-off. |
contactlessDropoff | boolean Indicates if the drop-off is contactless. Note that if a transaction has restricted items contactless delivery will not be allowed. |
tip | number The tip amount for the delivery. |
status | string The status of the delivery quote. |
deliveryId | string The unique identifier for the delivery. |
message | string A message providing additional details about the delivery quote. |
dropoffPhone | string The phone number for the drop-off location. |
object (DeliveryAddress) The address details for the drop-off location. | |
dropoffInstructions | string Special instructions for the drop-off. |
requestedDropoffDate | string <date> The requested drop-off date. |
object (LocalTime) The current reservation time for this transaction | |
dropoffDate | string <date> The actual drop-off date. |
object (LocalTime) The current reservation time for this transaction | |
fee | number The fee for the delivery. |
trackingUrl | string The tracking URL for the delivery. |
{- "shippingMethod": "1000-1",
- "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": "8282652907",
- "amount": 10,
- "dropoffDay": "2022-03-03",
- "dropoffTime": "12:34:56",
- "dropoffInstructions": "Leave at the front door, no signature required.",
- "contactlessDropoff": true,
- "tip": 2.5
}
{- "status": "SUCCESS",
- "deliveryId": "DEL12345",
- "message": "Delivery quote generated successfully.",
- "dropoffPhone": "8282652907",
- "dropoffAddress": {
- "addressLine1": "123 Main St",
- "addressLine2": "Apt 4B",
- "city": "Boone",
- "state": "NC",
- "zipCode": "28607",
- "latitude": 39.7817,
- "longitude": -89.6501
}, - "dropoffInstructions": "Leave at the garage door.",
- "requestedDropoffDate": "2022-03-03",
- "requestedDropoffTime": "13:35:00",
- "dropoffDate": "2022-03-03",
- "dropoffTime": "13:35:00",
- "fee": 10,
}
Validates that the provided delivery details correspond to an existing delivery.
This is the first step in the order creation process and ensures the order is valid.
This process will check if the delivery service can fulfill the request by sending a copy of the transaction to the provider.
This may fail if age restricted items are present in a restrictive State/province or if the delivery service is down.
shippingMethod required | string The shipping method identifier. |
required | object (CartAddress) Shipping address details |
dropoffPhone required | string The recipient phone number. |
dropoffFirstName required | string The first name of the recipient. |
dropoffLastName required | string The last name of the recipient. |
dropoffEmail required | string The email address of the recipient. |
amount required | number The total monetary amount for the delivery. |
dropoffDay required | string The drop-off day in YYYY-MM-DD format. |
dropoffTime required | string The drop-off time in HH:mm:ss format. |
dropoffInstructions | string <= 1024 characters Special instructions for the drop-off. |
Indicates whether the delivery details are valid.
{- "shippingMethod": "1000-1",
- "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": "8282652907",
- "dropoffFirstName": "John",
- "dropoffLastName": "Doe",
- "dropoffEmail": "jdoe@mail.com",
- "amount": 10,
- "dropoffDay": "2022-03-03",
- "dropoffTime": "12:34:56",
- "dropoffInstructions": "Leave at the front door, no signature required."
}
true
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
shippingMethodId | string |
object (CartAddress) Shipping address details |
Array of objects (ShippingRate) |
{- "shippingMethodId": "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:
Cancels an existing order based on its scan code. Handles cancellation of delivery services and voids payment authorizations. Returns EBT tender information if applicable.
sc required | string The scan code of the order to cancel |
isEbtSnap | boolean Indicates if the tender is EBT SNAP. |
isEbtCash | boolean Indicates if the tender is EBT Cash. |
lastFour | string The last four digits of the EBT card number. |
tenderAmount | number The amount of the tender to be used in this action. |
remainingBalance | number The remaining balance on the EBT card. |
{- "isEbtSnap": true,
- "isEbtCash": true,
- "lastFour": "1234",
- "tenderAmount": 100,
- "remainingBalance": 100
}
Retrieves detailed information for a specific order based on the scan code. Returns order details including shipping information, status, and line items.
sc required | string The scan code of the order to retrieve |
id | string Unique identifier for the order |
endTime | string <date-time> Timestamp when the order was completed |
total | number Total monetary amount of the order |
scancode | string Unique scan code for the order |
object (CartAddress) Shipping address details | |
source | string Enum: "In Store" "In Store - Kiosk" "In Store - Self Checkout" "In Store - Kiosk" "Web Cart" "In Store - Attended Scale" "In Store - Self Service Scale" "In Store - Quick Service Kiosk" "In Store - Price Checker" "ECommerce" "Catapult OFS Pay at Pump" Source system or terminal that created the order |
object (HistoricalOrderStatus) Status information for a historical order | |
shippingMethodDisplayName | string Display name of the shipping method |
shippingMinLeadTimeMinutes | integer <int32> Minimum lead time for shipping in minutes |
maxPrepTimeMinutes | integer <int32> Maximum preparation time in minutes |
reservationStart | string <date-time> Start time of the reservation window |
reservationEnd | string <date-time> End time of the reservation window |
shortEditThreshold | string <date-time> Threshold time for the short edit window. This is the date and time by which any edits to an order must be completed to maintain the initial reservation time. |
editTimeMinutes | integer <int32> Standard edit time allowance in minutes |
shortEditTimeMinutes | integer <int32> The short edit time allowance in minutes. This specifies the duration within which any edits to an order must be made to retain the initial reservation time. |
editable | boolean Indicates whether the order is currently editable |
Array of objects (HistoricalLineItem) List of line items in the order | |
Array of objects (HistoricalGiftCard) List of gift cards purchased in the order | |
Array of objects (HistoricalSpecialOrderItem) List of special order items | |
Array of objects (HistoricalServiceFee) List of service fees applied to the order | |
deliveryId | string Third-party delivery service ID if applicable |
shippingMethodPk | integer <int32> Primary key of the shipping method |
shippingMethodCpk | integer <int32> Creator primary key of the shipping method |
orderTypeId | string Order type identifier |
Array of objects (HistoricalEbtInfo) List of EBT (Electronic Benefit Transfer) payment information |
{- "id": "1000-60",
- "endTime": "2025-05-15T16:14:54.765-04:00",
- "total": 59.99,
- "scancode": "WB1234567890",
- "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
}, - "source": "Web Cart",
- "status": {
- "stage": 3,
- "label": "Order Complete",
- "stages": [
- "Web Order Received",
- "In Progress",
- "Ready",
- "Complete"
]
}, - "shippingMethodDisplayName": "Pickup",
- "shippingMinLeadTimeMinutes": 5,
- "maxPrepTimeMinutes": 30,
- "reservationStart": "2019-08-24T14:15:22Z",
- "reservationEnd": "2019-08-24T14:15:22Z",
- "shortEditThreshold": "2019-08-24T14:15:22Z",
- "editTimeMinutes": 20,
- "shortEditTimeMinutes": 10,
- "editable": true,
- "lineItems": [
- {
- "quantity": 2,
- "price": 29.99,
- "weightedItemQuantity": 1,
- "item": {
- "id": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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": {
- "id": "YLMfH9nO9RVY6zpGlSIFlgIrBeMQIh+/skdSdjyKw38=",
- "priceOfModifiers": 4.55,
- "modifiers": [
- {
- "type": "link",
- "name": "string",
- "quantity": 0,
- "descriptor": "string",
- "priceOfModifier": 0
}
]
}
}
], - "giftCards": [
- {
- "amount": 100,
- "recipientName": "John Doe",
- "senderName": "Jane Smith",
- "sendDate": "2024-05-19T16:00:00Z",
- "design": {
- "id": "1000-20",
- "image": "1000-25"
}, - "code": "330",
- "account": "4322000499",
- "message": "Happy Birthday!"
}
], - "specialOrderItems": [
- {
- "name": "Custom Cake",
- "description": "Please write 'Happy Birthday' on the cake"
}
], - "serviceFees": [
- {
- "quantity": 1,
- "amount": 5,
- "name": "Delivery Fee"
}
], - "deliveryId": "1234567890",
- "shippingMethodPk": 59,
- "shippingMethodCpk": 1000,
- "orderTypeId": "1000-3",
- "historicalEbtInfo": [
- {
- "amount": 100,
- "balance": 400,
- "lastFour": "1234",
- "ebtType": "SNAP",
- "authorizationTime": "2024-05-19T16:00:00Z",
- "isVoided": false
}
]
}
Retrieves order history for the authenticated customer with optional status filtering and pagination.
q | string <= 64 characters Deprecated The query string to filter results by. Limited to 64 characters. Unused. |
ps | integer <int32> [ 1 .. 16 ] Default: 4 The number of results to return on the requested page. Limited to 16 |
pn | integer <int32> >= 1 Default: 1 The page number to return. 1-based index. |
filter | string Default: "IN_PROGRESS" Enum: "IN_PROGRESS" "COMPLETED" "CANCELLED" Filter for orders based on their status. |
count | integer <int32> Total number of orders matching the query criteria |
Array of objects (HistoricalOrder) List of historical orders |
{- "q": "order123",
- "ps": 4,
- "pn": 1,
- "filter": "IN_PROGRESS"
}
{- "count": 6,
- "orders": [
- {
- "id": "1000-60",
- "endTime": "2025-05-15T16:14:54.765-04:00",
- "total": 59.99,
- "scancode": "WB1234567890",
- "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
}, - "source": "Web Cart",
- "status": {
- "stage": 3,
- "label": "Order Complete",
- "stages": [
- "Web Order Received",
- "In Progress",
- "Ready",
- "Complete"
]
}, - "shippingMethodDisplayName": "Pickup",
- "shippingMinLeadTimeMinutes": 5,
- "maxPrepTimeMinutes": 30,
- "reservationStart": "2019-08-24T14:15:22Z",
- "reservationEnd": "2019-08-24T14:15:22Z",
- "shortEditThreshold": "2019-08-24T14:15:22Z",
- "editTimeMinutes": 20,
- "shortEditTimeMinutes": 10,
- "editable": true,
- "lineItems": [
- {
- "quantity": 2,
- "price": 29.99,
- "weightedItemQuantity": 1,
- "item": {
- "id": "INV-1000-12",
- "image": "1000-345",
- "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": {
- "vendorGroup": "RJ",
- "quantityLimit": 20,
- "comboPackAmount": 3
}, - "attributes": [
- {
- "image": "string",
- "name": "Organic"
}
], - "itemGroups": [
- "string"
], - "specialTenders": [
- {
- "id": "WPM-1000-3",
- "name": "EBT SNAP Online",
- "tenderType": 4
}
], - "coupons": [
- {
- "id": "gc:0100037-00004",
- "name": "FIJI: $1.00 off",
- "requirements": null,
- "description": "$1.00 off select Fiji products",
- "category": null,
- "brand": "FIJI",
- "startDate": "2024-04-05",
- "endDate": "2034-04-05",
- "redeemLimit": "1",
- "requirementUpcs": [
- "00632565000012"
], - "rewardUpcs": [ ],
- "targeted": false,
- "featured": false,
- "enabled": false,
- "sortOrder": 1,
- "validBanners": null,
- "validLocations": null,
- "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": {
- "id": "YLMfH9nO9RVY6zpGlSIFlgIrBeMQIh+/skdSdjyKw38=",
- "priceOfModifiers": 4.55,
- "modifiers": [
- {
- "type": "link",
- "name": "string",
- "quantity": 0,
- "descriptor": "string",
- "priceOfModifier": 0
}
]
}
}
], - "giftCards": [
- {
- "amount": 100,
- "recipientName": "John Doe",
- "senderName": "Jane Smith",
- "sendDate": "2024-05-19T16:00:00Z",
- "design": {
- "id": "1000-20",
- "image": "1000-25"
}, - "code": "330",
- "account": "4322000499",
- "message": "Happy Birthday!"
}
], - "specialOrderItems": [
- {
- "name": "Custom Cake",
- "description": "Please write 'Happy Birthday' on the cake"
}
], - "serviceFees": [
- {
- "quantity": 1,
- "amount": 5,
- "name": "Delivery Fee"
}
], - "deliveryId": "1234567890",
- "shippingMethodPk": 59,
- "shippingMethodCpk": 1000,
- "orderTypeId": "1000-3",
- "historicalEbtInfo": [
- {
- "amount": 100,
- "balance": 400,
- "lastFour": "1234",
- "ebtType": "SNAP",
- "authorizationTime": "2024-05-19T16:00:00Z",
- "isVoided": false
}
]
}
]
}
Reopens and prepares an existing order for editing. Returns EBT tender information if applicable. Only available when order editing is enabled.
sc required | string The scan code of the order to edit |
isEbtSnap | boolean Indicates if the tender is EBT SNAP. |
isEbtCash | boolean Indicates if the tender is EBT Cash. |
lastFour | string The last four digits of the EBT card number. |
tenderAmount | number The amount of the tender to be used in this action. |
remainingBalance | number The remaining balance on the EBT card. |
{- "isEbtSnap": true,
- "isEbtCash": true,
- "lastFour": "1234",
- "tenderAmount": 100,
- "remainingBalance": 100
}
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. |
-35 | CODE_OAUTH_ERROR | Returned when third party has rejected a login request. See WebCart logs for exact message returned by third party. |