ECRS WebCart API (5.7)

Download OpenAPI specification:Download

General Overview

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.

Use Cases

There are various use cases for users accessing the WebCart API; however, users typically fall into one of two categories:

  1. An integrator using WebCart's API and creating their own user interface ("head"). Because this route does not require third-party accounts to access the API, it does not depend on API keys, nor does it require the use of Authorization Security checkpoints.

Example: A CATAPULT retailer wishes to create their own app with custom UI specific to their unique branding.

  1. A user authorizing a third-party to perform an operation on their behalf using the WebCart API. This approach requires the CATAPULT retailer to generate an API key for the integrator and set up an Employee / Authorization Security appropriately. More information on how to grant Machine Account access to the API in CATAPULT Web Office is available in the OLM.

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.

Capabilities & Limitations

Capabilities

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:

  • Authenticate Users: Manage user login and logout processes, including support for social logins and temporary one-time passwords (TOTPs).
  • Manage Accounts: Retrieve and update customer account information, handle password resets, and manage account settings.
  • Process Orders: Create, update, cancel, and query orders, ensuring efficient order management.
  • Handle Payments: Accept various payment methods, including EBT and gift cards, and manage payment authorizations.
  • View Inventory: Query item information, handle item recommendations, and manage item lists.
  • Facilitate Customer Interactions: Manage customer notifications, handle customer check-ins, and process customer feedback through forms.
  • Query Store Settings: Access store-specific configurations, themes, and styles.

Limitations

While the WebCart API offers extensive capabilities, there are some limitations to be aware of:

  • Authorization Security: Account access to the API is managed through Authorization Security checkpoints. The WebCart API Access category includes comprehensive checkpoints, allowing you to have full control over which parts of the API users can access.
  • Potential Dependency on API Keys: Third-party and machine account access to the API requires valid API keys, which must be securely managed.
  • Potential Rate Limits: Some of the WebCart API endpoints are rate limited. These rate limits will be noted on the respective endpoints.

Document Revision History


Current Revision: 5.7.158.15

Full Release 5.7.158

5.7.158.15
  • Revision History for this document started with Revision 5.7.158.15. As such, revision history for older versions is not included here.

Employee

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:

  • Retrieve a list of customers by accessing customer records.
  • Allow an associated Employee to associate as a customer and perform operations on behalf of a customer.
  • Retrieve system logs for troubleshooting and auditing purposes.
  • Retrieve the current version number of the WebCart system.
  • Verify employee credentials and allow users to log in as an employee.
  • Replicate data from the CATAPULT database to WebCart.

browseCustomers

query Parameters
cq
string
s
string
ps
integer <int32>
pn
integer <int32>

Responses

Associate as Customer

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.

Request Body schema: application/json

Customer Association Request

required
object (DefaultPk)

Responses

Response Schema: application/json
code
required
integer <int32>
Value: 0
message
required
string
Value: "Success"
Response Schema: application/json
code
required
integer <int32>
Value: -13

Refer to "Error Codes" in API Responses for a complete reference.

message
required
string

Summary of the error.

Request samples

Content type
application/json

Customer Associate Request Request

{
  • "id": "1000-54"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "Success"
}

downloadLogs

Responses

getWebCartVersionNumber

Responses

Machine Account Login

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.

Request Body schema: application/json

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.

Responses

Response Schema: application/json
entity
object
status
integer <int32>
object
closed
boolean
Array of objects (Link) unique
object
object (StatusType)
object
object (MediaType)
allowedMethods
Array of strings unique
object (EntityTag)
length
integer <int32>
location
string <uri>
object
lastModified
string <date-time>
date
string <date-time>
object
Response Schema: application/json
entity
object
status
integer <int32>
object
closed
boolean
Array of objects (Link) unique
object
object (StatusType)
object
object (MediaType)
allowedMethods
Array of strings unique
object (EntityTag)
length
integer <int32>
location
string <uri>
object
lastModified
string <date-time>
date
string <date-time>
object

Request samples

Content type
application/json

Machine Employee Login Request

{
  • "apiKey": "AE1LMA6S012345678901234567890O0I"
}

Response samples

Content type
application/json
{
  • "entity": { },
  • "status": 0,
  • "metadata": {
    • "empty": true,
    • "property1": [
      • { }
      ],
    • "property2": [
      • { }
      ]
    },
  • "closed": true,
  • "links": [
    • {
      • "params": {
        • "property1": "string",
        • "property2": "string"
        },
      • "rels": [
        • "string"
        ],
      • "uriBuilder": { },
      • "rel": "string",
      • "title": "string",
      • "type": "string"
      }
    ],
  • "cookies": {
    • "property1": {
      • "name": "string",
      • "value": "string",
      • "version": 0,
      • "path": "string",
      • "domain": "string",
      • "comment": "string",
      • "maxAge": 0,
      • "expiry": "2019-08-24T14:15:22Z",
      • "secure": true,
      • "httpOnly": true,
      • "sameSite": "NONE"
      },
    • "property2": {
      • "name": "string",
      • "value": "string",
      • "version": 0,
      • "path": "string",
      • "domain": "string",
      • "comment": "string",
      • "maxAge": 0,
      • "expiry": "2019-08-24T14:15:22Z",
      • "secure": true,
      • "httpOnly": true,
      • "sameSite": "NONE"
      }
    },
  • "statusInfo": {
    • "reasonPhrase": "string",
    • "statusCode": 0,
    • "family": "INFORMATIONAL"
    },
  • "stringHeaders": {
    • "empty": true,
    • "property1": [
      • "string"
      ],
    • "property2": [
      • "string"
      ]
    },
  • "mediaType": {
    • "type": "string",
    • "subtype": "string",
    • "parameters": {
      • "property1": "string",
      • "property2": "string"
      },
    • "wildcardSubtype": true,
    • "wildcardType": true
    },
  • "allowedMethods": [
    • "string"
    ],
  • "entityTag": {
    • "value": "string",
    • "weak": true
    },
  • "length": 0,
  • "location": "http://example.com",
  • "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": [
      • { }
      ]
    }
}

passwordLogin_1

Request Body schema: application/json
account
string
password
string
object (DefaultPk)
totp
string
scan
boolean

Responses

Request samples

Content type
application/json
{
  • "account": "string",
  • "password": "string",
  • "accountId": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "totp": "string",
  • "scan": true
}

replicate

Responses

Reset Index

Invalidates the WebCart Index and prepares it to be rebuilt during the next replication cycle. Can only be executed once per hour per employee.

Responses

Push Notifications

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.

Save customer registration token

This method saves the requested registration token to the associated customer.

Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
Example

Customer Registration Token

{
  • "registrationToken": "dQw4w9WgXcQ:APA91bH1f8k9J7l8mN2o3P4Q5r6S7t8U"
}

Delete customer registration token(s)

This method deletes all requested registration tokens from the associated customer.

Request Body schema: application/json

List of customer registration tokens to be deleted.

registrationTokens
required
Array of strings

List of customer registration tokens to be deleted.

Responses

Request samples

Content type
application/json
Example

List with single registration token

{
  • "registrationTokens": [
    • "dQw4w9WgXcQ:APA91bH1f8k9J7l8mN2o3P4Q5r6S7t8U"
    ]
}

Authorization

The endpoints in the Authorization group control login authorization. With these endpoints, you can manage all options related to signing into and out of WebCart.

Use these endpoints to control how users can:

  • Log into and out of WebCart. Choose how users can log in, either by username and password or through social login. An endpoint is also provided to verify credentials and offer a logout option.
  • Interact with Temporary One Time Passwords (TOTPs). Generate, email, check, clear, and confirm TOTPs.
  • Log into a Home Store. A Home Store is the default store a user is directed to upon login.
  • Sign up for a new account, resend verification links, and request account removal.

checkTotp

Responses

clearTotp

Responses

confirmTotp

Request Body schema: application/json
secret
string
code
string

Responses

Request samples

Content type
application/json
{
  • "secret": "string",
  • "code": "string"
}

emailTotp

Request Body schema: application/json
object (DefaultPk)

Responses

Request samples

Content type
application/json
{
  • "id": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    }
}

Federated Login

Log in as a customer using federated authentication. This method of authentication expects a JSON Web Token (JWT) signed by a federated identity provider. This authentication JWT is often referred to as the "ID Token" in the providers' documentation. Currently, we support authentication JWTs from Google, Facebook, and Apple. If A guest user attempts to log in with social media and no existing record is found, A new customer record will be created. If a new customer federated login lacks a first name or last name in the token they will be autofilled with "Valued" and "Customer" respectively. If the email address is not verified, a code of -34 will be returned along with the UUID associated with the verification, and the Verify Registration endpoint should be called to complete the registration process.

path Parameters
provider
required
string
Enum: "google" "facebook" "apple"
Request Body schema: application/json
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.

email
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

Responses

Request samples

Content type
application/json
{
  • "idToken": "xxxxx.yyyyy.zzzzz",
  • "firstName": "John",
  • "lastName": "Smith",
  • "email": "jsmith@email.com",
  • "phone": "1234567890",
  • "scan": false
}

generateTotp

Responses

home

Request Body schema: application/json
object (DefaultPk)

Responses

Request samples

Content type
application/json
{
  • "home": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    }
}

logout

Responses

oauthLogin

path Parameters
provider
required
string
Request Body schema: application/json
redirectUri
string
clientId
string
code
string
state
string
error
string
scan
boolean
Default: false

Indicates whether the logging in customer is in Accelerated Checkout mode

oauth_token
string
oauth_verifier
string

Responses

Request samples

Content type
application/json
{
  • "redirectUri": "string",
  • "clientId": "string",
  • "code": "string",
  • "state": "string",
  • "error": "string",
  • "scan": false,
  • "oauth_token": "string",
  • "oauth_verifier": "string"
}

passwordLogin

Request Body schema: application/json
account
string
password
string
object (DefaultPk)
totp
string
scan
boolean

Responses

Request samples

Content type
application/json
{
  • "account": "string",
  • "password": "string",
  • "accountId": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "totp": "string",
  • "scan": true
}

Request Customer Account Removal

Informs the merchant that the customer would like their account removed both in-store and online

Responses

Sign Up

Handles submission of the signup form for a registering user

Request Body schema: application/json
firstName
required
string <= 25 characters

First name of the customer that is registering

lastName
required
string <= 25 characters

Last name of the customer that is registering

email
required
string <= 50 characters

E-mail address of the customer that is registering

phone
required
string [ 10 .. 14 ] characters

Phone number of the customer that is registering

password
required
string [ 8 .. 255 ] characters

Password of the customer that is registering

recaptcha
string

Recaptcha validation for the customer registration attempt. Required if Recaptcha is enabled on the configuration and Registration is an enabled scenario.

marketing
boolean

Indicates whether the registering customer is opting in to marketing e-mails

receipts
boolean

Indicates whether the registering customer is opting in to e-mailed receipts, and opting out of printed receipts

scan
boolean

Indicates whether the registering customer is in Accelerated Checkout mode

object (Me)

The boarding profile set on the configuration.

Responses

Response Schema: application/json
string

Registering customer account number

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "stringstri",
  • "password": "stringst",
  • "recaptcha": "string",
  • "marketing": true,
  • "receipts": true,
  • "scan": true,
  • "boardingProfile": {
    • "accountNumber": "string",
    • "firstName": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "middleName": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "lastName": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "nickName": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "prefix": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "length": 0,
      • "options": [
        • {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "description": "string"
          }
        ]
      },
    • "suffix": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "length": 0,
      • "options": [
        • {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "description": "string"
          }
        ]
      },
    • "company": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "title": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "suppressReceipt": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": true,
      • "length": 0,
      • "options": [
        • {
          • "id": true,
          • "description": "string"
          }
        ]
      },
    • "birthDate": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "2019-08-24",
      • "length": 0,
      • "options": [
        • {
          • "id": "2019-08-24",
          • "description": "string"
          }
        ]
      },
    • "pf1": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "length": 0,
      • "options": [
        • {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "description": "string"
          }
        ]
      },
    • "pf2": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "length": 0,
      • "options": [
        • {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "description": "string"
          }
        ]
      },
    • "pf3": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "length": 0,
      • "options": [
        • {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "description": "string"
          }
        ]
      },
    • "pf4": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "length": 0,
      • "options": [
        • {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "description": "string"
          }
        ]
      },
    • "pf5": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "pf6": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "pf7": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "pf8": {
      • "name": "string",
      • "option": "DISABLED",
      • "value": "string",
      • "length": 0,
      • "options": [
        • {
          • "id": "string",
          • "description": "string"
          }
        ]
      },
    • "phones": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "phone": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": "string",
          • "length": 0,
          • "options": [
            • {
              • "id": "string",
              • "description": "string"
              }
            ]
          },
        • "shipToPhone": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "shipToFax": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "billToPhone": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "billToFax": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "emails": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "email": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": "string",
          • "length": 0,
          • "options": [
            • {
              • "id": "string",
              • "description": "string"
              }
            ]
          },
        • "billTo": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "shipTo": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "marketing": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "ereceipt": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "eReceipt": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          }
        }
      ],
    • "addresses": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "street1": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": "string",
          • "length": 0,
          • "options": [
            • {
              • "id": "string",
              • "description": "string"
              }
            ]
          },
        • "street2": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": "string",
          • "length": 0,
          • "options": [
            • {
              • "id": "string",
              • "description": "string"
              }
            ]
          },
        • "city": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": "string",
          • "length": 0,
          • "options": [
            • {
              • "id": "string",
              • "description": "string"
              }
            ]
          },
        • "state": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": "string",
          • "length": 0,
          • "options": [
            • {
              • "id": "string",
              • "description": "string"
              }
            ]
          },
        • "postal": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": "string",
          • "length": 0,
          • "options": [
            • {
              • "id": "string",
              • "description": "string"
              }
            ]
          },
        • "country": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": "string",
          • "length": 0,
          • "options": [
            • {
              • "id": "string",
              • "description": "string"
              }
            ]
          },
        • "shipTo": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "billTo": {
          • "name": "string",
          • "option": "DISABLED",
          • "value": true,
          • "length": 0,
          • "options": [
            • {
              • "id": true,
              • "description": "string"
              }
            ]
          },
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ]
    }
}

Response samples

Content type
application/json
"string"

verify

Request Body schema: application/json
uuid
string

Responses

Request samples

Content type
application/json
{
  • "uuid": "string"
}

Password Reset

The endpoints in this group control password reset options. Use these endpoints to:

  • Allow users to request a password reset.
  • Select a method of receiving their password reset authorization code. Users can choose to receive the code via email, text, or call.
  • Send and verify the secure code before allowing a password update.
  • Allow a user to choose a new password, enforce minimum password requirements, and update the customer account to include the new password.

Call Script

Method called by third party to get script to read over the phone to a customer

path Parameters
code
required
string
Example: 123456

Code that user is meant to enter for password reset

Responses

Response samples

Content type
application/xml
<Response>
    <Say loop="3">Your verification code is 1. 2. 3. 4. 5. 6.</Say>
</Response>

forgot

Request Body schema: application/json
contact
string
method
string
Enum: "EMAIL" "TEXT" "CALL"

Responses

Request samples

Content type
application/json
{
  • "contact": "string",
  • "method": "EMAIL"
}

token

path Parameters
token
required
string

Responses

recover

path Parameters
token
required
string
Request Body schema: application/json
password
string

Responses

Request samples

Content type
application/json
{
  • "password": "string"
}

verify_1

Request Body schema: application/json
key
string
code
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "code": "string"
}

verifySelectedAccount

path Parameters
account
required
string
Request Body schema: application/json
key
string
code
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "code": "string"
}

Store

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:

  • Returning a blank page, custom source details, header scripts, the Web App Manifest (for PWA installation), store detail objects, style.css, and .well-known files.
  • Submitting a Contact Us form.
  • Returning the store’s configuration, including site URL, substitution policies, accessibility disclaimers, and features like cart and list functionalities.

Blank Page

Always returns a success response for the purposes of redirecting to a blank page as long as the frontend can communicate with the backend.

Responses

Configuration

Returns the store's configuration. This is mostly controlled by the Web Profile set on a Store in WebOffice.

Responses

Response Schema: application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
object (StoreDto)
siteUrl
string

Site URL for this store's WebCart

object (WebAppManifestDto)
object (MenuDto)
allowSubstitutions
boolean

Indicates whether the allow substitution checkbox should be displayed on each line item in the cart

substitutionPolicy
string

Store's substitution policy

accessibilityDisclaimer
string

Accessibility disclaimer if set by the merchant. Set by Advanced Setting com.ecrsoft.tserver.webcart.accessibilityDisclaimer

instructionsPerItem
boolean

Indicates whether the shopper should be able to add per-item notes to an order

instructionsPerTransaction
boolean

Indicates whether the shopper should be able to add per-transaction notes to an order

innerSearch
boolean

Indicates whether the shopper should be able to do additional searches from within the primary search. Controlled by Advanced Setting com.ecrsoft.tserver.webcart.innerSearch

cartEnabled
boolean

Indicates whether the cart is enabled in this web store. If this is set to false, shoppers should not be able to add items to their cart nor checkout.

listEnabled
boolean

Indicates whether List functionality should be available to logged-in shoppers

itemSearchEnabled
boolean

Indicates whether Item Search should be available on this web store. If this is set to false, there should be no search bar and shoppers should not be able to browse.

multistore
boolean

Indicates whether this is a multi-store environment. If set to true, the shopper should be able to choose the store they are shopping at.

allowCustomerAdd
boolean

Indicates whether guest shoppers should be allowed to register for new accounts.

requireCustomerToCheckout
boolean

Indicates whether a logged in customer must be associated for checkout to succeed.

allowCouponClipping
boolean

Indicates whether coupon clipping is enabled for this web store

billingPhoneNumberRequired
boolean

Indicates whether the Billing Phone Number is required to be collected from the shopper

pastOrdersEnabled
boolean

Indicates whether Past Orders are enabled. If set to true the shopper should be able to view their historically placed orders.

pastItemsEnabled
boolean

Indicates whether Past Items are enabled. If set to true the shopper should be able to view items that they have historically ordered.

rewardsEnabled
boolean

Indicates whether Rewards are enabled. If set to true the shopper should be able to view their existing reward progress.

walletEnabled
boolean

Indicates whether the Wallet is enabled. If set to true a logged in shopper should be able to associate tokenized cards to their account.

shiftFourEnabled
boolean

Indicates whether this web store is using Shift4 as a payment provider.

socialNetworksEnabled
boolean

Indicates whether Social Networks are enabled. If set to true the shopper should be able to navigate to a merchant's social links on the web store.

customerCardEnabled
boolean

Indicates whether Customer Card is enabled. If set to true the shopper should be able to view / present a Customer Card that displays a barcode of their account number, for customer association purposes.

allowEditOrder
boolean

Indicates whether the shopper should be allowed to edit their order after they have placed it.

pwaEnabled
boolean

Indicates whether the Progressive Web App (PWA) is enabled. If this is set to true then the client should request the app to be installed.

loyaltyName
string

The name of the default Loyalty program if it exists.

loyaltyDecimal
boolean

Indicates whether the decimal should be displayed for points on the default Loyalty program.

allowGiftCardCheck
boolean

Indicates whether shoppers should be able to check gift card balances

allowEGiftCards
boolean

Indicates whether E-Gift Cards are enabled for this web store. If set to true, E-Gift Cards should be purchasable on the site.

object (GiftCardProfileDto)

The E-Gift Card profile on the Transaction Security Profile.

maxLists
integer <int32> [ 1 .. 99 ]
Default: 10

The maximum number of lists a shopper should be able to configure.

maxListItems
integer <int32> [ 1 .. 499 ]
Default: 100

The maximum number of items a shopper should be able to add to an individual list.

defaultCountry
integer <int32>

Indicates the ID for the default country that should be selected in checkout.

defaultState
integer <int32>

Indicates the ID for the default State / Province that should be selected in checkout.

mapPinAddress
boolean

Indicates whether checkout displays option to select delivery location on Map

sellOutOfStock
boolean
hidePriceUntilLogin
boolean
displayQuantity
boolean
displayAvailability
boolean
limitedAvailabilityQuantity
number
limitedAvailabilityTerm
string
inStockTerm
string
outOfStockTerm
string
onOrderTerm
string
allowSpecialOrder
boolean
deliveryNotificationsDefaultToOff
boolean
preventOfflineCheckout
boolean
cmsEnabled
boolean
googlePayEnabled
boolean

Indicates whether Google Pay is enabled.

storeBillingName
string

The name of the store to show to shoppers for billing purposes

applePayEnabled
boolean

Indicates whether Apple Pay is enabled.

applePayMerchantIdentifier
string

Apple Pay Merchant Identifier

showGoogleLogin
boolean

Indicates whether Google Login should be shown on the log in page

payNowEnabled
boolean
lineBustEnabled
boolean
payNowTotalLimit
number
payNowItemCountLimit
integer <int32>
recommendationsEnabled
boolean
homepageRecommendationsEnabled
boolean
couponRecommendationsEnabled
boolean
onSaleRecommendationsEnabled
boolean
scanAndGoEnabled
boolean
scanTimeout
integer <int32>
webCartPriceLevel
integer <int32>
object (DefaultPk)
i18nEnabled
boolean
i18nLanguage
Array of strings
cdn
string
googleMapsApiKey
string
googleMapsStrictAddressCheck
boolean
googleAnalyticsId
string
facebookPixelId
string
signifydKey
string
redPepperClientId
integer <int32>
includeCircularLinkInMenu
boolean
circularLinkText
string
orderTypesEnabled
boolean
orderTypesMessage
string
Array of objects (SocialProvider)
Array of objects (PaymentProvider)
Array of objects (RowDto)
Array of objects (CountryDto)
Array of objects (StateDto)
Array of objects (AdDto)
Array of objects (CustomSourceDto)
Array of objects (ThirdPartyServiceProfileDto)
Array of objects (OrderTypeDto)
object
Array of objects (CustomerGroupCategoryDto)
Array of objects (BeaconDto)
googleTagManagerId
string
youMayAlsoLikeLabel
string
frequentlyBoughtItemLabel
string
goesWellWithLabel
string
recommendedSubstitutesLabel
string
cortexKey
string
cardknoxEbtIfieldsKey
string
ebtBalanceTimeout
integer <int32>
whitelistEbt
boolean
showAllSpecialTenderBadges
boolean
Default: false

Controls whether items should display their eligibility on the item card for all tenders, instead of the default behavior of displaying only EBT eligibility. Controlled by Advanced Setting com.ecrsoft.tserver.webcart.itembadges.showAllSpecialTenders

allowAccountDeletion
boolean
Default: false

Controls whether shoppers see the option to trigger an account removal request Controlled by Advanced Setting com.ecrsoft.tserver.webcart.account.allowAccountDeletion

Response samples

Content type
application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
{
  • "store": {
    • "id": "1000-10",
    • "name": "One With Nature",
    • "number": "ABC1",
    • "image": "1000-11",
    • "latitude": 36.217646,
    • "longitude": -81.684149,
    • "webStore": true,
    • "addresses": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "street1": "string",
        • "street2": "string",
        • "city": "string",
        • "state": "string",
        • "postal": "string",
        • "country": "string",
        • "shipTo": true,
        • "billTo": true,
        • "location": true,
        • "webcart": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "emails": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "email": "string",
        • "billTo": true,
        • "shipTo": true,
        • "marketing": true,
        • "location": true,
        • "webcart": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "ereceipt": true
        }
      ],
    • "phones": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "phone": "string",
        • "billToPhone": true,
        • "billToFax": true,
        • "shipToPhone": true,
        • "shipToFax": true,
        • "fax": true,
        • "locationPhone": true,
        • "locationFax": true,
        • "webcartPhone": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "faxes": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "phone": "string",
        • "billToPhone": true,
        • "billToFax": true,
        • "shipToPhone": true,
        • "shipToFax": true,
        • "fax": true,
        • "locationPhone": true,
        • "locationFax": true,
        • "webcartPhone": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ]
    },
  • "webAppManifest": {},
  • "mainMenu": {
    • "id": "1000-10",
    • "name": "WebCart Upper Menu",
    • "children": [
      • { }
      ],
    • "orderTypeImage": "1000-2"
    },
  • "allowSubstitutions": true,
  • "substitutionPolicy": "Unless you tell us differently using the \\\"Add Instructions\\\" feature, we won't substitute items you ordered with other items if the items you ordered are not available.",
  • "accessibilityDisclaimer": "string",
  • "instructionsPerItem": true,
  • "instructionsPerTransaction": true,
  • "innerSearch": true,
  • "cartEnabled": true,
  • "listEnabled": true,
  • "itemSearchEnabled": true,
  • "multistore": true,
  • "allowCustomerAdd": true,
  • "requireCustomerToCheckout": true,
  • "allowCouponClipping": true,
  • "billingPhoneNumberRequired": true,
  • "pastOrdersEnabled": true,
  • "pastItemsEnabled": true,
  • "rewardsEnabled": true,
  • "walletEnabled": true,
  • "shiftFourEnabled": true,
  • "socialNetworksEnabled": true,
  • "customerCardEnabled": true,
  • "allowEditOrder": true,
  • "pwaEnabled": true,
  • "loyaltyName": "Healthy Rewards",
  • "loyaltyDecimal": true,
  • "allowGiftCardCheck": true,
  • "allowEGiftCards": true,
  • "giftCardProfile": {
    • "policy": "string",
    • "minCardValue": 0,
    • "maxCardValue": 0,
    • "designs": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "image": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "egiftCardCustomAmount": true,
    • "egiftCardAmounts": [
      • 0
      ]
    },
  • "maxLists": 10,
  • "maxListItems": 100,
  • "defaultCountry": 15,
  • "defaultState": 34,
  • "mapPinAddress": true,
  • "sellOutOfStock": true,
  • "hidePriceUntilLogin": true,
  • "displayQuantity": true,
  • "displayAvailability": true,
  • "limitedAvailabilityQuantity": 0,
  • "limitedAvailabilityTerm": "string",
  • "inStockTerm": "string",
  • "outOfStockTerm": "string",
  • "onOrderTerm": "string",
  • "allowSpecialOrder": true,
  • "deliveryNotificationsDefaultToOff": true,
  • "preventOfflineCheckout": true,
  • "cmsEnabled": true,
  • "googlePayEnabled": true,
  • "storeBillingName": "string",
  • "applePayEnabled": true,
  • "applePayMerchantIdentifier": "string",
  • "showGoogleLogin": true,
  • "payNowEnabled": true,
  • "lineBustEnabled": true,
  • "payNowTotalLimit": 0,
  • "payNowItemCountLimit": 0,
  • "recommendationsEnabled": true,
  • "homepageRecommendationsEnabled": true,
  • "couponRecommendationsEnabled": true,
  • "onSaleRecommendationsEnabled": true,
  • "scanAndGoEnabled": true,
  • "scanTimeout": 0,
  • "webCartPriceLevel": 0,
  • "placeholderImage": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "i18nEnabled": true,
  • "i18nLanguage": [
    • "string"
    ],
  • "cdn": "string",
  • "googleMapsApiKey": "string",
  • "googleMapsStrictAddressCheck": true,
  • "googleAnalyticsId": "string",
  • "facebookPixelId": "string",
  • "signifydKey": "string",
  • "redPepperClientId": 0,
  • "includeCircularLinkInMenu": true,
  • "circularLinkText": "string",
  • "orderTypesEnabled": true,
  • "orderTypesMessage": "string",
  • "socialProviders": [
    • {
      • "provider": "string",
      • "userKey": "string",
      • "authId": "string",
      • "auth": true
      }
    ],
  • "paymentProviders": [
    • {
      • "provider": "string"
      }
    ],
  • "rows": [
    • {
      • "id": {
        • "prefix": "string",
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "urlString": "string",
        • "cpk": 0,
        • "pk": 0
        },
      • "name": "string"
      }
    ],
  • "countries": [
    • {
      • "id": 0,
      • "description": "string",
      • "abbrv": "string"
      }
    ],
  • "states": [
    • {
      • "id": 0,
      • "country": 0,
      • "description": "string",
      • "abbrv": "string"
      }
    ],
  • "ads": [
    • {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "order": 0,
      • "label": "string",
      • "type": 0,
      • "link": "string",
      • "image": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        }
      }
    ],
  • "customSources": [
    • {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "type": 0,
      • "label": "string",
      • "content": "string"
      }
    ],
  • "thirdPartyServiceProfiles": [
    • {
      • "id": 0,
      • "name": "string",
      • "thirdPartyServiceProvider": {
        • "id": 0,
        • "name": "string",
        • "type": 0
        }
      }
    ],
  • "orderTypes": [
    • {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "urlSlug": "string",
      • "menu": {
        • "id": "1000-10",
        • "name": "WebCart Upper Menu",
        • "children": [
          • { }
          ],
        • "orderTypeImage": "1000-2"
        },
      • "ads": [
        • {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "order": 0,
          • "label": "string",
          • "type": 0,
          • "link": "string",
          • "image": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            }
          }
        ],
      • "giftCard": true,
      • "listOnly": true,
      • "hidden": true,
      • "autoFinalize": true,
      • "image": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "urlEncodedSlug": "string"
      }
    ],
  • "recaptchaScenarioStatuses": {
    • "property1": true,
    • "property2": true
    },
  • "customerGroups": [
    • {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "canEdit": true,
      • "mutuallyExclusive": true,
      • "household": true,
      • "groups": [
        • {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "name": "string"
          }
        ]
      }
    ],
  • "beacons": [
    • {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "uuid": "string",
      • "url": "string"
      }
    ],
  • "googleTagManagerId": "string",
  • "youMayAlsoLikeLabel": "string",
  • "frequentlyBoughtItemLabel": "string",
  • "goesWellWithLabel": "string",
  • "recommendedSubstitutesLabel": "string",
  • "cortexKey": "string",
  • "cardknoxEbtIfieldsKey": "string",
  • "ebtBalanceTimeout": 0,
  • "whitelistEbt": true,
  • "showAllSpecialTenderBadges": false,
  • "allowAccountDeletion": false
}

Contact

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.

Request Body schema: application/json
name
string
email
string
subject
string
message
string
recaptcha
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "string",
  • "subject": "string",
  • "message": "string",
  • "recaptcha": "string"
}

Custom Source by ID

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.

path Parameters
id
required
string

Responses

Response Schema: application/json
object (DefaultPk)
type
integer <int32>
label
string
content
string

Response samples

Content type
application/json
{
  • "id": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "type": 0,
  • "label": "string",
  • "content": "string"
}

Header

Returns scripts that should be injected in the index.html head tag based on the store's configuration.

Responses

Response Schema: application/javascript
object (EntityTag)
content
string

index.html

Returns the generated index.html file based on the store's configuration.

Responses

Response Schema: text/html
object (EntityTag)
content
string

Manifest

Returns the Web App Manifest for the purposes of installing a Progressive Web App (PWA).

Responses

Response Schema: application/json
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.

Response samples

Content type
application/json
{}

Stores

Returns detail objects for the stores set on the WebCart configuration.

Responses

Response Schema: application/json
Array
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

Response samples

Content type
application/json
[
  • {
    • "id": "1000-10",
    • "name": "One With Nature",
    • "number": "ABC1",
    • "image": "1000-11",
    • "latitude": 36.217646,
    • "longitude": -81.684149,
    • "webStore": true,
    • "addresses": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "street1": "string",
        • "street2": "string",
        • "city": "string",
        • "state": "string",
        • "postal": "string",
        • "country": "string",
        • "shipTo": true,
        • "billTo": true,
        • "location": true,
        • "webcart": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "emails": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "email": "string",
        • "billTo": true,
        • "shipTo": true,
        • "marketing": true,
        • "location": true,
        • "webcart": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "ereceipt": true
        }
      ],
    • "phones": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "phone": "string",
        • "billToPhone": true,
        • "billToFax": true,
        • "shipToPhone": true,
        • "shipToFax": true,
        • "fax": true,
        • "locationPhone": true,
        • "locationFax": true,
        • "webcartPhone": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "faxes": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "phone": "string",
        • "billToPhone": true,
        • "billToFax": true,
        • "shipToPhone": true,
        • "shipToFax": true,
        • "fax": true,
        • "locationPhone": true,
        • "locationFax": true,
        • "webcartPhone": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ]
    }
]

style.css

Returns the generated style.css based on the store's configuration. This should define the theme for the site.

Responses

Response Schema: text/css
object (EntityTag)
content
string

.well-known

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.

Responses

Response Headers
Content-Disposition
any
Response Schema: application/octet-stream
Schema not provided

Style

The endpoints in this group can control the overall theme of your site. They generate a CSS style sheet using all Custom Sources in the Web Profile that are classified as MAIN_SCSS_HEADER or MAIN_SCSS_FOOTER.

These endpoints are primarily intended to style WebCart according to the merchant’s Custom Sources. Integrators using WebCart APIs to operate WebCart behind the scenes while maintaining their own UI may find these options limited. However, integrators developing their own applications can use these style endpoints to update styles dynamically without needing to deploy a new app version.

getTheme

Responses

theme

Responses

Account

The endpoints in this group allow shoppers to retrieve and change account data on their WebCart profile. This includes:

  • The ability to set a default email, add or delete an EBT Token or Credit Card Token, retrieve relevant coupons and rewards, and retrieve and update group membership in customer programs.
  • The ability to retrieve and update customer information such as name, company, Power Fields, and contact information.
  • The ability to receive claims, reset passwords, link social accounts, set notification preferences, and access Wallet information.

addDefaultEmail

Request Body schema: application/json
email
string

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

addEbtToken

Request Body schema: application/json
object (WebAuthCard)
recaptcha
string

Responses

Request samples

Content type
application/json
{
  • "card": {
    • "id": "string",
    • "cvv": "string",
    • "email": "string",
    • "token": "string",
    • "company": "string",
    • "bin": "string",
    • "finalDigits": "string",
    • "billingStreet1": "string",
    • "billingStreet2": "string",
    • "billingCity": "string",
    • "shippingStreet1": "string",
    • "shippingStreet2": "string",
    • "shippingCity": "string",
    • "shippingState": "string",
    • "billingCountry": "string",
    • "shippingCountry": "string",
    • "billingPhone": "string",
    • "billingPostal": "string",
    • "shippingPostal": "string",
    • "billingState": "string",
    • "shippingPhone": "string",
    • "lastName": "string",
    • "firstName": "string",
    • "expiry": "string",
    • "nameOnCard": "string",
    • "type": "string"
    },
  • "recaptcha": "string"
}

addToken

Request Body schema: application/json
property name*
additional property
string

Responses

Request samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

claims

Responses

coupons_1

Responses

deleteToken

Request Body schema: application/json
cardId
string
defaultToken
boolean
brand
string
finalDigits
string
expiration
string
object (DefaultPk)
tenderType
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "cardId": "string",
  • "defaultToken": true,
  • "brand": "string",
  • "finalDigits": "string",
  • "expiration": "string",
  • "authFk": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "tenderType": 0
}

groups

Responses

groups_1

Request Body schema: application/json
Array
object (DefaultPk)
expiration
string <date-time>
action
string

Responses

Request samples

Content type
application/json
[
  • {
    • "id": {
      • "cpk": 0,
      • "pk": 0,
      • "bigPk": 0,
      • "urlString": "string"
      },
    • "expiration": "2019-08-24T14:15:22Z",
    • "action": "string"
    }
]

me

Responses

updateMe

Request Body schema: application/json
accountNumber
string
object (FieldDtoString)
object (FieldDtoString)
object (FieldDtoString)
object (FieldDtoString)
object (FieldDtoDefaultPk)
object (FieldDtoDefaultPk)
object (FieldDtoString)
object (FieldDtoString)
object (FieldDtoBoolean)
object (FieldDtoLocalDate)
object (FieldDtoDefaultPk)
object (FieldDtoDefaultPk)
object (FieldDtoDefaultPk)
object (FieldDtoDefaultPk)
object (FieldDtoString)
object (FieldDtoString)
object (FieldDtoString)
object (FieldDtoString)
Array of objects (MePhoneDto)
Array of objects (MeEmailDto)
Array of objects (MeAddressDto)

Responses

Request samples

Content type
application/json
{
  • "accountNumber": "string",
  • "firstName": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "middleName": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "lastName": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "nickName": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "prefix": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": {
      • "cpk": 0,
      • "pk": 0,
      • "bigPk": 0,
      • "urlString": "string"
      },
    • "length": 0,
    • "options": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "description": "string"
        }
      ]
    },
  • "suffix": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": {
      • "cpk": 0,
      • "pk": 0,
      • "bigPk": 0,
      • "urlString": "string"
      },
    • "length": 0,
    • "options": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "description": "string"
        }
      ]
    },
  • "company": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "title": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "suppressReceipt": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": true,
    • "length": 0,
    • "options": [
      • {
        • "id": true,
        • "description": "string"
        }
      ]
    },
  • "birthDate": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "2019-08-24",
    • "length": 0,
    • "options": [
      • {
        • "id": "2019-08-24",
        • "description": "string"
        }
      ]
    },
  • "pf1": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": {
      • "cpk": 0,
      • "pk": 0,
      • "bigPk": 0,
      • "urlString": "string"
      },
    • "length": 0,
    • "options": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "description": "string"
        }
      ]
    },
  • "pf2": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": {
      • "cpk": 0,
      • "pk": 0,
      • "bigPk": 0,
      • "urlString": "string"
      },
    • "length": 0,
    • "options": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "description": "string"
        }
      ]
    },
  • "pf3": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": {
      • "cpk": 0,
      • "pk": 0,
      • "bigPk": 0,
      • "urlString": "string"
      },
    • "length": 0,
    • "options": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "description": "string"
        }
      ]
    },
  • "pf4": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": {
      • "cpk": 0,
      • "pk": 0,
      • "bigPk": 0,
      • "urlString": "string"
      },
    • "length": 0,
    • "options": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "description": "string"
        }
      ]
    },
  • "pf5": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "pf6": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "pf7": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "pf8": {
    • "name": "string",
    • "option": "DISABLED",
    • "value": "string",
    • "length": 0,
    • "options": [
      • {
        • "id": "string",
        • "description": "string"
        }
      ]
    },
  • "phones": [
    • {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "phone": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": "string",
        • "length": 0,
        • "options": [
          • {
            • "id": "string",
            • "description": "string"
            }
          ]
        },
      • "shipToPhone": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "shipToFax": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "billToPhone": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "billToFax": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "did": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        }
      }
    ],
  • "emails": [
    • {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "email": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": "string",
        • "length": 0,
        • "options": [
          • {
            • "id": "string",
            • "description": "string"
            }
          ]
        },
      • "billTo": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "shipTo": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "marketing": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "did": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "ereceipt": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "eReceipt": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        }
      }
    ],
  • "addresses": [
    • {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "street1": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": "string",
        • "length": 0,
        • "options": [
          • {
            • "id": "string",
            • "description": "string"
            }
          ]
        },
      • "street2": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": "string",
        • "length": 0,
        • "options": [
          • {
            • "id": "string",
            • "description": "string"
            }
          ]
        },
      • "city": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": "string",
        • "length": 0,
        • "options": [
          • {
            • "id": "string",
            • "description": "string"
            }
          ]
        },
      • "state": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": "string",
        • "length": 0,
        • "options": [
          • {
            • "id": "string",
            • "description": "string"
            }
          ]
        },
      • "postal": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": "string",
        • "length": 0,
        • "options": [
          • {
            • "id": "string",
            • "description": "string"
            }
          ]
        },
      • "country": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": "string",
        • "length": 0,
        • "options": [
          • {
            • "id": "string",
            • "description": "string"
            }
          ]
        },
      • "shipTo": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "billTo": {
        • "name": "string",
        • "option": "DISABLED",
        • "value": true,
        • "length": 0,
        • "options": [
          • {
            • "id": true,
            • "description": "string"
            }
          ]
        },
      • "did": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        }
      }
    ]
}

password

Request Body schema: application/json
oldPassword
string
newPassword
string

Responses

Request samples

Content type
application/json
{
  • "oldPassword": "string",
  • "newPassword": "string"
}

rewards

Responses

social

Responses

unsubscribe

query Parameters
cus
string
acc
string

Responses

updateAutoReload

Request Body schema: application/json
enabled
boolean
amount
number

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "amount": 0
}

updateDefaultToken

Request Body schema: application/json
cardId
string
defaultToken
boolean
brand
string
finalDigits
string
expiration
string
object (DefaultPk)
tenderType
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "cardId": "string",
  • "defaultToken": true,
  • "brand": "string",
  • "finalDigits": "string",
  • "expiration": "string",
  • "authFk": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "tenderType": 0
}

wallet

Responses

Account Items

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.

orders

Request Body schema: application/json
q
string
ps
integer <int32>
pn
integer <int32>
hs
integer <int32>
s
string

Responses

Request samples

Content type
application/json
{
  • "q": "string",
  • "ps": 0,
  • "pn": 0,
  • "hs": 0,
  • "s": "string"
}

Browse

These endpoints facilitate the exploration and retrieval of inventory based on search parameters. They allow shoppers to:

  • Search for items by keyword.
  • Customize display results with sort and filter options.
  • Retrieve full search term suggestions. Endpoints in this group make it easier for a shopper to find the items that they are searching for quickly and efficiently.

Browse Items

Retrieves a list of item summaries matching the described search parameters.

query Parameters
search
required
string

The browse request to execute

Request Body schema: application/json
Array of objects (TypedDefaultPk)

The group path in which to search, consists of the ids of departments, promotional sale worksheets, goes well with groups, substitution groups, brands, item groups, and/or menu groups.

q
required
string <= 64 characters

The query string that will be used to search for results

iq
Array of strings[ items [ 1 .. 64 ] characters ]

Minor text modifiers that are performed within (as an AND) with the main query

s
string
Enum: "NAZ" "NZA" "PLH" "PHL" "POP"

The sort to use when collecting search results. In addition to the default(relevance) sort, indicated by the absence of this parameter the following are available. NAZ - Alphabetical ascending NZA - Albhabetical descending PLH - Price, low to high PHL - Price, high to low POP - Popularity, high to low

ps
integer <int32> <= 128
Default: 8

The number of results per page of the request

pn
integer <int32> >= 1
Default: 1

The 1-based index of the requested page

object

A map from the facet category id to the requested facet value ids

Responses

Response Schema: application/json
code
integer <int32>
message
string
redirect
string
data
object
Array of objects (Alert)
object
object (BrowseRequest)

Describes the search parameters for a set of entities in a WebCart

searchTime
integer <int64>

The time required to execute the browse in ms.

totalCount
integer <int64>

The total number of records that would match the request if pagination was not performed.

Array of objects (GroupDto)

The group path followed to the current results, commonly used to generate a breadcrumb trail

Array of objects (GroupDto)

Any children of the current group path

Array of objects (FacetCategory)

The facet categories which are relevant to the current search so that the current search results can be filtered

items
Array of objects

The items returned by the search result

alternates
Array of strings

Any alternate searches that should be suggested to the user.

Request samples

Content type
application/json
{
  • "g": "MGP-1000-20",
  • "q": "App",
  • "iq": [
    • "Red"
    ],
  • "s": "NAZ",
  • "ps": 16,
  • "pn": 2,
  • "facets": {
    • "property1": [
      • "string"
      ],
    • "property2": [
      • "string"
      ]
    }
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string",
  • "redirect": "string",
  • "data": { },
  • "alerts": [
    • {
      • "code": "string",
      • "values": {
        • "property1": { },
        • "property2": { }
        }
      }
    ],
  • "errors": {
    • "property1": [
      • "string"
      ],
    • "property2": [
      • "string"
      ]
    },
  • "request": {
    • "g": "MGP-1000-20",
    • "q": "App",
    • "iq": [
      • "Red"
      ],
    • "s": "NAZ",
    • "ps": 16,
    • "pn": 2,
    • "facets": {
      • "property1": [
        • "string"
        ],
      • "property2": [
        • "string"
        ]
      }
    },
  • "searchTime": 87,
  • "totalCount": 1048,
  • "groupPath": [
    • {
      • "id": "MGP-1000-20",
      • "name": "Test Menu Group",
      • "image": null
      }
    ],
  • "groupChildren": [
    • {
      • "id": "CGP-1000-34",
      • "name": "Test Item Group",
      • "image": null
      },
    • {
      • "id": "CGP-1000-35",
      • "name": "Test Item Group 2",
      • "image": null
      }
    ],
  • "facets": [
    • {
      • "key": "Brand",
      • "name": "Brand",
      • "count": 1,
      • "values": [
        • {
          • "key": "Maria's",
          • "name": "Marias",
          • "count": 2,
          • "selected": false
          }
        ]
      }
    ],
  • "items": [
    • { }
    ],
  • "alternates": [
    • "Api",
    • "Apple"
    ]
}

Browse Facet Category

Entry point for retrieving all facet values for a given category within a search.

query Parameters
search
required
string

The facet category request to execute

Request Body schema: application/json
Array of objects (TypedDefaultPk)

The group path in which to search, consists of the ids of departments, promotional sale worksheets, goes well with groups, substitution groups, brands, item groups, and

q
required
string <= 64 characters

The query string that will be used to search for results

iq
Array of strings [ 1 .. 64 ] characters

Minor text modifiers that are performed within (as an AND) with the main query

fc
string

The key of the facet category to find all values for

object

A map from the facet category id to the requested facet value ids

Responses

Request samples

Content type
application/json
{
  • "g": [ ],
  • "q": "App",
  • "iq": [ ],
  • "fc": "Brand",
  • "facets": { }
}

Browse Suggestions

Performs a quick search for full search terms related to entered text.

query Parameters
q
required
string

The partial search text to make a suggestion for

Responses

Recommendations

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:

  • Top Picks for You
  • Similar or Related Items
  • More to Consider
  • Deals for You
  • Digital Coupons for You

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.

getRecommendations

path Parameters
id
required
string

Responses

Image

These endpoints facilitate queries for images from the CATAPULT database. They allow retrieval of the following images at a customizable size:

  • Code-128 Barcode: This can be used to generate barcodes for customer cards, transaction barcodes, and e-Gift Cards.
  • Favicon: The favicon is the small image that will be displayed in the browser tab next to your site's page title.
  • Item Images: These are the images stored in your CATAPULT database (set in Web Office) which are associated with unique items.
  • PWA Asset: This is a favicon used on a Progressive Web App (PWA). This is only relevant for PWAs, and not native apps.

Maintaining images in Web Office makes it easier to have consistency throughout your in-person and online presence.

Generate Code-128 barcode

Generates a code-128 barcode based on data height/width parameters

path Parameters
data
required
string

The data that should be encoded in the code-128 barcode

query Parameters
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

Responses

favicon

query Parameters
h
string
w
string

Responses

Get Image

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.

path Parameters
id
required
string

The id of the image to retrieve

query Parameters
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

Responses

Get PWA Asset

Generates a Progressive Web App (PWA) asset using the store's favicon.

query Parameters
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

Responses

Items

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.

itemModifiers

path Parameters
id
required
string

Responses

createVariation

path Parameters
id
required
string
Request Body schema: application/json
Array of objects (ItemModifierAnswer)

Responses

Request samples

Content type
application/json
{
  • "options": [
    • {
      • "id": "string",
      • "prohibitAlterations": true,
      • "showDefault": true,
      • "quantityId": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "quantity": 0
      }
    ]
}

detail_1

query Parameters
scanCode
string

Responses

itemByScanCode

query Parameters
sc
string
codeType
string

Responses

itemDetail

path Parameters
id
required
string

Responses

modifyItem

path Parameters
id
required
string
Request Body schema: application/json
variation
string

Responses

Request samples

Content type
application/json
{
  • "variation": "string"
}

summaries

query Parameters
scanCodes
string

Responses

Lists

The endpoints in this group facilitate queries for, and changes to, lists. Use the endpoints in this group to control:

  • List Creation
  • List Management (includes viewing, modifying, and syncing lists)
  • List Deletion

getList

path Parameters
id
required
string

Responses

deleteList

path Parameters
id
required
string

Responses

lists

Responses

syncLists

Request Body schema: application/json
object (DefaultPk)
name
string
type
string
Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER"
Array of objects (ListItemBasic)
count
number

Responses

Request samples

Content type
application/json
{
  • "id": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "name": "string",
  • "type": "CUSTOM",
  • "items": [
    • {
      • "id": {
        • "prefix": "string",
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "urlString": "string",
        • "cpk": 0,
        • "pk": 0
        },
      • "listItemId": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "variation": "string",
      • "quantity": 0,
      • "weightedItemQuantity": 0,
      • "sumQuantity": 0,
      • "image": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "listItemSelected": true
      }
    ],
  • "count": 0
}

Cart

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:

  • Retrieve the current state of the shopping cart and update it with changes.
  • Finalize the checkout process, retrieve available payment methods, and use functionalities like Line Bust and Pay Now to facilitate a faster checkout process.

Cart

Returns the user's current cart.

Responses

Response Schema: application/json
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

Response samples

Content type
application/json
{
  • "id": "1000-10",
  • "version": 0,
  • "subTotal": 1.27,
  • "rawSubTotal": 1.27,
  • "deliveryTotal": 1,
  • "shippingTotal": 1,
  • "taxTotal": 1,
  • "tipTotal": 1,
  • "roundUpTotal": 0.37,
  • "grandTotal": 10,
  • "dueTotal": 10,
  • "tenderedTotal": 0,
  • "ebtSnapEligibleTotal": 3,
  • "ebtTanfEligibleTotal": 10,
  • "payLater": true,
  • "instructions": "Please take extra care of my order!",
  • "lineItems": [
    • {
      • "id": 1,
      • "order": 1,
      • "scancode": "3283",
      • "detail": "Apples Honeycrisp",
      • "quantity": 1,
      • "weightedItemQuantity": 2,
      • "amountDivider": 2,
      • "amount": 2,
      • "extended": 4,
      • "substitutable": true,
      • "instructions": "Please make sure these are ripe!",
      • "type": 0,
      • "item": {
        • "id": "1000-10",
        • "image": "1000-11",
        • "scanCode": "123456789012",
        • "name": "Test Item Name",
        • "alternateName": "Alternate Name",
        • "suggestedPrice": 1.99,
        • "actualPriceDivider": 2,
        • "actualPrice": 4,
        • "autoDiscount": "10% Off 3 or more.",
        • "promo": "Sunday Special",
        • "buyDown": "Test Buydown",
        • "weightProfile": {
          • "abbrv": "lb",
          • "decimals": 2,
          • "selectCount": 15,
          • "selectMinimum": 0.5,
          • "selectIncrement": 0.25,
          • "allowWeightedQuantity": false
          },
        • "baseItem": "INV-1000-5",
        • "ascQuantity": 0,
        • "maxQuantity": 50,
        • "maxBaseQuantity": 0,
        • "quantityLimitData": {
          • "comboPackAmount": 0,
          • "vendorGroup": "string",
          • "quantityLimit": 0
          },
        • "attributes": [
          • {
            • "image": {
              • "cpk": 0,
              • "pk": 0,
              • "bigPk": 0,
              • "urlString": "string"
              },
            • "name": "Organic"
            }
          ],
        • "itemGroups": [
          • {
            • "prefix": "string",
            • "id": {
              • "cpk": 0,
              • "pk": 0,
              • "bigPk": 0,
              • "urlString": "string"
              },
            • "urlString": "string",
            • "cpk": 0,
            • "pk": 0
            }
          ],
        • "specialTenders": [
          • {
            • "id": {
              • "prefix": "string",
              • "id": {
                • "cpk": 0,
                • "pk": 0,
                • "bigPk": 0,
                • "urlString": "string"
                },
              • "urlString": "string",
              • "cpk": 0,
              • "pk": 0
              },
            • "name": "EBT SNAP Online",
            • "tenderType": 4
            }
          ],
        • "coupons": [
          • {
            • "id": "string",
            • "name": "string",
            • "requirements": "string",
            • "description": "string",
            • "category": "string",
            • "brand": "string",
            • "startDate": "string",
            • "endDate": "string",
            • "imageUrl": "string",
            • "redeemLimit": "string",
            • "requirementUpcs": [
              • "string"
              ],
            • "rewardUpcs": [
              • "string"
              ],
            • "targeted": true,
            • "featured": true,
            • "enabled": true,
            • "sortOrder": 0,
            • "validBanners": [
              • "string"
              ],
            • "validLocations": [
              • "string"
              ],
            • "validForStore": true
            }
          ],
        • "outOfStock": false,
        • "sellOutOfStock": false,
        • "brandId": "1000-12",
        • "brand": "Maria's",
        • "size": "12oz",
        • "shelfSequence": 123,
        • "location": "Aisle 3, Section 5, Shelf 1",
        • "hasModifiers": false,
        • "hasLinkedItems": true,
        • "averageWeight": 0.34,
        • "hasRestriction": false,
        • "hasAgeRestriction": true,
        • "cashierApprovalRequired": true,
        • "hasTimeRestrictions": true,
        • "excludeFromCombos": true,
        • "prohibitedSalesScheduleNames": [
          • "string"
          ],
        • "departmentId": "1000-6",
        • "department": "Grocery",
        • "discountType": "override",
        • "discontinued": true
        },
      • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
      • "linkType": "link",
      • "linkedItems": [
        • { }
        ],
      • "embeddedPrice": 1.5,
      • "embeddedDiscount": 0.5,
      • "roudUpId": "1000-3",
      • "tipProfileId": 1,
      • "tipOptionId": 3,
      • "tipAmount": 3,
      • "couponProviderId": "6",
      • "couponItemScanCodes": [
        • "string"
        ]
      }
    ],
  • "giftCardItems": [
    • {
      • "id": 1,
      • "order": 1,
      • "code": "EGC",
      • "account": "LJ4BEI2AFKLRNSAR",
      • "detail": "E-Gift Card",
      • "amount": 100,
      • "quantity": 2,
      • "design": {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "image": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        },
      • "recipientName": "Bob & Alice",
      • "senderName": "Joe Schmo",
      • "message": "Congratulations! Get something delivered on me!",
      • "recipientEmail": "test@ecrs.com",
      • "recipientPhoneNumber": "(828) 265-2907",
      • "print": true,
      • "sendDate": "2024-05-19T16:00:00Z"
      }
    ],
  • "coupons": [
    • {
      • "id": "1000-10",
      • "name": "10% Off!",
      • "code": "V8<6",
      • "valid": true
      }
    ],
  • "deferrableCombos": [
    • {
      • "id": "1000-10",
      • "name": "Happy Birthday! 20% Off",
      • "couponExpiration": "2024-05-31",
      • "periodExpiration": "2024-06-07",
      • "uses": 3,
      • "deferred": true,
      • "costs": [
        • {
          • "name": "string",
          • "showDecimal": true,
          • "value": 0
          }
        ],
      • "rewards": [
        • {
          • "type": "DISCOUNT",
          • "name": "string",
          • "showDecimal": true,
          • "value": 0
          }
        ]
      }
    ],
  • "checkout": {
    • "stage": 1,
    • "maxStage": 3,
    • "maxStageReached": 3,
    • "emails": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "email": "string",
        • "billTo": true,
        • "shipTo": true,
        • "marketing": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "ereceipt": true
        }
      ],
    • "phones": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "phone": "string",
        • "billToPhone": true,
        • "billToFax": true,
        • "shipToPhone": true,
        • "shipToFax": true,
        • "fax": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "addresses": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "street1": "string",
        • "street2": "string",
        • "city": "string",
        • "state": "string",
        • "postal": "string",
        • "country": "string",
        • "shipTo": true,
        • "billTo": true,
        • "location": true,
        • "webcart": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "billing": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "shipping": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "shippingMethod": {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "cost": 0,
      • "addressRequired": true,
      • "reservationRequired": true,
      • "status": "string",
      • "memo": "string",
      • "reservationDates": [
        • {
          • "date": "2019-08-24",
          • "times": [
            • {
              • "start": "13:35:00",
              • "end": "13:35:00",
              • "available": true
              }
            ]
          }
        ],
      • "tipProfiles": [
        • {
          • "id": {
            • "pk": 0,
            • "littlePk": 0,
            • "littleCpk": 0,
            • "urlString": "string"
            },
          • "name": "string",
          • "displayName": "string",
          • "allowCustomAmount": true,
          • "tipOptions": [
            • {
              • "id": {
                • "pk": 0,
                • "littlePk": 0,
                • "littleCpk": 0,
                • "urlString": "string"
                },
              • "type": 0,
              • "value": 0,
              • "default": true
              }
            ]
          }
        ],
      • "thirdPartyServiceProfile": {
        • "id": 0,
        • "name": "string",
        • "thirdPartyServiceProvider": {
          • "id": 0,
          • "name": "string",
          • "type": 0
          }
        },
      • "reason": "string"
      },
    • "thirdPartyShipping": {
      • "carrierCode": "string",
      • "serviceCode": "string",
      • "packageCode": "string",
      • "serviceName": "string",
      • "cost": 0
      },
    • "giftMessage": "string",
    • "availableRoundups": [
      • {
        • "id": "1000-10",
        • "name": "Round Up for charity",
        • "selected": true
        }
      ],
    • "reservationDate": "2024-05-12",
    • "reservationTime": "13:35:00",
    • "reservationExpiration": "2019-08-24T14:15:22Z",
    • "shippingRequired": true,
    • "shippingMethods": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "cost": 0,
        • "addressRequired": true,
        • "reservationRequired": true,
        • "status": "string",
        • "memo": "string",
        • "reservationDates": [
          • {
            • "date": "2019-08-24",
            • "times": [
              • {
                • "start": "13:35:00",
                • "end": "13:35:00",
                • "available": true
                }
              ]
            }
          ],
        • "tipProfiles": [
          • {
            • "id": {
              • "pk": 0,
              • "littlePk": 0,
              • "littleCpk": 0,
              • "urlString": "string"
              },
            • "name": "string",
            • "displayName": "string",
            • "allowCustomAmount": true,
            • "tipOptions": [
              • {
                • "id": {
                  • "pk": 0,
                  • "littlePk": 0,
                  • "littleCpk": 0,
                  • "urlString": "string"
                  },
                • "type": 0,
                • "value": 0,
                • "default": true
                }
              ]
            }
          ],
        • "thirdPartyServiceProfile": {
          • "id": 0,
          • "name": "string",
          • "thirdPartyServiceProvider": {
            • "id": 0,
            • "name": "string",
            • "type": 0
            }
          },
        • "reason": "string"
        }
      ],
    • "paymentMethods": [
      • {
        • "pmId": "string",
        • "methodId": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "available": true,
        • "type": 0,
        • "testing": true,
        • "balance": 0,
        • "eligible": 0,
        • "minimum": 0,
        • "maximum": 0,
        • "token": {
          • "cardId": "string",
          • "defaultToken": true,
          • "brand": "string",
          • "finalDigits": "string",
          • "expiration": "string",
          • "authFk": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "tenderType": 0
          },
        • "provider": "string",
        • "iframePath": "string",
        • "clientKey": "string",
        • "accessBlock": "string",
        • "serverPath": "string",
        • "iframePropertyQueryCount": 0,
        • "merchantId": "string",
        • "countryCode": "string",
        • "currencyCode": "string",
        • "applePayMerchantIdentifier": "string"
        }
      ],
    • "isGift": true
    },
  • "inStore": true,
  • "orderType": "1000-2",
  • "online": true,
  • "lastSyncTime": "2019-08-24T14:15:22Z",
  • "addedCouponValid": true
}

Sync Cart

Synchronizes the requested changes with the transaction backing the cart.

Request Body schema: application/json
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.

Responses

Response Schema: application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
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

Request samples

Content type
application/json
{
  • "transaction": "1000-1",
  • "instructions": "string",
  • "items": [
    • {
      • "id": 1,
      • "item": "INV-1000-1",
      • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
      • "quantity": 3,
      • "substitutable": true,
      • "instructions": "Please make sure these are ripe!",
      • "weightedItemQuantity": 2,
      • "embeddedPrice": 2,
      • "originalPrice": 5,
      • "embeddedDiscount": 1,
      • "expiration": "2024-05-12",
      • "order": 1,
      • "type": 1,
      • "tipProfileId": 1,
      • "tipOptionId": 3,
      • "tipAmount": 5,
      • "roundUpId": "1000-9",
      • "roundUpAmount": 0.73,
      • "entryMethod": "RECOMMENDATION_HOME_PAGE"
      }
    ],
  • "specialOrderItems": [
    • {
      • "id": 1,
      • "description": "I couldn't find strawberry short cake from the deli, but I would like that please",
      • "quantity": 1
      }
    ],
  • "coupons": [
    • {
      • "code": "V<X9",
      • "remove": true
      }
    ],
  • "deferrableCombos": [
    • {
      • "id": "1000-10",
      • "deferred": true
      }
    ],
  • "giftCardItems": [
    • {
      • "id": 3,
      • "amount": 100,
      • "quantity": 2,
      • "design": "1000-8",
      • "recipientName": "Robert & Alice",
      • "senderName": "Joesph Schmo",
      • "message": "You are the best! Get some groceries on me!",
      • "recipientEmail": "test@ecrs.com",
      • "recipientPhoneNumber": "(828) 265-2907",
      • "print": true,
      • "sendDate": "2025-05-19T16:00:00Z"
      }
    ],
  • "checkout": {
    • "stage": 1,
    • "maxStageReached": 3,
    • "billing": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "shipping": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "shippingMethod": {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "cost": 0,
      • "addressRequired": true,
      • "reservationRequired": true,
      • "status": "string",
      • "memo": "string",
      • "reservationDates": [
        • {
          • "date": "2019-08-24",
          • "times": [
            • {
              • "start": "13:35:00",
              • "end": "13:35:00",
              • "available": true
              }
            ]
          }
        ],
      • "tipProfiles": [
        • {
          • "id": {
            • "pk": 0,
            • "littlePk": 0,
            • "littleCpk": 0,
            • "urlString": "string"
            },
          • "name": "string",
          • "displayName": "string",
          • "allowCustomAmount": true,
          • "tipOptions": [
            • {
              • "id": {
                • "pk": 0,
                • "littlePk": 0,
                • "littleCpk": 0,
                • "urlString": "string"
                },
              • "type": 0,
              • "value": 0,
              • "default": true
              }
            ]
          }
        ],
      • "thirdPartyServiceProfile": {
        • "id": 0,
        • "name": "string",
        • "thirdPartyServiceProvider": {
          • "id": 0,
          • "name": "string",
          • "type": 0
          }
        },
      • "reason": "string"
      },
    • "thirdPartyShipping": {
      • "carrierCode": "string",
      • "serviceCode": "string",
      • "packageCode": "string"
      },
    • "giftMessage": "string",
    • "reservationDate": "2024-05-31",
    • "reservationTime": "13:35:00",
    • "isGift": true
    },
  • "inStore": true,
  • "deliveryTotal": 0,
  • "orderTypeId": "1000-3",
  • "lastSyncTime": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
{
  • "id": "1000-10",
  • "version": 0,
  • "subTotal": 1.27,
  • "rawSubTotal": 1.27,
  • "deliveryTotal": 1,
  • "shippingTotal": 1,
  • "taxTotal": 1,
  • "tipTotal": 1,
  • "roundUpTotal": 0.37,
  • "grandTotal": 10,
  • "dueTotal": 10,
  • "tenderedTotal": 0,
  • "ebtSnapEligibleTotal": 3,
  • "ebtTanfEligibleTotal": 10,
  • "payLater": true,
  • "instructions": "Please take extra care of my order!",
  • "lineItems": [
    • {
      • "id": 1,
      • "order": 1,
      • "scancode": "3283",
      • "detail": "Apples Honeycrisp",
      • "quantity": 1,
      • "weightedItemQuantity": 2,
      • "amountDivider": 2,
      • "amount": 2,
      • "extended": 4,
      • "substitutable": true,
      • "instructions": "Please make sure these are ripe!",
      • "type": 0,
      • "item": {
        • "id": "1000-10",
        • "image": "1000-11",
        • "scanCode": "123456789012",
        • "name": "Test Item Name",
        • "alternateName": "Alternate Name",
        • "suggestedPrice": 1.99,
        • "actualPriceDivider": 2,
        • "actualPrice": 4,
        • "autoDiscount": "10% Off 3 or more.",
        • "promo": "Sunday Special",
        • "buyDown": "Test Buydown",
        • "weightProfile": {
          • "abbrv": "lb",
          • "decimals": 2,
          • "selectCount": 15,
          • "selectMinimum": 0.5,
          • "selectIncrement": 0.25,
          • "allowWeightedQuantity": false
          },
        • "baseItem": "INV-1000-5",
        • "ascQuantity": 0,
        • "maxQuantity": 50,
        • "maxBaseQuantity": 0,
        • "quantityLimitData": {
          • "comboPackAmount": 0,
          • "vendorGroup": "string",
          • "quantityLimit": 0
          },
        • "attributes": [
          • {
            • "image": {
              • "cpk": 0,
              • "pk": 0,
              • "bigPk": 0,
              • "urlString": "string"
              },
            • "name": "Organic"
            }
          ],
        • "itemGroups": [
          • {
            • "prefix": "string",
            • "id": {
              • "cpk": 0,
              • "pk": 0,
              • "bigPk": 0,
              • "urlString": "string"
              },
            • "urlString": "string",
            • "cpk": 0,
            • "pk": 0
            }
          ],
        • "specialTenders": [
          • {
            • "id": {
              • "prefix": "string",
              • "id": {
                • "cpk": 0,
                • "pk": 0,
                • "bigPk": 0,
                • "urlString": "string"
                },
              • "urlString": "string",
              • "cpk": 0,
              • "pk": 0
              },
            • "name": "EBT SNAP Online",
            • "tenderType": 4
            }
          ],
        • "coupons": [
          • {
            • "id": "string",
            • "name": "string",
            • "requirements": "string",
            • "description": "string",
            • "category": "string",
            • "brand": "string",
            • "startDate": "string",
            • "endDate": "string",
            • "imageUrl": "string",
            • "redeemLimit": "string",
            • "requirementUpcs": [
              • "string"
              ],
            • "rewardUpcs": [
              • "string"
              ],
            • "targeted": true,
            • "featured": true,
            • "enabled": true,
            • "sortOrder": 0,
            • "validBanners": [
              • "string"
              ],
            • "validLocations": [
              • "string"
              ],
            • "validForStore": true
            }
          ],
        • "outOfStock": false,
        • "sellOutOfStock": false,
        • "brandId": "1000-12",
        • "brand": "Maria's",
        • "size": "12oz",
        • "shelfSequence": 123,
        • "location": "Aisle 3, Section 5, Shelf 1",
        • "hasModifiers": false,
        • "hasLinkedItems": true,
        • "averageWeight": 0.34,
        • "hasRestriction": false,
        • "hasAgeRestriction": true,
        • "cashierApprovalRequired": true,
        • "hasTimeRestrictions": true,
        • "excludeFromCombos": true,
        • "prohibitedSalesScheduleNames": [
          • "string"
          ],
        • "departmentId": "1000-6",
        • "department": "Grocery",
        • "discountType": "override",
        • "discontinued": true
        },
      • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
      • "linkType": "link",
      • "linkedItems": [
        • { }
        ],
      • "embeddedPrice": 1.5,
      • "embeddedDiscount": 0.5,
      • "roudUpId": "1000-3",
      • "tipProfileId": 1,
      • "tipOptionId": 3,
      • "tipAmount": 3,
      • "couponProviderId": "6",
      • "couponItemScanCodes": [
        • "string"
        ]
      }
    ],
  • "giftCardItems": [
    • {
      • "id": 1,
      • "order": 1,
      • "code": "EGC",
      • "account": "LJ4BEI2AFKLRNSAR",
      • "detail": "E-Gift Card",
      • "amount": 100,
      • "quantity": 2,
      • "design": {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "image": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        },
      • "recipientName": "Bob & Alice",
      • "senderName": "Joe Schmo",
      • "message": "Congratulations! Get something delivered on me!",
      • "recipientEmail": "test@ecrs.com",
      • "recipientPhoneNumber": "(828) 265-2907",
      • "print": true,
      • "sendDate": "2024-05-19T16:00:00Z"
      }
    ],
  • "coupons": [
    • {
      • "id": "1000-10",
      • "name": "10% Off!",
      • "code": "V8<6",
      • "valid": true
      }
    ],
  • "deferrableCombos": [
    • {
      • "id": "1000-10",
      • "name": "Happy Birthday! 20% Off",
      • "couponExpiration": "2024-05-31",
      • "periodExpiration": "2024-06-07",
      • "uses": 3,
      • "deferred": true,
      • "costs": [
        • {
          • "name": "string",
          • "showDecimal": true,
          • "value": 0
          }
        ],
      • "rewards": [
        • {
          • "type": "DISCOUNT",
          • "name": "string",
          • "showDecimal": true,
          • "value": 0
          }
        ]
      }
    ],
  • "checkout": {
    • "stage": 1,
    • "maxStage": 3,
    • "maxStageReached": 3,
    • "emails": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "email": "string",
        • "billTo": true,
        • "shipTo": true,
        • "marketing": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "ereceipt": true
        }
      ],
    • "phones": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "phone": "string",
        • "billToPhone": true,
        • "billToFax": true,
        • "shipToPhone": true,
        • "shipToFax": true,
        • "fax": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "addresses": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "street1": "string",
        • "street2": "string",
        • "city": "string",
        • "state": "string",
        • "postal": "string",
        • "country": "string",
        • "shipTo": true,
        • "billTo": true,
        • "location": true,
        • "webcart": true,
        • "did": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          }
        }
      ],
    • "billing": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "shipping": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "shippingMethod": {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "cost": 0,
      • "addressRequired": true,
      • "reservationRequired": true,
      • "status": "string",
      • "memo": "string",
      • "reservationDates": [
        • {
          • "date": "2019-08-24",
          • "times": [
            • {
              • "start": "13:35:00",
              • "end": "13:35:00",
              • "available": true
              }
            ]
          }
        ],
      • "tipProfiles": [
        • {
          • "id": {
            • "pk": 0,
            • "littlePk": 0,
            • "littleCpk": 0,
            • "urlString": "string"
            },
          • "name": "string",
          • "displayName": "string",
          • "allowCustomAmount": true,
          • "tipOptions": [
            • {
              • "id": {
                • "pk": 0,
                • "littlePk": 0,
                • "littleCpk": 0,
                • "urlString": "string"
                },
              • "type": 0,
              • "value": 0,
              • "default": true
              }
            ]
          }
        ],
      • "thirdPartyServiceProfile": {
        • "id": 0,
        • "name": "string",
        • "thirdPartyServiceProvider": {
          • "id": 0,
          • "name": "string",
          • "type": 0
          }
        },
      • "reason": "string"
      },
    • "thirdPartyShipping": {
      • "carrierCode": "string",
      • "serviceCode": "string",
      • "packageCode": "string",
      • "serviceName": "string",
      • "cost": 0
      },
    • "giftMessage": "string",
    • "availableRoundups": [
      • {
        • "id": "1000-10",
        • "name": "Round Up for charity",
        • "selected": true
        }
      ],
    • "reservationDate": "2024-05-12",
    • "reservationTime": "13:35:00",
    • "reservationExpiration": "2019-08-24T14:15:22Z",
    • "shippingRequired": true,
    • "shippingMethods": [
      • {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "cost": 0,
        • "addressRequired": true,
        • "reservationRequired": true,
        • "status": "string",
        • "memo": "string",
        • "reservationDates": [
          • {
            • "date": "2019-08-24",
            • "times": [
              • {
                • "start": "13:35:00",
                • "end": "13:35:00",
                • "available": true
                }
              ]
            }
          ],
        • "tipProfiles": [
          • {
            • "id": {
              • "pk": 0,
              • "littlePk": 0,
              • "littleCpk": 0,
              • "urlString": "string"
              },
            • "name": "string",
            • "displayName": "string",
            • "allowCustomAmount": true,
            • "tipOptions": [
              • {
                • "id": {
                  • "pk": 0,
                  • "littlePk": 0,
                  • "littleCpk": 0,
                  • "urlString": "string"
                  },
                • "type": 0,
                • "value": 0,
                • "default": true
                }
              ]
            }
          ],
        • "thirdPartyServiceProfile": {
          • "id": 0,
          • "name": "string",
          • "thirdPartyServiceProvider": {
            • "id": 0,
            • "name": "string",
            • "type": 0
            }
          },
        • "reason": "string"
        }
      ],
    • "paymentMethods": [
      • {
        • "pmId": "string",
        • "methodId": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "available": true,
        • "type": 0,
        • "testing": true,
        • "balance": 0,
        • "eligible": 0,
        • "minimum": 0,
        • "maximum": 0,
        • "token": {
          • "cardId": "string",
          • "defaultToken": true,
          • "brand": "string",
          • "finalDigits": "string",
          • "expiration": "string",
          • "authFk": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "tenderType": 0
          },
        • "provider": "string",
        • "iframePath": "string",
        • "clientKey": "string",
        • "accessBlock": "string",
        • "serverPath": "string",
        • "iframePropertyQueryCount": 0,
        • "merchantId": "string",
        • "countryCode": "string",
        • "currencyCode": "string",
        • "applePayMerchantIdentifier": "string"
        }
      ],
    • "isGift": true
    },
  • "inStore": true,
  • "orderType": "1000-2",
  • "online": true,
  • "lastSyncTime": "2019-08-24T14:15:22Z",
  • "addedCouponValid": true
}

Confirm Checkout

Check out the current transaction. Checking out using this method will send the transaction to the Web Orders queue.

Responses

Response Schema: application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
complete
boolean

If the current payment completed the order.

object (GoodbyeData)

Data used to display the goodbye / thank you screen

Response samples

Content type
application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
{
  • "complete": true,
  • "goodbyeData": {
    • "orderId": "1000-1",
    • "scanCode": "5R945K75X771BN",
    • "orderDate": "2024-05-09",
    • "orderTotal": 22.42,
    • "taxTotal": 1,
    • "shippingTotal": 7,
    • "shippingMethod": "Pickup",
    • "reservationDate": "2019-08-24T14:15:22Z",
    • "chargeBalance": 10,
    • "chargeLimit": 500,
    • "loyaltyAccruals": [
      • {
        • "loyaltyName": "Healthy Rewards",
        • "loyaltyMinimumAmount": 5,
        • "loyaltyMinimumBalance": 1,
        • "loyaltyRedeemed": 0.5,
        • "loyaltyProjectedBalance": 10,
        • "loyaltyAccrual": 0.1,
        • "loyaltyExpiring": 2,
        • "loyaltyExpirationDate": "2024-05-09",
        • "showDecimal": true
        }
      ],
    • "coupons": [
      • {
        • "name": "string",
        • "code": "string"
        }
      ],
    • "punchCards": [
      • {
        • "name": "string",
        • "loyaltyRule": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "complete": 0,
        • "currentPunches": 0,
        • "requiredPunches": 0,
        • "accrued": 0,
        • "redeemed": 0,
        • "inactive": true,
        • "expiration": "2019-08-24"
        }
      ],
    • "printableGiftCards": [
      • {
        • "id": 1,
        • "order": 1,
        • "code": "EGC",
        • "account": "LJ4BEI2AFKLRNSAR",
        • "detail": "E-Gift Card",
        • "amount": 100,
        • "quantity": 2,
        • "design": {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "image": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            }
          },
        • "recipientName": "Bob & Alice",
        • "senderName": "Joe Schmo",
        • "message": "Congratulations! Get something delivered on me!",
        • "recipientEmail": "test@ecrs.com",
        • "recipientPhoneNumber": "(828) 265-2907",
        • "print": true,
        • "sendDate": "2024-05-19T16:00:00Z"
        }
      ],
    • "savings": 2.6
    }
}

Pay Now Payment Methods

Returns the payment methods that the merchant has configured eligible for Pay Now.

Responses

Response Schema: application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
Array
pmId
string
object (DefaultPk)
name
string
available
boolean
type
integer <int32>
testing
boolean
balance
number
eligible
number
minimum
number
maximum
number
object (TokenInfo)
provider
string
iframePath
string
clientKey
string
accessBlock
string
serverPath
string
iframePropertyQueryCount
integer <int32>
merchantId
string
countryCode
string
currencyCode
string
applePayMerchantIdentifier
string

Response samples

Content type
application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
[
  • {
    • "pmId": "string",
    • "methodId": {
      • "cpk": 0,
      • "pk": 0,
      • "bigPk": 0,
      • "urlString": "string"
      },
    • "name": "string",
    • "available": true,
    • "type": 0,
    • "testing": true,
    • "balance": 0,
    • "eligible": 0,
    • "minimum": 0,
    • "maximum": 0,
    • "token": {
      • "cardId": "string",
      • "defaultToken": true,
      • "brand": "string",
      • "finalDigits": "string",
      • "expiration": "string",
      • "authFk": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "tenderType": 0
      },
    • "provider": "string",
    • "iframePath": "string",
    • "clientKey": "string",
    • "accessBlock": "string",
    • "serverPath": "string",
    • "iframePropertyQueryCount": 0,
    • "merchantId": "string",
    • "countryCode": "string",
    • "currencyCode": "string",
    • "applePayMerchantIdentifier": "string"
    }
]

Line Bust

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).

Responses

Response Schema: application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
complete
boolean

If the current payment completed the order.

object (GoodbyeData)

Data used to display the goodbye / thank you screen

Response samples

Content type
application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
{
  • "complete": true,
  • "goodbyeData": {
    • "orderId": "1000-1",
    • "scanCode": "5R945K75X771BN",
    • "orderDate": "2024-05-09",
    • "orderTotal": 22.42,
    • "taxTotal": 1,
    • "shippingTotal": 7,
    • "shippingMethod": "Pickup",
    • "reservationDate": "2019-08-24T14:15:22Z",
    • "chargeBalance": 10,
    • "chargeLimit": 500,
    • "loyaltyAccruals": [
      • {
        • "loyaltyName": "Healthy Rewards",
        • "loyaltyMinimumAmount": 5,
        • "loyaltyMinimumBalance": 1,
        • "loyaltyRedeemed": 0.5,
        • "loyaltyProjectedBalance": 10,
        • "loyaltyAccrual": 0.1,
        • "loyaltyExpiring": 2,
        • "loyaltyExpirationDate": "2024-05-09",
        • "showDecimal": true
        }
      ],
    • "coupons": [
      • {
        • "name": "string",
        • "code": "string"
        }
      ],
    • "punchCards": [
      • {
        • "name": "string",
        • "loyaltyRule": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "complete": 0,
        • "currentPunches": 0,
        • "requiredPunches": 0,
        • "accrued": 0,
        • "redeemed": 0,
        • "inactive": true,
        • "expiration": "2019-08-24"
        }
      ],
    • "printableGiftCards": [
      • {
        • "id": 1,
        • "order": 1,
        • "code": "EGC",
        • "account": "LJ4BEI2AFKLRNSAR",
        • "detail": "E-Gift Card",
        • "amount": 100,
        • "quantity": 2,
        • "design": {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "image": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            }
          },
        • "recipientName": "Bob & Alice",
        • "senderName": "Joe Schmo",
        • "message": "Congratulations! Get something delivered on me!",
        • "recipientEmail": "test@ecrs.com",
        • "recipientPhoneNumber": "(828) 265-2907",
        • "print": true,
        • "sendDate": "2024-05-19T16:00:00Z"
        }
      ],
    • "savings": 2.6
    }
}

Pay Now

Check out the current transaction and complete it immediately. Checking out using this method will bypass the picking process.

Responses

Response Schema: application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
complete
boolean

If the current payment completed the order.

object (GoodbyeData)

Data used to display the goodbye / thank you screen

Response samples

Content type
application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
{
  • "complete": true,
  • "goodbyeData": {
    • "orderId": "1000-1",
    • "scanCode": "5R945K75X771BN",
    • "orderDate": "2024-05-09",
    • "orderTotal": 22.42,
    • "taxTotal": 1,
    • "shippingTotal": 7,
    • "shippingMethod": "Pickup",
    • "reservationDate": "2019-08-24T14:15:22Z",
    • "chargeBalance": 10,
    • "chargeLimit": 500,
    • "loyaltyAccruals": [
      • {
        • "loyaltyName": "Healthy Rewards",
        • "loyaltyMinimumAmount": 5,
        • "loyaltyMinimumBalance": 1,
        • "loyaltyRedeemed": 0.5,
        • "loyaltyProjectedBalance": 10,
        • "loyaltyAccrual": 0.1,
        • "loyaltyExpiring": 2,
        • "loyaltyExpirationDate": "2024-05-09",
        • "showDecimal": true
        }
      ],
    • "coupons": [
      • {
        • "name": "string",
        • "code": "string"
        }
      ],
    • "punchCards": [
      • {
        • "name": "string",
        • "loyaltyRule": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "complete": 0,
        • "currentPunches": 0,
        • "requiredPunches": 0,
        • "accrued": 0,
        • "redeemed": 0,
        • "inactive": true,
        • "expiration": "2019-08-24"
        }
      ],
    • "printableGiftCards": [
      • {
        • "id": 1,
        • "order": 1,
        • "code": "EGC",
        • "account": "LJ4BEI2AFKLRNSAR",
        • "detail": "E-Gift Card",
        • "amount": 100,
        • "quantity": 2,
        • "design": {
          • "id": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            },
          • "image": {
            • "cpk": 0,
            • "pk": 0,
            • "bigPk": 0,
            • "urlString": "string"
            }
          },
        • "recipientName": "Bob & Alice",
        • "senderName": "Joe Schmo",
        • "message": "Congratulations! Get something delivered on me!",
        • "recipientEmail": "test@ecrs.com",
        • "recipientPhoneNumber": "(828) 265-2907",
        • "print": true,
        • "sendDate": "2024-05-19T16:00:00Z"
        }
      ],
    • "savings": 2.6
    }
}

Order Types

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.

getCartForOrderType

path Parameters
id
required
string

Responses

syncOrderTypeCart

path Parameters
id
required
string
Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "transaction": "1000-1",
  • "instructions": "string",
  • "items": [
    • {
      • "id": 1,
      • "item": "INV-1000-1",
      • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
      • "quantity": 3,
      • "substitutable": true,
      • "instructions": "Please make sure these are ripe!",
      • "weightedItemQuantity": 2,
      • "embeddedPrice": 2,
      • "originalPrice": 5,
      • "embeddedDiscount": 1,
      • "expiration": "2024-05-12",
      • "order": 1,
      • "type": 1,
      • "tipProfileId": 1,
      • "tipOptionId": 3,
      • "tipAmount": 5,
      • "roundUpId": "1000-9",
      • "roundUpAmount": 0.73,
      • "entryMethod": "RECOMMENDATION_HOME_PAGE"
      }
    ],
  • "specialOrderItems": [
    • {
      • "id": 1,
      • "description": "I couldn't find strawberry short cake from the deli, but I would like that please",
      • "quantity": 1
      }
    ],
  • "coupons": [
    • {
      • "code": "V<X9",
      • "remove": true
      }
    ],
  • "deferrableCombos": [
    • {
      • "id": "1000-10",
      • "deferred": true
      }
    ],
  • "giftCardItems": [
    • {
      • "id": 3,
      • "amount": 100,
      • "quantity": 2,
      • "design": "1000-8",
      • "recipientName": "Robert & Alice",
      • "senderName": "Joesph Schmo",
      • "message": "You are the best! Get some groceries on me!",
      • "recipientEmail": "test@ecrs.com",
      • "recipientPhoneNumber": "(828) 265-2907",
      • "print": true,
      • "sendDate": "2025-05-19T16:00:00Z"
      }
    ],
  • "checkout": {
    • "stage": 1,
    • "maxStageReached": 3,
    • "billing": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "shipping": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "shippingMethod": {
      • "id": {
        • "cpk": 0,
        • "pk": 0,
        • "bigPk": 0,
        • "urlString": "string"
        },
      • "name": "string",
      • "cost": 0,
      • "addressRequired": true,
      • "reservationRequired": true,
      • "status": "string",
      • "memo": "string",
      • "reservationDates": [
        • {
          • "date": "2019-08-24",
          • "times": [
            • {
              • "start": "13:35:00",
              • "end": "13:35:00",
              • "available": true
              }
            ]
          }
        ],
      • "tipProfiles": [
        • {
          • "id": {
            • "pk": 0,
            • "littlePk": 0,
            • "littleCpk": 0,
            • "urlString": "string"
            },
          • "name": "string",
          • "displayName": "string",
          • "allowCustomAmount": true,
          • "tipOptions": [
            • {
              • "id": {
                • "pk": 0,
                • "littlePk": 0,
                • "littleCpk": 0,
                • "urlString": "string"
                },
              • "type": 0,
              • "value": 0,
              • "default": true
              }
            ]
          }
        ],
      • "thirdPartyServiceProfile": {
        • "id": 0,
        • "name": "string",
        • "thirdPartyServiceProvider": {
          • "id": 0,
          • "name": "string",
          • "type": 0
          }
        },
      • "reason": "string"
      },
    • "thirdPartyShipping": {
      • "carrierCode": "string",
      • "serviceCode": "string",
      • "packageCode": "string"
      },
    • "giftMessage": "string",
    • "reservationDate": "2024-05-31",
    • "reservationTime": "13:35:00",
    • "isGift": true
    },
  • "inStore": true,
  • "deliveryTotal": 0,
  • "orderTypeId": "1000-3",
  • "lastSyncTime": "2019-08-24T14:15:22Z"
}

getOrderTypeCarts

Responses

syncOrderTypeCarts

Request Body schema: application/json
Array
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.

Responses

Request samples

Content type
application/json
[
  • {
    • "transaction": "1000-1",
    • "instructions": "string",
    • "items": [
      • {
        • "id": 1,
        • "item": "INV-1000-1",
        • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
        • "quantity": 3,
        • "substitutable": true,
        • "instructions": "Please make sure these are ripe!",
        • "weightedItemQuantity": 2,
        • "embeddedPrice": 2,
        • "originalPrice": 5,
        • "embeddedDiscount": 1,
        • "expiration": "2024-05-12",
        • "order": 1,
        • "type": 1,
        • "tipProfileId": 1,
        • "tipOptionId": 3,
        • "tipAmount": 5,
        • "roundUpId": "1000-9",
        • "roundUpAmount": 0.73,
        • "entryMethod": "RECOMMENDATION_HOME_PAGE"
        }
      ],
    • "specialOrderItems": [
      • {
        • "id": 1,
        • "description": "I couldn't find strawberry short cake from the deli, but I would like that please",
        • "quantity": 1
        }
      ],
    • "coupons": [
      • {
        • "code": "V<X9",
        • "remove": true
        }
      ],
    • "deferrableCombos": [
      • {
        • "id": "1000-10",
        • "deferred": true
        }
      ],
    • "giftCardItems": [
      • {
        • "id": 3,
        • "amount": 100,
        • "quantity": 2,
        • "design": "1000-8",
        • "recipientName": "Robert & Alice",
        • "senderName": "Joesph Schmo",
        • "message": "You are the best! Get some groceries on me!",
        • "recipientEmail": "test@ecrs.com",
        • "recipientPhoneNumber": "(828) 265-2907",
        • "print": true,
        • "sendDate": "2025-05-19T16:00:00Z"
        }
      ],
    • "checkout": {
      • "stage": 1,
      • "maxStageReached": 3,
      • "billing": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shipping": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shippingMethod": {
        • "id": {
          • "cpk": 0,
          • "pk": 0,
          • "bigPk": 0,
          • "urlString": "string"
          },
        • "name": "string",
        • "cost": 0,
        • "addressRequired": true,
        • "reservationRequired": true,
        • "status": "string",
        • "memo": "string",
        • "reservationDates": [
          • {
            • "date": "2019-08-24",
            • "times": [
              • {
                • "start": "13:35:00",
                • "end": "13:35:00",
                • "available": true
                }
              ]
            }
          ],
        • "tipProfiles": [
          • {
            • "id": {
              • "pk": 0,
              • "littlePk": 0,
              • "littleCpk": 0,
              • "urlString": "string"
              },
            • "name": "string",
            • "displayName": "string",
            • "allowCustomAmount": true,
            • "tipOptions": [
              • {
                • "id": {
                  • "pk": 0,
                  • "littlePk": 0,
                  • "littleCpk": 0,
                  • "urlString": "string"
                  },
                • "type": 0,
                • "value": 0,
                • "default": true
                }
              ]
            }
          ],
        • "thirdPartyServiceProfile": {
          • "id": 0,
          • "name": "string",
          • "thirdPartyServiceProvider": {
            • "id": 0,
            • "name": "string",
            • "type": 0
            }
          },
        • "reason": "string"
        },
      • "thirdPartyShipping": {
        • "carrierCode": "string",
        • "serviceCode": "string",
        • "packageCode": "string"
        },
      • "giftMessage": "string",
      • "reservationDate": "2024-05-31",
      • "reservationTime": "13:35:00",
      • "isGift": true
      },
    • "inStore": true,
    • "deliveryTotal": 0,
    • "orderTypeId": "1000-3",
    • "lastSyncTime": "2019-08-24T14:15:22Z"
    }
]

getOrderTypeDetail

path Parameters
id
required
string

Responses

Checkin

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:

checkin

path Parameters
token
required
string

Responses

checkin_1

path Parameters
token
required
string
Request Body schema: application/json
message
string

Responses

Request samples

Content type
application/json
{
  • "message": "string"
}

Charge Account

The endpoints in this group facilitate queries and updates to charge accounts. Use endpoints in this group to:

  • Add funds to a charge account
  • Retrieve the current details of a charge account
  • Retrieve available payment methods for reloading the account

addToBalance

path Parameters
id
required
string
Request Body schema: application/json
method
string
object
amount
number
recaptcha
string

Responses

Request samples

Content type
application/json
{
  • "method": "string",
  • "info": {
    • "property1": "string",
    • "property2": "string"
    },
  • "amount": 0,
  • "recaptcha": "string"
}

getChargeAccount

path Parameters
id
required
string

Responses

getReloadPaymentMethods

Responses

Circulars

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.

circulars

Responses

Membership

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:

  • Retrieve detailed information about customer memberships
  • Retrieve available payment methods for membership-related transactions
  • Process payments for membership fees and equity

CMS Customer Membership Details

Provides membership details for a specific customer

Responses

Response Schema: application/json
object (CoopMemberInfoDto)
object (CoopMemberEquityDto)
object (CoopMemberFeesDto)
object (CoopMemberJoiningFeeDto)
Response Schema: application/json
code
required
integer <int32>
Enum: -1 -2

Refer to "Error Codes" in API Responses for a complete reference.

message
required
string

Summary of the error.

Response Schema: application/json
code
required
integer <int32>
Value: -29

Refer to "Error Codes" in API Responses for a complete reference.

message
required
string

Summary of the error.

Response samples

Content type
application/json
{
  • "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
    }
}

CMS Payment Methods

Returns a list of payment methods that can be used to pay equity or fees.

Responses

Response Schema: application/json
object (CoopMemberInfoDto)
object (CoopMemberEquityDto)
object (CoopMemberFeesDto)
object (CoopMemberJoiningFeeDto)

Response samples

Content type
application/json
{
  • "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
    }
}

CMS Membership Fee and equity Payment

Allows for a membership customer to pay their membership fee, pay equity, and returns the updated customer.

path Parameters
chargeTypeParam
required
string
Enum: "equityPayment" "membershipFee"

Determines where the payment is being made to

chargeType
required
string
query Parameters
required
object (CmsPaymentRequest)

Membership payment request including payment method, amount, form, and, conditionally, reCAPTCHA information.

Request Body schema: application/json
method
string
object
amount
number
recaptcha
string

Responses

Response Schema: application/json
object (CoopMemberInfoDto)
object (CoopMemberEquityDto)
object (CoopMemberFeesDto)
object (CoopMemberJoiningFeeDto)

Request samples

Content type
application/json
{
  • "method": "string",
  • "info": {
    • "property1": "string",
    • "property2": "string"
    },
  • "amount": 0,
  • "recaptcha": "string"
}

Response samples

Content type
application/json
{
  • "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
    }
}

Coupons

The endpoints in this group allow you to offer digital coupons on your e-commerce site. Use the endpoints in this group to:

  • Retrieve recommended digital coupons and detailed information about coupons
  • Enable shoppers to clip coupons
  • Process coupons for use in an e-commerce order

coupons

Request Body schema: application/json
Array of objects (TypedDefaultPk)

The group path in which to search, consists of the ids of departments, promotional sale worksheets, goes well with groups, substitution groups, brands, item groups, and/or menu groups.

q
required
string <= 64 characters

The query string that will be used to search for results

iq
Array of strings[ items [ 1 .. 64 ] characters ]

Minor text modifiers that are performed within (as an AND) with the main query

s
string
Enum: "NAZ" "NZA" "PLH" "PHL" "POP"

The sort to use when collecting search results. In addition to the default(relevance) sort, indicated by the absence of this parameter the following are available. NAZ - Alphabetical ascending NZA - Albhabetical descending PLH - Price, low to high PHL - Price, high to low POP - Popularity, high to low

ps
integer <int32> <= 128
Default: 8

The number of results per page of the request

pn
integer <int32> >= 1
Default: 1

The 1-based index of the requested page

object

A map from the facet category id to the requested facet value ids

Responses

Request samples

Content type
application/json
{
  • "g": "MGP-1000-20",
  • "q": "App",
  • "iq": [
    • "Red"
    ],
  • "s": "NAZ",
  • "ps": 16,
  • "pn": 2,
  • "facets": {
    • "property1": [
      • "string"
      ],
    • "property2": [
      • "string"
      ]
    }
}

Digital Coupon Recommendations

Returns digital coupon recommendations for a specific customer. Requires cognition coupon recommendations to be enabled.

Responses

Response Schema: application/json
Array
id
string
name
string
requirements
string
description
string
category
string
brand
string
startDate
string
endDate
string
imageUrl
string
redeemLimit
string
requirementUpcs
Array of strings
rewardUpcs
Array of strings
targeted
boolean
featured
boolean
enabled
boolean
sortOrder
integer <int32>
validBanners
Array of strings
validLocations
Array of strings
validForStore
boolean

Response samples

Content type
application/json
[
  • {
    • "id": "string",
    • "name": "string",
    • "requirements": "string",
    • "description": "string",
    • "category": "string",
    • "brand": "string",
    • "startDate": "string",
    • "endDate": "string",
    • "imageUrl": "string",
    • "redeemLimit": "string",
    • "requirementUpcs": [
      • "string"
      ],
    • "rewardUpcs": [
      • "string"
      ],
    • "targeted": true,
    • "featured": true,
    • "enabled": true,
    • "sortOrder": 0,
    • "validBanners": [
      • "string"
      ],
    • "validLocations": [
      • "string"
      ],
    • "validForStore": true
    }
]

clip

Request Body schema: application/json
coupons
Array of strings

Responses

Request samples

Content type
application/json
{
  • "coupons": [
    • "string"
    ]
}

detail

path Parameters
id
required
string

Responses

EBT

The endpoints in this group allow you to accept EBT payments. Use the endpoints in this group to:

  • Start a new EBT transaction
  • Retrieve the current balance of an EBT account
  • Finalize the EBT transaction

completeInitiate

path Parameters
accuId
required
string

Responses

createInitiate

Request Body schema: application/json
ebtToken
string

Responses

Request samples

Content type
application/json
{
  • "ebtToken": "string"
}

getBalance

path Parameters
refNum
required
string

Responses

Gift Cards

The endpoints in this group facilitate querying and creating gift cards, including those requiring a PIN for additional security. Use these endpoints to:

  • Query existing gift cards to check their balances, etc.
  • Create new gift cards in the CATAPULT system

giftCard

path Parameters
id
required
string

Responses

giftCardWithPin

path Parameters
id
required
string
Request Body schema: application/json
pin
string

Responses

Request samples

Content type
application/json
{
  • "pin": "string"
}

Payment

The endpoints in this group allow you to accepting payments on your e-commerce site. Use the endpoints in this group to:

  • Retrieve payment authorization details
  • Handle the cancellation of payment authorizations
  • Finalize payment authorization
  • Manage payment cancellations

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.

cancelAuthorize

path Parameters
method
required
string

Responses

cancelAuthorizePost

path Parameters
method
required
string

Responses

completeAuthorizePost

path Parameters
method
required
string
Request Body schema: application/json
property name*
additional property
string

Responses

Request samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

Authorize

Perform a pre-authorization with a payment token for the shopper's current cart.

Pre-authorization can be collected in several different ways.

Saved Credit / Debit Card

Use the ID of the Tokenized Card Payment Method for {method}. Its Tender must have the type "Tokenization".

Refer to the Add Token endpoint for more details.

Google Pay

Google Pay is only supported with Fiserv/CardPointe/CardConnect.

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:

  1. Set the advanced setting "com.ecrsoft.tserver.webcart.googlePay.enabled" to "true".
  2. Set a billing name for your store with the advanced setting "com.ecrsoft.tserver.webcart.storeBillingName". This will be shown to shoppers on the Google Pay form and is required for collecting payments outside the USA.
  3. Set the country code if not "US" using the advanced setting "com.ecrsoft.tserver.cardconnect.countryCode".
  4. Set the currency code if not "USD" using the advanced setting "com.ecrsoft.tserver.cardconnect.currency".

Note: These instructions will be moved to the OLM as soon as possible.

Apple Pay

Apple Pay is only supported with Fiserv/CardPointe/CardConnect.

Use the same {method} as Google Pay. Note that Apple Pay is currently experimental.

Gift Card

Use the ID of the Gift Card Payment Method for {method}. Its Tender must have the type "Gift Card".
path Parameters
method
required
string

The ID of the payment method to authorize.

Request Body schema: application/json

Method-specific data needed to complete authorization

Any of
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.

Responses

Response Schema: application/json
code
required
integer <int32>
Value: 0
message
required
string
Value: "Success"
successful
required
boolean

Whether or not the authorization succeeded.

primaryCorrelation
required
string

The primary correlation of the authorization. This is not a token.

authorizedAmount
required
number

The amount that was authorized.

authorizationDate
required
string

Timestamp corresponding to the time that authorization occurred.

Response Schema: application/json
code
required
integer <int32>
Enum: -1 -12 -22

Refer to "Error Codes" in API Responses for a complete reference.

message
required
string

A more precise description of the error.

object

Map of additional errors.

Request samples

Content type
application/json
Example

Saved Card

{
  • "amount": 101.23,
  • "authFk": "1000-20",
  • "finalDigits": "4242",
  • "brand": "Visa"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "Success",
  • "successful": true,
  • "primaryCorrelation": "323120061480",
  • "authorizedAmount": 101.23,
  • "authorizationDate": "2024-11-18T17:04:40.8104213"
}

doCancel

Responses

doCancel_1

path Parameters
id
required
string

Responses

getAuthorize

path Parameters
method
required
string

Responses

validateMerchant

Request Body schema: application/json
merchantValidationSource
required
string (MerchantValidationSource)
Value: "APPLE_PAY"

Source of the request

validationUrl
string

Responses

Request samples

Content type
application/json
{
  • "merchantValidationSource": "APPLE_PAY",
  • "validationUrl": "string"
}

Accelerated Checkout

The endpoints in this group facilitate Accelerated Checkout. Use the endpoints in this group to:

  • Determine if a shopper is eligible for accelerated checkout
  • Process accelerated checkout orders

isCustomerInScanAndGo

Responses

processScanAndGoForm

Request Body schema: application/json
enterScanAndGo
boolean

Responses

Request samples

Content type
application/json
{
  • "enterScanAndGo": true
}

Delivery

The endpoints in this group control delivery options. Use the endpoints in this group to:

  • Allow shoppers to create a delivery order
  • Retrieve information about a delivery
  • Obtain a delivery quote
  • Verify the delivery details

createDelivery

Request Body schema: application/json
dropoffInstructions
string
contactlessDropoff
boolean
sendNotifications
boolean

Responses

Request samples

Content type
application/json
{
  • "dropoffInstructions": "string",
  • "contactlessDropoff": true,
  • "sendNotifications": true
}

getDeliveryDetails

Request Body schema: application/json
shippingMethodPk
integer <int32>
shippingMethodCpk
integer <int32>
deliveryId
string

Responses

Request samples

Content type
application/json
{
  • "shippingMethodPk": 0,
  • "shippingMethodCpk": 0,
  • "deliveryId": "string"
}

requestQuote

Request Body schema: application/json
object (DefaultPk)
object (CartAddress)
dropoffPhone
string
amount
number
dropoffDay
string
dropoffTime
string
dropoffInstructions
string
contactlessDropoff
boolean
tip
number

Responses

Request samples

Content type
application/json
{
  • "shippingMethod": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "dropoffAddress": {
    • "firstName": "ECR",
    • "lastName": "Software",
    • "email": "test@ecrs.com",
    • "phone": "(828) 265-2907",
    • "street1": "277 Howard Street",
    • "street2": "Suite 1",
    • "postal": "28607",
    • "city": "Boone",
    • "country": 15,
    • "state": 34,
    • "latitude": 36.217646,
    • "longitude": -81.684149
    },
  • "dropoffPhone": "string",
  • "amount": 0,
  • "dropoffDay": "string",
  • "dropoffTime": "string",
  • "dropoffInstructions": "string",
  • "contactlessDropoff": true,
  • "tip": 0
}

validateDelivery

Request Body schema: application/json
object (DefaultPk)
object (CartAddress)
dropoffPhone
string
dropoffFirstName
string
dropoffLastName
string
dropoffEmail
string
amount
number
dropoffDay
string
dropoffTime
string
dropoffInstructions
string

Responses

Request samples

Content type
application/json
{
  • "shippingMethod": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "dropoffAddress": {
    • "firstName": "ECR",
    • "lastName": "Software",
    • "email": "test@ecrs.com",
    • "phone": "(828) 265-2907",
    • "street1": "277 Howard Street",
    • "street2": "Suite 1",
    • "postal": "28607",
    • "city": "Boone",
    • "country": 15,
    • "state": 34,
    • "latitude": 36.217646,
    • "longitude": -81.684149
    },
  • "dropoffPhone": "string",
  • "dropoffFirstName": "string",
  • "dropoffLastName": "string",
  • "dropoffEmail": "string",
  • "amount": 0,
  • "dropoffDay": "string",
  • "dropoffTime": "string",
  • "dropoffInstructions": "string"
}

Shipping

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.

Third Party Shipping Rates

Provides a list of shipping rate estimates

Request Body schema: application/json
object (DefaultPk)
object (CartAddress)

Responses

Response Schema: application/json
Array of objects (ShippingRate)

Request samples

Content type
application/json
{
  • "shippingMethodId": {
    • "cpk": 0,
    • "pk": 0,
    • "bigPk": 0,
    • "urlString": "string"
    },
  • "shippingAddress": {
    • "firstName": "ECR",
    • "lastName": "Software",
    • "email": "test@ecrs.com",
    • "phone": "(828) 265-2907",
    • "street1": "277 Howard Street",
    • "street2": "Suite 1",
    • "postal": "28607",
    • "city": "Boone",
    • "country": 15,
    • "state": 34,
    • "latitude": 36.217646,
    • "longitude": -81.684149
    }
}

Response samples

Content type
application/json
{
  • "rates": [
    • {
      • "serviceName": "string",
      • "carrierCode": "string",
      • "serviceCode": "string",
      • "packageCode": "string",
      • "cost": 0
      }
    ]
}

Orders

The endpoints in this group facilitate the management of orders within the system. Use the endpoints in this group to:

  • Query Orders: Retrieve details of specific orders, including order status, items and receipts.
  • Edit Orders: Create new orders, cancel existing orders, and reopen previously cancelled orders.

cancel

path Parameters
sc
required
string

Responses

order

path Parameters
sc
required
string

Responses

orders_1

Request Body schema: application/json
q
string
ps
integer <int32>
pn
integer <int32>
filter
string
Enum: "IN_PROGRESS" "COMPLETED" "CANCELLED"

Responses

Request samples

Content type
application/json
{
  • "q": "string",
  • "ps": 0,
  • "pn": 0,
  • "filter": "IN_PROGRESS"
}

receipt

path Parameters
sc
required
string

Responses

reopen

path Parameters
sc
required
string

Responses

Fraud

This group consists of one endpoint which facilitates the creation of fraud cases for investigation and resolution.

createCase

Responses

API Responses

Error Codes

CodeNameDescription
0CODE_SUCCESSSuccess response
-1CODE_GENERIC_ERRORGeneric error, something went wrong. The message field should have more detail
-2CODE_INVALID_CUSTOMERCustomer is not valid. Either a bad ID, or the customer is marked inactive in the system, or something wrong with the claims
-3CODE_CANNOT_REMOVE_PASSWORD_PROVIDERReturned when someone tries to unassociate an OAuth connected account and something went wrong with the account provider's password
-4CODE_CANNOT_REMOVE_LAST_PROVIDERReturned when someone tries to unassociate an OAuth connected account and something went wrong trying to delete the last provider
-5CODE_UNABLE_TO_DELETEReturned when a completed order is being edited, but the original order could not be found to delete
-6CODE_NO_WEBPROFILEWeb Profile is not attached in the store system, contact merchant
-7CODE_NO_REMOTEReturned 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
-8CODE_INVALID_ORDERReturned when the transaction we are trying to retrieve cannot be found (such as in the cart request)
-9CODE_NO_SUCH_ORDERUnused
-10CODE_INCORRECT_CUSTOMERReturned if we detect that the tranaction we are trying to retrieve does not belong to the associated customer
-11CODE_NO_RECEIPT_PROFILEReturned from the /api/me/orders/{sc}/receipt (Generate Receipt) request if there is no receipt profile in the store system, contact merchant
-12CODE_VALIDATION_ERRORReturned if something went wrong validating the request, e.g. an empty payload is sent to /api/items/summaries
-13CODE_INVALID_EMPLOYEEReturned if an Employee is required for the last action, but is not associated
-14CODE_TWO_FACTOR_REQUIREDReturned during a customer password login if we need to collect a second factor of auth
-15CODE_DISABLED_FEATUREReturned if the last action is not enabled in the store's system, contact merchant. Can be thrown during cart, list, and order operations
-16CODE_RATE_LIMITReturned if the rate limit has been exceeded for the last action
-17CODE_TOKEN_EXPIREDReturned if user is trying to reset their password but the token they used for verification is expired
-18CODE_TOKEN_FAILURES_EXCEEDEDReturned if user is trying to reset their password but has exceeded 10 failure attempts
-19CODE_INVALID_ORDER_STATUSReturned if the user is trying to cancel or edit a completed order but the order is not cancellabled
-20CODE_ALREADY_SUBMITTEDReturned if the user is trying to "check in" but they have already submitted the form
-21CODE_FRAUD_DETECTEDReturned during cart confirmation if the merchant has fraud checking enabled and it has detected fraud
-22CODE_GIFT_CARD_PIN_REQUIREDReturned in /api/gc/{id} if the gift card we find requires a PIN, and one was not sent
-23CODE_REPLICATION_OFFLINEReturned during cart confirmation / pay now / line busting if replication is currently offline. Transaction cannot be completed right now.
-24CODE_ORDER_TYPE_REMOVEDReturned during a cart request if the provided order type is not enabled
-25CODE_INACTIVE_MEMBERReturned during customer association if the store is using Membership and the customer is marked as an inactive member
-26CODE_WEBSERVICES_OFFLINEReturned during customer association is the store is using Membership and we cannot connect to the webservices at the HQ server
-27CODE_MEMBER_PAYMENT_DUEReturned during cart confirmation if the store is using Membership and the customer owes on their dues
-28CODE_CART_OUTDATEDReturned 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
-29CODE_INSUFFICIENT_PERMISSIONSReturned when the user does not have sufficient permissions to complete the request.
-30CODE_DUPLICATE_PUSH_NOTIFICATION_TOKENReturned when attempting to save a registration token that already exists for the associated customer.
-31CODE_MAX_PUSH_NOTIFICATION_TOKENSReturned when attempting to save a customer registration token and the customer is at the registration token limit.
-32CODE_PUSH_NOTIFICATION_TOKEN_NOT_FOUNDReturned when attempting to delete a customer registration token that is not saved.
-33CODE_INVALID_DELIVERY_SETTINGSReturned when the delivery request is invalid, such as containing contactless dropoff and restricted items.
-34CODE_VERIFICATION_REQUIREDReturned when further verification is required to complete the request, such as email verification.