ECRS WebCart API (5.8.183)

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.

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.

Example User Flows

Applying Loyalty Points to a Transaction

This example demonstrates how to apply a loyalty tender to a cart and complete a transaction. Applying loyalty points requires an associated customer. Guest shoppers can use other tender types, but this example focuses on loyalty tenders. See the Authorization section for details on associating a customer

  1. Create a Cart
    Issue a request to the Sync Cart endpoint with the shopper’s items to create a cart.

  2. Select a Shipping Method
    Issue a request to the Sync Cart endpoint with the shopper’s shipping method selection. Once a shipping method is selected during the checkout process, relevant payment methods will be included in the cart response.

  3. Find Loyalty Tenders
    Inspect the response from Sync Cart endpoint to discover which loyalty tenders are applicable.

    • type: 19 indicates a loyalty payment method.
    • balance: Total balance available in the loyalty account.
    • eligible: Amount that can be applied to the current transaction (may be less than the total if some items are ineligible).
    • methodId: Required for authorizing the loyalty tender. While pmID and methodId often share the same value, only methodId should be used when authorizing loyalty tenders. Using pmId may result in incorrect behavior or failed authorization. Example response:
      { 
       "checkout": { 
      "paymentMethods": [ 
          { 
              "available": true, 
              "balance": 99, 
              "eligible": 14.05, 
              "methodId": "1000-29006", 
              "name": "Default Loyalty Method", 
              "pmId": "1000-29006", 
              "provider": "ecrs-loyalty", 
              "testing": false, 
              "type": 19 
          } 
      ] 
       } 
      } 
      
  4. Authorize Loyalty Tender
    Issue a request to the Authorize Payment endpoint with the desired amount.

  5. Find Updated Total
    Issue a request to the Get Cart endpoint to get the updated due total.

  6. Apply any additional tenders to bring the total due to zero
    Apply additional tenders as needed to cover any remaining balance. To complete the transaction, the total due must be 0.

  7. Confirm the Transaction
    Complete the transaction using one of the following methods, depending on your checkout flow:

    • Send a request to the Confirm Checkout endpoint.
      • If using the Finalize Immediately Order Type, this action completes the transaction and processes loyalty rewards—redeeming existing points and awarding new ones based on the purchase.
      • Otherwise, loyalty points will be redeemed and rewarded when the transaction is completed at the point-of-sale.
      • Once the loyalty points are redeemed, they are removed from the customer's account.
    • Send a request to the Pay Now endpoint.
      • When using accelerated checkout, this option completes the transaction immediately, bypassing the point-of-sale.
      • This action processes loyalty rewards—redeeming existing points and awarding new ones based on the purchase.
      • Once the loyalty points are redeemed, they are removed from the customer's account.
    • Send a request to the Line Bust endpoint.
      • When using accelerated checkout, this option suspends the transaction, requiring completion at the point-of-sale.
      • Loyalty points will be redeemed and rewarded when the transaction is completed at the point-of-sale.
      • Once the loyalty points are redeemed, they are removed from the customer's account.

Document Revision History


Current Revision: 5.8.183.15

Beta Releases

5.8.183.15

Revision Date

  • July 17, 2026

Breaking Changes

  • Payment Authorization

    The Authorize Payment endpoint (POST /payauth/{method}/authorize) now rejects authorization requests for credit payment methods from guest shoppers, except when using Apple Pay or Google Pay.

5.8.183.1 #### Revision Date
  • 03/20/2026
  • New

    • Authorization

      The following endpoints can now return a new.social.account alert in the response when a new customer account is created via a federated/social login:

      • Verify Customer (POST /api/auth/verify)
      • OAuth Provider Login (POST /api/auth/provider/{provider})
      • Federated Login (POST /api/auth/federatedLogin/{provider})
      • Apple Login (POST /api/auth/appleLogin)
      • Facebook Classic Login (POST /api/auth/facebookLogin)

      This alert indicates that the shopper's account was newly created using a social network provider instead of the traditional registration process. Clients can use this alert to trigger a welcome experience or prompt the shopper to complete their profile. WebCart uses this alert to support shopper onboarding with email marketing and paperless receipt preferences.

    • reCAPTCHA Source

      Two new Advanced Settings have been added to support custom reCAPTCHA site keys per source:

      • com.ecrsoft.tserver.webcart.recaptcha.siteKey.recaptchaSources - a comma-separated list of recognized recaptchaSource values.
      • com.ecrsoft.tserver.webcart.recaptcha.siteKey.<recaptchaSource> - the custom reCAPTCHA site key to use for the given <recaptchaSource> listed in the setting above.

      The following endpoints now accept a new recaptchaSource field. This field is the source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token, and is used when a custom reCAPTCHA site key is configured:

      • POST api/auth/signup
      • POST api/auth/password
      • POST api/auth/provider/{provider}
      • POST api/auth/federatedLogin/{provider}
      • POST api/auth/appleLogin
      • POST api/auth/facebookLogin
      • POST api/ca/{id}/balance
      • POST api/cms/pay/{chargeType}
      • POST api/me/wallet/addToken
      • POST api/me/wallet/addEbtToken
      • POST api/payauth/{method}/authorize
      • POST api/contact

    Fixes & Improvements

    • Documentation improvements

      • Improved clarity and completeness of the documentation for Circulars and Accelerated Checkout endpoints.
    • Account

      GET /me returns phone numbers with a new field, marketingState, that indicates the shopper's precise state in the consent flow.

    • Store

      GET /configuration return new fields that dictate verbiage for text marketing prompts.

    Fixes & Improvements

    • Documentation Improvements
      • Improved clarity and completeness of the documentation for Circulars and Accelerated Checkout endpoints.
    5.8.181.1

    Revision Date

    • 02/13/2026

    New

    • Authorization

      New endpoint - GET /api/auth/oauthCallback.html. Serves the OAuth callback HTML page used as a redirect URI to handle OAuth provider responses. This page receives the OAuth response from providers and communicates the result back to the parent window.

    Fixes & Improvements

    • Authorization

      • The following OAuth providers are no longer supported: LinkedIn, Twitter, Github, Instagram, Yahoo, and Microsoft Live.
      • A state and nonce variable must now be included in Federated and OAuth login requests.
      • A client attempting Federated Login must call the Generate Nonce endpoint prior to initiating the authorization request with the provider. The parameters returned by this endpoint must be passed to the provider in the authorization request, and passed to the WebCart API in the Federated Login endpoint.
      • The api/auth/storeNonce now accepts a stayLoggedInApple attribute in the request body. If true, a refresh token cookie will be returned when processing the request as an Apple Login
    • Payment

      The api/payauth/{method}/authorize endpoint now respects the "Require customer checkout" checkbox from the WebCart profile in Web Office. If checked, this endpoint will return a 401 Unauthorized response when called as a guest.

    • Push Notifications

      The api/push/sw.js endpoint has been changed to api/push/{platform}/sw.js where platform is either "pwa" or "non-pwa". This change is used to support better PWA push notification handling.

    5.8.180.1
    • Revision History for this document started with Revision 5.8.181. 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

    id
    required
    string

    The ID of the user to associate as.

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

    Request samples

    Content type
    application/json

    Machine Employee Login Request

    {
    • "apiKey": "AE1LMA6S012345678901234567890O0I"
    }

    Response samples

    Content type
    application/json
    {
    • "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": [
        • { }
        ]
      },
    • "closed": true,
    • "entity": { },
    • "metadata": {
      • "empty": true,
      • "property1": [
        • { }
        ],
      • "property2": [
        • { }
        ]
      },
    • "status": 0,
    • "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"
      },
    • "allowedMethods": [
      • "string"
      ],
    • "entityTag": {
      • "value": "string",
      • "weak": true
      },
    • "mediaType": {
      • "type": "string",
      • "subtype": "string",
      • "parameters": {
        • "property1": "string",
        • "property2": "string"
        },
      • "wildcardType": true,
      • "wildcardSubtype": true
      },
    • "stringHeaders": {
      • "empty": true,
      • "property1": [
        • "string"
        ],
      • "property2": [
        • "string"
        ]
      },
    • "links": [
      • {
        • "type": "string",
        • "params": {
          • "property1": "string",
          • "property2": "string"
          },
        • "title": "string",
        • "rel": "string",
        • "uriBuilder": { },
        • "rels": [
          • "string"
          ]
        }
      ]
    }

    passwordLogin_1

    Request Body schema: application/json
    account
    required
    string <= 50 characters

    The account name to log in with

    password
    required
    string

    The password to log in with

    accountId
    string

    The account id to log in with, used when multiple accounts are associated with the same login

    totp
    string

    The TOTP code to log in with, used when 2-factor authentication enabled is enabled

    scan
    boolean

    Whether the shopper is using Accelerated Checkout

    recaptcha
    string

    reCAPTCHA response token for bot & fraud prevention. Required if reCAPTCHA is enabled for the Login scenario.

    recaptchaSource
    string

    The source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token. This is used when a custom reCAPTCHA site key is configured.

    Responses

    Request samples

    Content type
    application/json
    {
    • "account": "johndoe@email.com",
    • "password": "password123",
    • "accountId": "1000-1",
    • "totp": "123456",
    • "scan": true,
    • "recaptcha": "03AGdBq24sdfkjsadf...",
    • "recaptchaSource": "iOS"
    }

    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 and generate a service worker for Web Push. This includes methods to subscribe or unsubscribe registration tokens to specific topics. Customer association is required for all methods relating to registration tokens.

    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 listed in the topics field are stored for reference but will not trigger subscription to corresponding FCM topics at this time.

    registrationToken
    required
    string

    The user's FCM registration token.

    created
    string

    Zoned timestamp (ISO 8601 format) representing when the token was created or last used. If omitted, the current server time will be applied.

    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"
      ]
    }

    Get service worker JavaScript file

    Returns the Firebase-compatible service worker JavaScript file used for handling Web Push notifications. The response includes the Service-Worker-Allowed: / header to enable control over the full origin. Return type is application/javascript.

    path Parameters
    platform
    required
    string

    Responses

    Authorization

    The Authorization endpoints provide comprehensive control over login authorization, allowing you to manage various aspects of user authentication and session management.
    Use these endpoints to control how users can:

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


    Claims information:
    WebCart sessions are persisted using cookies in the form of a JWT token. When an action requires the cookie to be updated, the response will contain two headers:

    • flag-set-cookie: A flag set to 1 when the cookie has changed.
    • set-cookie: Contains a copy of the new cookie with the JWT token filled with claims information.
      The cookie is HttpOnly. If it is necessary to access to the claims from JavaScript, a copy of the claims in the cookie can be retrieved at any time from the Get Customer Claims endpoint. When the flag-set-cookie header appears, it is best practice to pull the new claims and update any relevant client-side values.

    Possible JWT claims include:

    • "disp": Display name.
    • "num": Customer number.
    • "emp": Employee claim.
    • "emn": Employee name associated with the claim.
    • "pl": Price level of the claim.
    • "pf": Customer power field of the claim.
    • "lym": Loyalty multiplier of the claim.
    • "cart": Active cart ID in cpk-pk format.
    • "ordertype": Order type of the claim in cpk-pk format.
    • "cart-ot-": Cart order type in cpk-pk format appended to the field, with the value being the cart cpk-pk (e.g., ["cart-ot-1000-4": "0-6374"]).
    • "home": Home store.
    • "ep": Boolean indicating whether an email is provided.
    • "spp": Special pricing claim.
    • "tpr": Timeout period.
    • "dispShort": Nickname if provided, otherwise first name, or account number if neither exist.
    • "scango": Boolean indicating whether the user is in Accelerated Checkout mode. Refer to Accelerated Checkout
    • "macc": Boolean indicating whether the JWT is for a machine account.
    • "fi": Fraud iterator (deprecated).
    • "iss": Issuer (always "com.ecrs.ecat").

    OAuth Login

    To authenticate with Third Party OAuth and obtain a Refresh Token, see the OAuth Provider Login endpoint.

    Apple Login

    Log in via Apple federated login. Intended to be used as the redirect URI for Apple Sign In flow, otherwise behaves similarly to the other Federated Login endpoints.
    Requires the generation and storage of a nonce and state variable prior to redirecting to Apple's authorization endpoint.
    The frontend must call the Generate Nonce endpoint to generate and store the nonce with a unique state identifier prior to starting the authorization request.
    If a new customer account is created via social/federated login, the response includes an alert with code new.social.account.

    Request Body schema: application/x-www-form-urlencoded
    code
    required
    string

    Authorization code from Apple

    user
    string

    User information in JSON format from Apple

    state
    required
    string

    State parameter from Apple

    error
    string

    Error message from Apple, if any

    Responses

    Response Schema: text/html
    string

    Authenticate Using a Refresh Token

    Attempts to authenticate a shopper using a Refresh Token.
    The request has no body. The Refresh Token is provided by the cookie produced by the OAuth Provider Login endpoint.Because the cookie is HttpOnly, this endpoint is typically called unconditionally at application startup. Otherwise, it may be called as needed, up to the rate limit of 10 / hour.

    Responses

    Check Two-Factor Authentication Status

    Checks if the authenticated customer has two-factor authentication (2FA) enabled on their account

    Responses

    Response Schema: application/json
    setup
    boolean

    Flag indicating if two-factor authentication is set up for this customer

    Response samples

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

    Clear TOTP Setup

    Removes the Time-based One-Time Password (TOTP) setup from the authenticated customer's account, disabling two-factor authentication

    Responses

    Response Schema: application/json
    setup
    boolean

    Flag indicating if two-factor authentication is set up for this customer

    Response samples

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

    Confirm TOTP Code

    Validates a Time-based One-Time Password (TOTP) code against the provided secret and sets up two-factor authentication for the authenticated customer

    Request Body schema: application/json
    secret
    required
    string

    Secret used to generate the TOTP code

    code
    required
    string

    TOTP code to confirm

    Responses

    Response Schema: application/json
    setup
    boolean

    Flag indicating if two-factor authentication is set up for this customer

    Request samples

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

    Response samples

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

    Email TOTP Code

    Sends a time-based one-time password (TOTP) to the customer's email address for use with two-factor authentication. This TOTP is valid for 4 minutes.

    Request Body schema: application/json
    id
    required
    string

    Customer ID

    Responses

    Request samples

    Content type
    application/json
    {
    • "id": "1000-1"
    }

    Facebook Classic Login

    When using the Facebook Classic Login, customers can log in using their Facebook user access token. However, there is a known issue that affects some users.

    Known Issue:

    • Problem: If a Facebook account was created using a phone number, it cannot return an email address when queried. Since WebCart requires an email to create an account, customers with a phone number as their primary contact will fail to log in.
    • Cause: This issue is caused by a bug in the Facebook GraphQL code.
    • Resolution:
      1. Remove the phone number from the shopper's Facebook account settings.
      2. Re-add the phone number and ensure the primary contact method is set to an email address.

    If a new customer account is created through social/federated login, the response will include an alert with the code new.social.account.

    Request Body schema: application/json
    token
    string

    Facebook access token acquired after completing an OAuth sign in through Facebook's SDK or generated through the Facebook developer graphQL portal.

    recaptcha
    string

    reCAPTCHA response token for bot & fraud prevention. Required if reCAPTCHA is enabled for the Login scenario.

    recaptchaSource
    string

    The source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token. This is used when a custom reCAPTCHA site key is configured.

    loginOnly
    boolean
    Default: false

    If true, only perform login and do not create a new account if one does not already exist.

    Responses

    Request samples

    Content type
    application/json
    {
    • "token": "EAAIZAse1BrloBOxiUDdFPJOHMpjTmQBjzSarihir3BKC1fpUPRyAgP3kq8kZC5EuajTad2Gik4oqkiRjy8h8AM3X8z902Enk65qykR2ZAH99ZCx4sxigZA7Dws9Qo51WBiaZBQHfgTXpjDGUVlsAZBr0XCR1WRrxrmKYH6Tz9FyAIgllrVor3V3qJDGMqgL4ZBLK5TDZCwNPEyKVC0XjfsM2zBmABbgrENhBYir1voLYSWmZCJ65UuaZA6itU6gnD7aYb8ZD",
    • "recaptcha": "03AGdBq24sdfkjsadf...",
    • "recaptchaSource": "iOS",
    • "loginOnly": false
    }

    Federated Login

    Customers can log in using federated authentication. This method of authentication expects a JSON Web Token (JWT) signed by a federated identity provider.
    State and Nonce: The Generate Nonce endpoint must be called prior to initiating the authorization request, and the same state and nonce must be sent in this request. Token Information: This authentication JWT is often referred to as the "ID Token" in the providers' documentation.

    Supported Providers

    • Google
    • Facebook
    • Apple

    Behavior

    • 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, these fields 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 Customer endpoint should be called to complete the registration process.
      If a new customer account is created via social/federated login, the response includes an alert with code new.social.account.
    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

    state
    required
    string

    OAuth 2.0 state parameter used to maintain the session between request and callback. This must match the state provided in the Generate Nonce endpoint.

    nonce
    required
    string

    A client-side generated random nonce to be validated against the ID Token. The ID token must contain this nonce, and it must match the nonce provided in the Generate Nonce endpoint.

    recaptcha
    string

    reCAPTCHA response token for bot & fraud prevention. Required if reCAPTCHA is enabled for the Login scenario.

    recaptchaSource
    string

    The source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token. This is used when a custom reCAPTCHA site key is configured.

    loginOnly
    boolean
    Default: false

    If true, only perform login and do not create a new account if one does not already exist.

    Responses

    Request samples

    Content type
    application/json
    {
    • "idToken": "xxxxx.yyyyy.zzzzz",
    • "firstName": "John",
    • "lastName": "Smith",
    • "email": "jsmith@email.com",
    • "phone": "1234567890",
    • "scan": false,
    • "state": "xyzABC123",
    • "nonce": "a1b2c",
    • "recaptcha": "03AGdBq24sdfkjsadf...",
    • "recaptchaSource": "iOS",
    • "loginOnly": false
    }

    Generate Nonce

    Generate state and nonce parameters for Federated Sign In (e.g. Apple) prior to redirecting to the authorization endpoint.
    The frontend should call this endpoint, then include the returned state and nonce in the authorization request to the OAuth provider.
    The state and nonce must also be provided in the login endpoint.

    path Parameters
    provider
    required
    string
    Enum: "facebook" "google" "apple"

    OAuth provider name

    Request Body schema: application/json
    recaptcha
    string

    reCAPTCHA response token for bot & fraud prevention. Required if reCAPTCHA is enabled for the Login scenario.

    recaptchaSource
    string

    The source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token. This is used when a custom reCAPTCHA site key is configured.

    loginOnly
    boolean
    Default: false

    If true, only perform login and do not create a new account if one does not already exist.

    stayLoggedInApple
    boolean
    Default: false

    If true, a refresh token cookie will be returned when processing the request as an Apple Login

    Responses

    Request samples

    Content type
    application/json
    {
    • "recaptcha": "03AGdBq24sdfkjsadf...",
    • "recaptchaSource": "iOS",
    • "loginOnly": false,
    • "stayLoggedInApple": false
    }

    Generate TOTP Secret

    Generates a new Time-based One-Time Password (TOTP) secret for the authenticated customer. This endpoint returns both the secret and a URL that can be used with authenticator apps.

    Responses

    Response Schema: application/json
    secret
    string

    Secret used to generate the TOTP code

    secretUrl
    string

    URL used to generate the TOTP code

    Response samples

    Content type
    application/json
    {
    • "secret": "JBSWY3DPEHPK3PXP",
    • "secretUrl": "otpauth://totp/Terminal:customer@store?secret"
    }

    Set Home Store

    Sets the user's home store preference and stores it in the store cookie

    Request Body schema: application/json
    home
    string

    The ID of the store to become the home store.

    Responses

    Request samples

    Content type
    application/json
    {
    • "home": "1000-3"
    }

    Invalidate All Sessions

    Invalidates all of the shopper's session tokens on all devices, including the device making the call.

    Responses

    Logout

    Logs out the current user by clearing customer and employee claims from the session

    Responses

    OAuth Callback Page

    Serves the OAuth callback HTML page used as a redirect URI to handle OAuth provider responses. This page receives the OAuth response from providers and communicates the result back to the parent window.

    Responses

    Response Schema: text/html
    string

    OAuth Provider Login

    Authenticates a customer using supported OAuth providers including Facebook and Google.
    The Generate Nonce endpoint must be called prior to initiating the authorization request, and the same state and nonce must be sent in this request.
    If the code produced by the third party returns a Refresh Token, it will be returned in a Set-Cookie header with the name oauth-refresh-token. Clients must respect the cookie's expiration.
    Consult the OAuth provider's documentation to learn how to request a Refresh Token.
    Some providers do not support Refresh Tokens, but allow long-lived Access Tokens to be used as a Refresh Token. For these providers, if supported, a body parameter is available that will instruct WebCart to use the Access Token as a Refresh Token.
    Email verification may be required. If the shopper's email address is not verified, WebCart will return code -34 along with a UUID for verification. The Verify Customer endpoint should be called to complete the registration process.
    If a new customer account is created via social/federated login, the response includes an alert with code new.social.account.

    path Parameters
    provider
    required
    string
    Enum: "facebook" "google"

    OAuth provider name

    Request Body schema: application/json
    redirectUri
    required
    string

    URI to redirect to after authentication

    clientId
    required
    string

    OAuth 2.0 client identifier

    code
    required
    string

    OAuth 2.0 authorization code received from the authorization server

    state
    required
    string

    OAuth 2.0 state parameter used to maintain the session between request and callback. This must match the state provided in the Generate Nonce endpoint.

    nonce
    required
    string

    A client-side generated random nonce to be validated against the ID Token. The ID token must contain this nonce, and it must match the nonce provided in the Generate Nonce endpoint.

    stayLoggedInFacebook
    boolean
    Default: false

    Indicates whether WebCart should return the Access Token in the Refresh Token cookie. Facebook's Access Tokens are long-lived by default and Facebook does not support any specific "Refresh Token".

    error
    string

    Error message returned by the authorization server

    scan
    boolean
    Default: false

    Indicates whether the logging in customer is in Accelerated Checkout mode

    recaptcha
    string

    reCAPTCHA response token for bot & fraud prevention. Required if reCAPTCHA is enabled for the Login scenario.

    recaptchaSource
    string

    The source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token. This is used when a custom reCAPTCHA site key is configured.

    loginOnly
    boolean
    Default: false

    If true, only perform login and do not create a new account if one does not already exist.

    oauth_token
    string
    Deprecated

    OAuth 1.0 request token received from the authorization server

    oauth_verifier
    string
    Deprecated

    OAuth 1.0 verifier code used to exchange for an access token

    Responses

    Request samples

    Content type
    application/json
    {
    • "clientId": "client_12345",
    • "code": "4/P7q7W91a-oMsCeLvIaQm6bTrgtp7",
    • "state": "xyzABC123",
    • "nonce": "a1b2c",
    • "stayLoggedInFacebook": false,
    • "error": "access_denied",
    • "scan": false,
    • "recaptcha": "03AGdBq24sdfkjsadf...",
    • "recaptchaSource": "iOS",
    • "loginOnly": false,
    • "oauth_token": "abc123xyz456",
    • "oauth_verifier": "z9y8x7"
    }

    Password Login

    Authenticates a customer using their username/email and password credentials.
    It is possible that multiple customers exist with the same username and password, for which this endpoint will return a list of customer objects for the customer to select from.
    If the customer has 2-factor authentication enabled, a 200 response will be returned with a code of -14 and the customer object.

    Request Body schema: application/json
    account
    required
    string <= 50 characters

    The account name to log in with

    password
    required
    string

    The password to log in with

    accountId
    string

    The account id to log in with, used when multiple accounts are associated with the same login

    totp
    string

    The TOTP code to log in with, used when 2-factor authentication enabled is enabled

    scan
    boolean

    Whether the shopper is using Accelerated Checkout

    recaptcha
    string

    reCAPTCHA response token for bot & fraud prevention. Required if reCAPTCHA is enabled for the Login scenario.

    recaptchaSource
    string

    The source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token. This is used when a custom reCAPTCHA site key is configured.

    Responses

    Response Schema: application/json
    id
    string

    The ID of the customer.

    accountNumber
    string

    The account number of the customer.

    displayName
    string

    The display name of the customer.

    Request samples

    Content type
    application/json
    {
    • "account": "johndoe@email.com",
    • "password": "password123",
    • "accountId": "1000-1",
    • "totp": "123456",
    • "scan": true,
    • "recaptcha": "03AGdBq24sdfkjsadf...",
    • "recaptchaSource": "iOS"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "1000-3",
    • "accountNumber": "123456789",
    • "displayName": "John Doe"
    }

    Request Customer Account Removal

    Informs the merchant that the customer would like their account removed both in-store and online.
    This will send an email to the store's employee email addresses requesting account removal.

    Responses

    Resend Verification Code

    Resends a verification code to a customer who is in the process of registering

    Request Body schema: application/json
    key
    required
    string

    Verification key identifier

    scan
    boolean
    Default: false

    Flag indicating if the shopper is in Accelerated Checkout mode

    Responses

    Response Schema: application/json
    string

    New verification UUID

    Request samples

    Content type
    application/json
    {
    • "key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    • "scan": false
    }

    Response samples

    Content type
    application/json
    "a567c10b-58cc-4372-a567-0e02b2c3c10b"

    Sign Up

    Handles submission of the signup form for a registering user.
    A 6-digit code will be emailed to the registering user and a verified UUID will be returned upon successful registration. The Verify Customer endpoint should be called to complete the registration process.

    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. A valid password must contain a capital letter, a lowercase letter, a number, and a symbol.

    recaptcha
    string

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

    recaptchaSource
    string

    The source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token. This is used when a custom reCAPTCHA site key is configured.

    marketing
    boolean

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

    smsMarketing
    boolean

    Indicates whether the registering customer is opting in to marketing texts/SMS

    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

    Verification UUID

    Request samples

    Content type
    application/json
    {
    • "firstName": "string",
    • "lastName": "string",
    • "email": "string",
    • "phone": "stringstri",
    • "password": "stringst",
    • "recaptcha": "string",
    • "recaptchaSource": "iOS",
    • "marketing": true,
    • "smsMarketing": true,
    • "receipts": true,
    • "scan": true,
    • "boardingProfile": {
      • "accountNumber": "WB24XVXCXIBY3ZH3",
      • "firstName": {
        • "name": "firstName",
        • "option": "REQUIRED",
        • "value": "John",
        • "length": 25
        },
      • "middleName": {
        • "name": "middleName",
        • "option": "OPTIONAL",
        • "value": "Michael",
        • "length": 25
        },
      • "lastName": {
        • "name": "lastName",
        • "option": "REQUIRED",
        • "value": "Doe",
        • "length": 25
        },
      • "nickName": {
        • "name": "nickName",
        • "option": "OPTIONAL",
        • "value": "Johnny",
        • "length": 25
        },
      • "prefix": {
        • "name": "prefix",
        • "option": "OPTIONAL",
        • "value": "1000-16",
        • "options": [
          • {
            • "id": "1000-16",
            • "description": "Mr."
            },
          • {
            • "id": "1000-17",
            • "description": "Ms."
            },
          • {
            • "id": "1000-18",
            • "description": "Mrs."
            },
          • {
            • "id": "1000-19",
            • "description": "unknown"
            }
          ]
        },
      • "suffix": {
        • "name": "suffix",
        • "option": "OPTIONAL",
        • "value": "1000-19",
        • "options": [
          • {
            • "id": "1000-16",
            • "description": "Jr."
            },
          • {
            • "id": "1000-19",
            • "description": "Sr."
            }
          ]
        },
      • "company": "{\n \"name\": \"company\",\n \"option\": \"OPTIONAL\",\n \"value\": ECRS,\n \"length\": 50\n}",
      • "title": "{\n \"name\": \"title\",\n \"option\": \"OPTIONAL\",\n \"value\": Technical Writer,\n \"length\": 25\n}",
      • "suppressReceipt": {
        • "name": "suppressReceipt",
        • "option": "OPTIONAL",
        • "value": false
        },
      • "birthDate": {
        • "name": "birthDate",
        • "option": "OPTIONAL",
        • "value": "1995-05-04"
        },
      • "pf1": {
        • "name": "Configured PowerField 1 Name",
        • "option": "OPTIONAL",
        • "value": "1000-7263",
        • "options": [
          • {
            • "id": "1000-7263",
            • "description": "Option 1"
            },
          • {
            • "id": "1000-7268",
            • "description": "Option 2"
            }
          ]
        },
      • "pf2": {
        • "name": "Configured PowerField 2 Name",
        • "option": "OPTIONAL",
        • "value": "1000-7263",
        • "options": [
          • {
            • "id": "1000-7263",
            • "description": "Option 1"
            },
          • {
            • "id": "1000-7268",
            • "description": "Option 2"
            }
          ]
        },
      • "pf3": {
        • "name": "Configured PowerField 3 Name",
        • "option": "OPTIONAL",
        • "value": "1000-7263",
        • "options": [
          • {
            • "id": "1000-7263",
            • "description": "Option 1"
            },
          • {
            • "id": "1000-7268",
            • "description": "Option 2"
            }
          ]
        },
      • "pf4": {
        • "name": "Configured PowerField 4 Name",
        • "option": "OPTIONAL",
        • "value": "1000-7263",
        • "options": [
          • {
            • "id": "1000-7263",
            • "description": "Option 1"
            },
          • {
            • "id": "1000-7268",
            • "description": "Option 2"
            }
          ]
        },
      • "pf5": {
        • "name": "Configured PowerField 5 Name",
        • "option": "OPTIONAL",
        • "value": "FOO",
        • "length": 30
        },
      • "pf6": {
        • "name": "Configured PowerField 6 Name",
        • "option": "OPTIONAL",
        • "value": "FOO",
        • "length": 30
        },
      • "pf7": {
        • "name": "Configured PowerField 7 Name",
        • "option": "OPTIONAL",
        • "value": "FOO",
        • "length": 30
        },
      • "pf8": {
        • "name": "Configured PowerField 8 Name",
        • "option": "OPTIONAL",
        • "value": "FOO",
        • "length": 30
        },
      • "phones": [
        • {
          • "id": "1000-39172",
          • "name": "Web",
          • "phone": {
            • "name": "phone",
            • "option": "OPTIONAL",
            • "value": "(333) 999-0000",
            • "length": 14
            },
          • "shipToPhone": {
            • "name": "phoneShipping",
            • "option": "OPTIONAL",
            • "value": false
            },
          • "shipToFax": {
            • "name": "faxShipping",
            • "option": "OPTIONAL",
            • "value": false
            },
          • "billToPhone": {
            • "name": "phoneBilling",
            • "option": "OPTIONAL",
            • "value": false
            },
          • "billToFax": {
            • "name": "faxBilling",
            • "option": "OPTIONAL",
            • "value": false
            },
          • "did": "1000-9563",
          • "marketingState": "NOT_OPTED_IN"
          },
        • {
          • "id": "1000-105285",
          • "name": "Personal",
          • "phone": {
            • "name": "phone",
            • "option": "REQUIRED",
            • "value": "3332221111",
            • "length": 14
            },
          • "did": "1000-7280"
          }
        ],
      • "emails": [
        • {
          • "id": "1000-44090",
          • "name": "Web",
          • "email": {
            • "name": "email",
            • "option": "OPTIONAL",
            • "value": "johndoe@ecrs.com"
            },
          • "ereceipt": null,
          • "did": "1000-11"
          },
        • {
          • "id": "1000-51792",
          • "name": "E-Mail",
          • "email": {
            • "name": "email",
            • "option": "OPTIONAL",
            • "value": "johndoe@ecrs.com"
            },
          • "billTo": {
            • "name": "emailBilling",
            • "option": "OPTIONAL",
            • "value": false
            },
          • "shipTo": {
            • "name": "emailShipping",
            • "option": "OPTIONAL",
            • "value": false
            },
          • "marketing": {
            • "name": "emailMarketing",
            • "option": "REQUIRED",
            • "value": false
            },
          • "ereceipt": {
            • "name": "emailReceipt",
            • "option": "REQUIRED",
            • "value": true
            },
          • "did": "1000-7247",
          • "eReceipt": {
            • "name": "emailReceipt",
            • "option": "REQUIRED",
            • "value": true
            }
          }
        ],
      • "addresses": [
        • {
          • "id": "1000-57638",
          • "name": "Home Address",
          • "street1": {
            • "name": "street1",
            • "option": "OPTIONAL",
            • "value": "277 Howard St.",
            • "length": 30
            },
          • "street2": {
            • "name": "street2",
            • "option": "OPTIONAL",
            • "value": "",
            • "length": 30
            },
          • "city": {
            • "name": "city",
            • "option": "OPTIONAL",
            • "value": "Boone",
            • "length": 20
            },
          • "state": {
            • "name": "state",
            • "option": "OPTIONAL",
            • "value": "NC",
            • "length": 2
            },
          • "postal": {
            • "name": "postal",
            • "option": "OPTIONAL",
            • "value": "28607",
            • "length": 15
            },
          • "country": {
            • "name": "country",
            • "option": "OPTIONAL",
            • "value": "US",
            • "length": 4
            },
          • "shipTo": {
            • "name": "addressShipping",
            • "option": "OPTIONAL",
            • "value": true
            },
          • "billTo": {
            • "name": "addressBilling",
            • "option": "OPTIONAL",
            • "value": false
            },
          • "did": "1000-4"
          }
        ]
      }
    }

    Response samples

    Content type
    application/json
    "a567c10b-58cc-4372-a567-0e02b2c3c10b"

    Verify Customer

    Verifies changes to a customer account using a verification code, including new account creation. If an account is created through social/federated login, the response includes an alert with the code new.social.account.

    Request Body schema: application/json
    key
    required
    string

    The key (UUID) returned by the initial Forgot Password request.

    code
    required
    string

    The verification code the shopper received.

    Responses

    Request samples

    Content type
    application/json
    {
    • "key": "2aa895da-2c0c-4bfc-a682-082b80eb91e2",
    • "code": "735412"
    }

    Verify Email

    Safely edits a shopper's email address.

    If adding a new email address, a verification email will be sent to that address. Prompt the shopper to enter the verification code and submit it with the UUID to the Verify Customer endpoint. If the email address is already attached to the shopper under a different description, no verificationis required. If the email address is null or empty, it will be removed from the description if possible.

    Request Body schema: application/json
    descriptionId
    required
    string

    The ID of the email description to edit.

    email
    string

    The new email address. Omit to delete.

    Responses

    Response Schema: application/json
    Any of
    type
    required
    string
    Enum: "VERIFICATION_EMAIL_SENT" "NO_VERIFICATION_REQUIRED" "SUCCESSFULLY_DELETED"

    The type of success.

    "VERIFICATION_EMAIL_SENT" if the address needs verification.

    "NO_VERIFICATION_REQUIRED" if the address does not need verification (because it is already on the shopper's record).

    "SUCCESSFULLY_DELETED" if the address was successfully deleted.

    key
    required
    string

    The key (UUID) associated with this verification request. Submit it with the code the shopper received to the Verify Customer endpoint to add the email to the shopper's record.

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

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

    message
    required
    string

    Summary of the error.

    Request samples

    Content type
    application/json
    {
    • "descriptionId": "1000-7",
    • "email": "user@mail.com"
    }

    Response samples

    Content type
    application/json
    Example

    Returned when verification is required.

    {
    • "type": "VERIFICATION_EMAIL_SENT",
    • "uuid": "550e8400-e29b-41d4-a716-446655440000"
    }

    Password Reset

    The endpoints in this group allow shoppers to reset their passwords. Here is an overview of the steps involved.

    1. Obtain a key (UUID) by calling the Forgot Password endpoint. This will send a verification code to the shopper by email, text, or call.
    2. When the shopper enters the verification code, submit both the code and the key to the Verify Shopper endpoint to receive a reset token.
      • If multiple matching accounts are found, prompt the shopper to select an account and submit the code, key, and user ID to Verify Selected Account. This situation is uncommon, and the verification code is only valid for a single account, so this does not permit changing the password for an account the shopper does not control.
    3. Before prompting the shopper to enter a new password, validate the reset token with the Validate Token endpoint to ensure it has not expired.
    4. Submit the new password and reset token to the Reset Password endpoint to change the 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 Password

    Creates a password reset token and contacts a shopper with a verification code to reset their password.

    Request Body schema: application/json
    contact
    required
    string

    The email address or phone number to contact the shopper for password reset. If method is EMAIL, this must be an email address. If it is TEXT or CALL, this must be a phone number.

    method
    required
    string
    Enum: "EMAIL" "TEXT" "CALL"

    How to contact the shopper with the verification code.

    Responses

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

    A key (UUID) that identifies the newly created reset token. This must be used with the shopper's code to complete verification in Verify Shopper.

    Response Schema: application/json
    code
    required
    integer <int32>
    Value: -1
    message
    required
    string
    Value: "Customer Password Recovery Not Allowed from your network({IP_ADDRESS})."

    Request samples

    Content type
    application/json
    {
    • "contact": "jsmith@mail.com",
    • "method": "EMAIL"
    }

    Response samples

    Content type
    application/json
    {
    • "code": 0,
    • "message": "Success",
    • "data": "2aa895da-2c0c-4bfc-a682-082b80eb91e2"
    }

    Validate Token

    Checks if a given token is valid. Useful to reject a reset attempt before the shopper creates a new password. A token can be obtained by calling the Verify Shopper endpoint.

    path Parameters
    token
    required
    string

    The reset token to validate.

    Responses

    Response Schema: application/json
    code
    required
    integer <int32>
    Value: 0
    message
    required
    string
    Value: "Success"
    data
    required
    string
    Enum: "VERIFICATION_CODE" "PASSWORD_RESET" "REMEMBER_ME" "CHECKIN"

    The type of the token. "VERIFICATION_CODE": Used to verify new shopper accounts. "PASSWORD_RESET": Used to reset a shopper's password. "REMEMBER_ME": Unused "CHECKIN": Unused.

    Response Schema: application/json
    code
    required
    integer <int32>
    Value: -1
    message
    required
    string
    Value: "Token is no longer valid."

    Response samples

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

    Reset Password

    Resets a shopper's password using a reset token. A token can be obtained by calling the Verify Shopper endpoint.

    path Parameters
    token
    required
    string

    The reset token to use.

    Request Body schema: application/json
    password
    required
    string [ 8 .. 255 ] characters

    The new password to set. A valid password must contain a capital letter, a lowercase letter, a number, and a symbol.

    Responses

    Response Schema: application/json
    code
    required
    integer <int32>
    Value: -1
    message
    required
    string
    Value: "Customer Password Recovery Not Allowed from your network({IP_ADDRESS})."

    Request samples

    Content type
    application/json
    {
    • "password": "Password123!"
    }

    Response samples

    Content type
    application/json
    {
    • "code": -1,
    • "message": "Customer Password Recovery Not Allowed from your network({IP_ADDRESS})."
    }

    Verify Shopper

    Gets the reset token corresponding to a key (UUID) if the verification code is valid. A key can be obtained by calling the Forgot Password endpoint. If there is exactly one account that matches the given key, the token is returned directly. In rare cases, the key may match multiple accounts. If this happens, a list of matching accounts is returned. Verification must be completed with the Verify Selected Account endpoint.

    Request Body schema: application/json
    key
    required
    string

    The key (UUID) returned by the initial Forgot Password request.

    code
    required
    string

    The verification code the shopper received.

    Responses

    Response Schema: application/json
    One of
    code
    required
    integer <int32>
    Value: 0
    message
    required
    string
    Value: "Success"
    data
    required
    string

    Reset token.

    Request samples

    Content type
    application/json
    {
    • "key": "2aa895da-2c0c-4bfc-a682-082b80eb91e2",
    • "code": "735412"
    }

    Response samples

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

    Verify Selected Account

    Gets the reset token corresponding to a key and specific account if the verification code is valid. Use only if multiple accounts matched a key when calling the Verify Shopper endpoint.

    path Parameters
    account
    required
    string

    The ID of the account to verify.

    Request Body schema: application/json
    key
    required
    string

    The key (UUID) returned by the initial Forgot Password request.

    code
    required
    string

    The verification code the shopper received.

    Responses

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

    Reset token.

    Request samples

    Content type
    application/json
    {
    • "key": "2aa895da-2c0c-4bfc-a682-082b80eb91e2",
    • "code": "735412"
    }

    Response samples

    Content type
    application/json
    {
    • "code": 0,
    • "message": "Success",
    • "data": "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)

    Item Group Menu associated with this order type

    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. Controlled by the "Footer Text" field in the WebCart Profile page in Web Office. If not set, a default statement is provided.

    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.

    showSocialMarketingPreferencesModal
    boolean

    Indicates whether the shopper should be shown a modal prompting them to opt into marketing preferences when they register for an account using social/federated login.

    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)

    Gift card profile configuration used for e-gift card purchasing and redemption.

    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
    textMarketingOptInKeyword
    string

    The keyword shoppers are expected to use to opt in to text marketing

    textMarketingOptInPhoneNumber
    string

    The phone number shoppers are expected to reply to when opting in to text marketing

    textMarketingOptOutKeyword
    string

    The keyword shoppers are expected to use to opt out of text marketing

    textMarketingOptOutPhoneNumber
    string

    The phone number shoppers are expected to reply to when opt out of text marketing

    textMarketingUnOptOutKeyword
    string

    The keyword shoppers are expected to use to opt back into text marketing after opting out

    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

    payNowEnabled
    boolean
    lineBustEnabled
    boolean
    payNowTotalLimit
    number
    payNowItemCountLimit
    integer <int32>
    recommendationsEnabled
    boolean
    homepageRecommendationsEnabled
    boolean
    couponRecommendationsEnabled
    boolean
    onSaleRecommendationsEnabled
    boolean
    scanAndGoEnabled
    boolean
    scanTimeout
    integer <int32>
    webCartPriceLevel
    integer <int32>
    placeholderImage
    string
    i18nEnabled
    boolean
    i18nLanguage
    Array of strings
    cdn
    string
    googleMapsApiKey
    string
    googleMapsStrictAddressCheck
    boolean
    googleAnalyticsId
    string
    facebookPixelId
    string
    signifydKey
    string
    redPepperClientId
    integer <int32>
    redPepperUrl
    string
    redPepperHideInStoryOnlyItems
    boolean
    includeCircularLinkInMenu
    boolean
    circularLinkText
    string
    publicVapidKey
    string

    Public VAPID key used for authenticating Web Push notifications. Configured with the Firebase Cloud Messaging "vapidKey" Third Party Service Profile Setting. Only included if configured and push notifications are enabled.

    webPushConfig
    string

    JSON object containing Firebase Web Push configuration used by the client to initialize push notification support. Configured with the Firebase Cloud Messaging "webConfig" Third Party Service Profile Setting. Only included if configured and push notifications are enabled.

    enabledPlatforms
    Array of strings
    Default: ["WEB","IOS","ANDROID"]
    Items Enum: "WEB" "IOS" "ANDROID"

    List of platform identifiers for which push notifications are enabled. This may be a subset of supported platforms. Configured with the Firebase Cloud Messaging "enabledPlatforms" Third Party Service Profile Setting. Only included if push notifications are enabled.

    clientTokenRefreshDuration
    integer <int32> >= 0
    Default: 7

    Number of days before a client’s FCM push subscription token becomes eligible for refresh. Configured with the Firebase Cloud Messaging "clientTokenRefreshDuration" Third Party Service Profile Setting. Only included if push notifications are enabled.

    pushNotificationServerTokenExpiration
    integer <int32>
    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

    allowFederatedLogin
    boolean
    Default: false

    Controls whether shoppers see the option to login using a federated identity provider such as Google or Facebook Controlled by Advanced Setting com.ecrsoft.tserver.webcart.login.federatedLogin.enabled

    recaptchaKey
    string

    reCAPTCHA Site Key used for client-side reCAPTCHA integration.

    object

    Map of custom, named reCAPTCHA site keys, if any.

    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": "string",
          • "name": "string",
          • "street1": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postal": "string",
          • "country": "string",
          • "shipTo": true,
          • "billTo": true,
          • "location": true,
          • "webcart": true,
          • "did": "string"
          }
        ],
      • "emails": [
        • {
          • "id": "string",
          • "name": "string",
          • "email": "string",
          • "billTo": true,
          • "shipTo": true,
          • "marketing": true,
          • "location": true,
          • "webcart": true,
          • "did": "string",
          • "ereceipt": true
          }
        ],
      • "phones": [
        • {
          • "id": "string",
          • "name": "string",
          • "phone": "string",
          • "billToPhone": true,
          • "billToFax": true,
          • "shipToPhone": true,
          • "shipToFax": true,
          • "fax": true,
          • "locationPhone": true,
          • "locationFax": true,
          • "webcartPhone": true,
          • "did": "string"
          }
        ],
      • "faxes": [
        • {
          • "id": "string",
          • "name": "string",
          • "phone": "string",
          • "billToPhone": true,
          • "billToFax": true,
          • "shipToPhone": true,
          • "shipToFax": true,
          • "fax": true,
          • "locationPhone": true,
          • "locationFax": true,
          • "webcartPhone": true,
          • "did": "string"
          }
        ]
      },
    • "webAppManifest": {},
    • "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,
    • "showSocialMarketingPreferencesModal": true,
    • "customerCardEnabled": true,
    • "allowEditOrder": true,
    • "pwaEnabled": true,
    • "loyaltyName": "Healthy Rewards",
    • "loyaltyDecimal": true,
    • "allowGiftCardCheck": true,
    • "allowEGiftCards": true,
    • "giftCardProfile": {
      • "policy": "string",
      • "minCardValue": 0,
      • "maxCardValue": 0,
      • "designs": [
        • {
          • "id": "string",
          • "image": "string"
          }
        ],
      • "egiftCardAmounts": [
        • 0
        ],
      • "egiftCardCustomAmount": true
      },
    • "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",
    • "textMarketingOptInKeyword": "string",
    • "textMarketingOptInPhoneNumber": "string",
    • "textMarketingOptOutKeyword": "string",
    • "textMarketingOptOutPhoneNumber": "string",
    • "textMarketingUnOptOutKeyword": "string",
    • "allowSpecialOrder": true,
    • "deliveryNotificationsDefaultToOff": true,
    • "preventOfflineCheckout": true,
    • "cmsEnabled": true,
    • "googlePayEnabled": true,
    • "storeBillingName": "string",
    • "applePayEnabled": true,
    • "applePayMerchantIdentifier": "string",
    • "payNowEnabled": true,
    • "lineBustEnabled": true,
    • "payNowTotalLimit": 0,
    • "payNowItemCountLimit": 0,
    • "recommendationsEnabled": true,
    • "homepageRecommendationsEnabled": true,
    • "couponRecommendationsEnabled": true,
    • "onSaleRecommendationsEnabled": true,
    • "scanAndGoEnabled": true,
    • "scanTimeout": 0,
    • "webCartPriceLevel": 0,
    • "placeholderImage": "string",
    • "i18nEnabled": true,
    • "i18nLanguage": [
      • "string"
      ],
    • "cdn": "string",
    • "googleMapsApiKey": "string",
    • "googleMapsStrictAddressCheck": true,
    • "googleAnalyticsId": "string",
    • "facebookPixelId": "string",
    • "signifydKey": "string",
    • "redPepperClientId": 0,
    • "redPepperUrl": "string",
    • "redPepperHideInStoryOnlyItems": true,
    • "includeCircularLinkInMenu": true,
    • "circularLinkText": "string",
    • "publicVapidKey": "BIf7...yZQ",
    • "webPushConfig": "{ \"apiKey\": \"key\", ... }",
    • "enabledPlatforms": [
      • "WEB",
      • "IOS",
      • "ANDROID"
      ],
    • "clientTokenRefreshDuration": 7,
    • "pushNotificationServerTokenExpiration": 0,
    • "orderTypesEnabled": true,
    • "orderTypesMessage": "string",
    • "socialProviders": [
      • {
        • "provider": "string",
        • "userKey": "string",
        • "authId": "string",
        • "auth": true
        }
      ],
    • "paymentProviders": [
      • {
        • "provider": "string"
        }
      ],
    • "rows": [
      • {
        • "id": "string",
        • "name": "string"
        }
      ],
    • "countries": [
      • {
        • "id": 0,
        • "description": "string",
        • "abbrv": "string"
        }
      ],
    • "states": [
      • {
        • "id": 0,
        • "country": 0,
        • "description": "string",
        • "abbrv": "string"
        }
      ],
    • "ads": [],
    • "customSources": [
      • {
        • "id": "string",
        • "type": 0,
        • "label": "string",
        • "content": "string"
        }
      ],
    • "thirdPartyServiceProfiles": [
      • {
        • "id": 0,
        • "name": "string",
        • "thirdPartyServiceProvider": {
          • "id": 0,
          • "name": "string",
          • "type": 0
          }
        }
      ],
    • "orderTypes": [
      • {
        • "id": "1000-3",
        • "name": "Pickup",
        • "urlSlug": "Doordash orders",
        • "menu": {
          • "id": "1000-10",
          • "name": "WebCart Upper Menu",
          • "children": [
            • { }
            ],
          • "orderTypeImage": "1000-2"
          },
        • "ads": [],
        • "giftCard": false,
        • "listOnly": false,
        • "hidden": false,
        • "autoFinalize": false,
        • "image": "1000-5",
        • "urlEncodedSlug": "Doordash+orders"
        }
      ],
    • "recaptchaScenarioStatuses": {
      • "property1": true,
      • "property2": true
      },
    • "customerGroups": [
      • {
        • "id": "string",
        • "name": "string",
        • "canEdit": true,
        • "mutuallyExclusive": true,
        • "household": true,
        • "groups": [
          • {
            • "id": "string",
            • "name": "string"
            }
          ]
        }
      ],
    • "beacons": [
      • {
        • "id": "string",
        • "name": "string",
        • "uuid": "string",
        • "url": "string"
        }
      ],
    • "googleTagManagerId": "string",
    • "youMayAlsoLikeLabel": "string",
    • "frequentlyBoughtItemLabel": "string",
    • "goesWellWithLabel": "string",
    • "recommendedSubstitutesLabel": "string",
    • "cortexKey": "string",
    • "cardknoxEbtIfieldsKey": "string",
    • "ebtBalanceTimeout": 0,
    • "whitelistEbt": true,
    • "showAllSpecialTenderBadges": false,
    • "allowAccountDeletion": false,
    • "allowFederatedLogin": false,
    • "recaptchaKey": "6Lc...Xy",
    • "recaptchaSources": {
      • "ios": "6Lc...Xy",
      • "android": "7Mb...Yz"
      }
    }

    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
    recaptchaSource
    string

    The source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token. This is used when a custom reCAPTCHA site key is configured.

    Responses

    Request samples

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

    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
    id
    string
    type
    integer <int32>
    label
    string
    content
    string

    Response samples

    Content type
    application/json
    {
    • "id": "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": "string",
          • "name": "string",
          • "street1": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postal": "string",
          • "country": "string",
          • "shipTo": true,
          • "billTo": true,
          • "location": true,
          • "webcart": true,
          • "did": "string"
          }
        ],
      • "emails": [
        • {
          • "id": "string",
          • "name": "string",
          • "email": "string",
          • "billTo": true,
          • "shipTo": true,
          • "marketing": true,
          • "location": true,
          • "webcart": true,
          • "did": "string",
          • "ereceipt": true
          }
        ],
      • "phones": [
        • {
          • "id": "string",
          • "name": "string",
          • "phone": "string",
          • "billToPhone": true,
          • "billToFax": true,
          • "shipToPhone": true,
          • "shipToFax": true,
          • "fax": true,
          • "locationPhone": true,
          • "locationFax": true,
          • "webcartPhone": true,
          • "did": "string"
          }
        ],
      • "faxes": [
        • {
          • "id": "string",
          • "name": "string",
          • "phone": "string",
          • "billToPhone": true,
          • "billToFax": true,
          • "shipToPhone": true,
          • "shipToFax": true,
          • "fax": true,
          • "locationPhone": true,
          • "locationFax": true,
          • "webcartPhone": true,
          • "did": "string"
          }
        ]
      }
    ]

    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.

    Custom sources are set on the store's configuration and define custom content (e.g. CSS overrides) to personalize their website.

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

    Get Theme Configuration Deprecated

    Returns the theme configuration including primary and secondary colors. Requires employee authentication.

    This endpoint is deprecated, use Get CSS Theme instead.

    Responses

    Response Schema: application/json
    primary
    required
    string
    Default: "#0d6efd"

    Primary theme color in hex format

    secondary
    required
    string
    Default: "#6c757d"

    Secondary theme color in hex format

    Response samples

    Content type
    application/json
    {
    • "primary": "#0d6efd",
    • "secondary": "#6c757d"
    }

    Get CSS Theme

    Returns the CSS theme file for styling the web application. Uses ETag for caching.

    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.

    Add an EBT token to the user's wallet

    This saves a tokenized EBT card to the customer's wallet.
    This endpoint is rate limited, and if reCAPTCHA is configured, requires a reCAPTCHA response.

    Request Body schema: application/json
    object (WebAuthCard)

    The EBT card to be added to the customer's wallet.

    recaptcha
    string

    The recaptcha response from the client. This is used to validate the request and prevent abuse.

    recaptchaSource
    string

    The source mapped to the reCAPTCHA site key used to generate the reCAPTCHA token. This is used when a custom reCAPTCHA site key is configured.

    Responses

    Response Schema: application/json
    autoReloadStatus
    string
    Enum: "ENABLED" "DISABLED" "NOT_ALLOWED"

    Represents the status of auto-reload functionality for a customer.

    reloadAmount
    number

    The reload amount for the customer's default token.

    defaultReloadAmount
    number

    The default reload amount from the WebCart terminal's authorization security profile.

    Array of objects (ChargeAccountBalance)

    A list of charge accounts associated with the customer.

    tokenStatus
    string
    Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED"

    Represents the status of returning tokenization information from the server

    Array of objects (TokenInfo)

    A list of tokens associated with the customer.
    Expired tokens are not returned.
    If the provider is CardConnect or Stripe, and the card brand is not EBT, then the token must have sufficient billing information to be returned.

    object (creditPaymentMethod)

    If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found.

    object (ebtPaymentMethod)

    If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found.

    Request samples

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

    Response samples

    Content type
    application/json
    {
    • "autoReloadStatus": "ENABLED",
    • "reloadAmount": 50,
    • "defaultReloadAmount": 25,
    • "chargeAccounts": [
      • {
        • "id": "1000-34",
        • "name": "Charge Account",
        • "balance": 100,
        • "creditLimit": 1000
        }
      ],
    • "tokenStatus": "NORMAL",
    • "tokens": [
      • {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        }
      ],
    • "creditPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      },
    • "ebtPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      }
    }

    Add a token to the customer's wallet

    This saves a tokenized card to the customer's wallet.
    This endpoint is rate limited and if reCAPTCHA is configured, requires a reCAPTCHA response.
    To save a tokenized card for CardConnect and Stripe, WebCart will perform an authorization and reversal of one dollar to verify the authenticity of the card.

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

    Responses

    Response Schema: application/json
    autoReloadStatus
    string
    Enum: "ENABLED" "DISABLED" "NOT_ALLOWED"

    Represents the status of auto-reload functionality for a customer.

    reloadAmount
    number

    The reload amount for the customer's default token.

    defaultReloadAmount
    number

    The default reload amount from the WebCart terminal's authorization security profile.

    Array of objects (ChargeAccountBalance)

    A list of charge accounts associated with the customer.

    tokenStatus
    string
    Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED"

    Represents the status of returning tokenization information from the server

    Array of objects (TokenInfo)

    A list of tokens associated with the customer.
    Expired tokens are not returned.
    If the provider is CardConnect or Stripe, and the card brand is not EBT, then the token must have sufficient billing information to be returned.

    object (creditPaymentMethod)

    If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found.

    object (ebtPaymentMethod)

    If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found.

    Request samples

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

    Response samples

    Content type
    application/json
    {
    • "autoReloadStatus": "ENABLED",
    • "reloadAmount": 50,
    • "defaultReloadAmount": 25,
    • "chargeAccounts": [
      • {
        • "id": "1000-34",
        • "name": "Charge Account",
        • "balance": 100,
        • "creditLimit": 1000
        }
      ],
    • "tokenStatus": "NORMAL",
    • "tokens": [
      • {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        }
      ],
    • "creditPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      },
    • "ebtPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      }
    }

    Get customer claims

    Returns the active claims for the user.
    Claims are used to determine the user's permissions, access levels, cart, order type information, price level, and more.

    Responses

    Response Schema: application/json
    id
    string
    expiration
    string <date-time>
    issuer
    string
    subject
    string
    notBefore
    string <date-time>
    issuedAt
    string <date-time>
    audience
    string
    empty
    boolean
    property name*
    additional property
    object

    Response samples

    Content type
    application/json
    {
    • "id": "string",
    • "expiration": "2019-08-24T14:15:22Z",
    • "issuer": "string",
    • "subject": "string",
    • "notBefore": "2019-08-24T14:15:22Z",
    • "issuedAt": "2019-08-24T14:15:22Z",
    • "audience": "string",
    • "empty": true,
    • "property1": { },
    • "property2": { }
    }

    Get digital coupon information for the customer

    This returns the status (available/clipped/expired/redeemed) of any third-party digital coupons available to the customer. Only digital coupons for configured digital coupon services will be returned.

    Responses

    Response Schema: application/json
    clipped
    Array of strings

    List of clipped digital coupon IDs.

    redeemed
    Array of strings

    List of redeemed digital coupon IDs.

    expired
    Array of strings

    List of expired digital coupon IDs.

    available
    Array of strings

    List of available digital coupon IDs.

    availablePrefixes
    Array of strings

    List of available digital coupon ID prefixes. Only prefixes for enabled digital coupon providers are returned.

    Response samples

    Content type
    application/json
    {
    • "clipped": [
      • "string"
      ],
    • "redeemed": [
      • "string"
      ],
    • "expired": [
      • "string"
      ],
    • "available": [
      • "string"
      ],
    • "availablePrefixes": [
      • "string"
      ]
    }

    Delete a token from the customer's wallet

    This allows the customer to delete a tokenized card from their wallet. This can be used for credit and EBT cards.
    If any EBT tenders have been applied to the transaction with the token to be removed, they will be voided before removing the token.

    Request Body schema: application/json
    cardId
    string

    An identifier for the card from the card processor.

    defaultToken
    boolean

    If true, this is considered the default token for the associated customer. The default token is used for secure auto-reload of charge accounts. EBT SNAP and EBT Cash tokens are not eligible to be default tokens.

    brand
    string

    The brand of the card.

    finalDigits
    string

    The last four digits of the card.

    expiration
    string

    The card expiration date in MMYY format. This is the same format used by the card processor. For example, a card that expires in December 2025 would be represented as 1225.

    authFk
    string

    The unique identifier for the authorization server profile configured on the WebCart terminal.

    tenderType
    integer <int32>

    Tender type backing this token: 2 for Charge Account, 4 for Credit, 6 for EBT SNAP, 8 for Debit, 12 for EBT Cash (TANF), 14 for Gift Card, 19 for Loyalty Points, and 23 for Tokenization.

    Responses

    Response Schema: application/json
    autoReloadStatus
    string
    Enum: "ENABLED" "DISABLED" "NOT_ALLOWED"

    Represents the status of auto-reload functionality for a customer.

    reloadAmount
    number

    The reload amount for the customer's default token.

    defaultReloadAmount
    number

    The default reload amount from the WebCart terminal's authorization security profile.

    Array of objects (ChargeAccountBalance)

    A list of charge accounts associated with the customer.

    tokenStatus
    string
    Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED"

    Represents the status of returning tokenization information from the server

    Array of objects (TokenInfo)

    A list of tokens associated with the customer.
    Expired tokens are not returned.
    If the provider is CardConnect or Stripe, and the card brand is not EBT, then the token must have sufficient billing information to be returned.

    object (creditPaymentMethod)

    If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found.

    object (ebtPaymentMethod)

    If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found.

    Request samples

    Content type
    application/json
    {
    • "cardId": "string",
    • "defaultToken": true,
    • "brand": "Visa",
    • "finalDigits": "1234",
    • "expiration": "1225",
    • "authFk": "1000-21",
    • "tenderType": 4
    }

    Response samples

    Content type
    application/json
    {
    • "autoReloadStatus": "ENABLED",
    • "reloadAmount": 50,
    • "defaultReloadAmount": 25,
    • "chargeAccounts": [
      • {
        • "id": "1000-34",
        • "name": "Charge Account",
        • "balance": 100,
        • "creditLimit": 1000
        }
      ],
    • "tokenStatus": "NORMAL",
    • "tokens": [
      • {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        }
      ],
    • "creditPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      },
    • "ebtPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      }
    }

    Get customer groups for the customer

    This returns any store coupons / customer groups linked to the customer's account.

    Responses

    Response Schema: application/json
    Array
    id
    string

    The unique identifier for the store coupon / customer group

    expiration
    string <date-time>

    The expiration date of the store coupon / customer group. This is only set if the coupon is set to expire.
    This can be set with the Days Valid or End Date fields in the Manage Store Coupons / Customer Groups screen in Web Office.

    action
    string
    Enum: "add" "remove"

    This field is used to allow customers to opt-in or opt-out of a store coupon / customer group.

    Response samples

    Content type
    application/json
    [
    • {
      • "id": "1000-34",
      • "expiration": "2019-08-24T14:15:22Z",
      • "action": "add"
      }
    ]

    Opt-in / Opt-out a customer from customer group(s)

    This is used to add / remove customers from one or more store coupon(s) / customer group(s).

    Request Body schema: application/json
    Array
    id
    string

    The unique identifier for the store coupon / customer group

    expiration
    string <date-time>

    The expiration date of the store coupon / customer group. This is only set if the coupon is set to expire.
    This can be set with the Days Valid or End Date fields in the Manage Store Coupons / Customer Groups screen in Web Office.

    action
    string
    Enum: "add" "remove"

    This field is used to allow customers to opt-in or opt-out of a store coupon / customer group.

    Responses

    Response Schema: application/json
    Array
    id
    string

    The unique identifier for the store coupon / customer group

    expiration
    string <date-time>

    The expiration date of the store coupon / customer group. This is only set if the coupon is set to expire.
    This can be set with the Days Valid or End Date fields in the Manage Store Coupons / Customer Groups screen in Web Office.

    action
    string
    Enum: "add" "remove"

    This field is used to allow customers to opt-in or opt-out of a store coupon / customer group.

    Request samples

    Content type
    application/json
    [
    • {
      • "id": "1000-34",
      • "expiration": "2019-08-24T14:15:22Z",
      • "action": "add"
      }
    ]

    Response samples

    Content type
    application/json
    [
    • {
      • "id": "1000-34",
      • "expiration": "2019-08-24T14:15:22Z",
      • "action": "add"
      }
    ]

    Retrieve detailed customer information

    If a customer is associated, a detail object containing customer information such as their account number, phones, emails, addresses, and other information is returned.
    Only information configured on the site's boarding profile is populated in the response.
    If no customer is associated, then an empty boarding profile is returned.

    Responses

    Response Schema: application/json
    accountNumber
    string

    The account number of the customer. The format of this number is determined by the store's configuration.

    object (firstName)

    The first name of the customer.

    object (middleName)

    The middle name of the customer.

    object (lastName)

    The last name of the customer.

    object (nickName)

    The nick name of the customer.

    object (prefix)

    The prefix of the customer. If updating the value, the value field needs to match one of the id fields from the options array. The options array is for displaying possible values; it is not required to update the selected value.

    object (suffix)

    The suffix of the customer. If updating the value, the value field needs to match one of the id fields from the options array. The options array is for displaying possible values; it is not required to update the selected value.

    object (company)

    The company name for the customer.

    object (title)

    The title for the customer. This is often paired with the company name to denote their title at the company.

    object (suppressReceipt)

    If true, the customer will not receive paper receipts when they shop in-store but instead will receive electronic receipts at the email address they entered. This is the Opt Out Printed Receipt checkbox on the customer profile in Web Office.

    object (birthDate)

    The birth date of the customer.

    object (pf1)

    Power Field 1 from the customer profile in Web Office. The name and options are configured in Web Office. The value field is the unique ID for the selected option, if one is selected. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf2)

    Power Field 2 from the customer profile in Web Office. The name and options are configured in Web Office. The value field is the unique ID for the selected option, if one is selected. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf3)

    Power Field 3 from the customer profile in Web Office. The name and options are configured in Web Office. The value field is the unique ID for the selected option, if one is selected. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf4)

    Power Field 4 from the customer profile in Web Office. The name and options are configured in Web Office. The value field is the unique ID for the selected option, if one is selected. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf5)

    Power Field 5 from the customer profile in Web Office. The name and options are configured in Web Office. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf6)

    Power Field 6 from the customer profile in Web Office. The name and options are configured in Web Office. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf7)

    Power Field 7 from the customer profile in Web Office. The name and options are configured in Web Office. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf8)

    Power Field 8 from the customer profile in Web Office. The name and options are configured in Web Office. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    Array of objects (MePhoneDto)

    A list of phone numbers associated with the customer. Each entry includes a Description and a Phone Number. The Descriptions are configured in Web Office as Phone Description Profiles (e.g. Office, Personal, etc.). The Phone Number is the number associated with that description. The number may include formatting such as spaces, dashes, or parentheses.

    Array of objects (MeEmailDto)

    A list of emails associated with the customer. Each entry includes a Description and an Email. The Descriptions are configured in Web Office as Email Description Profiles (e.g. Office, Personal, etc.). The Email is the value associated with that description.

    Array of objects (MeAddressDto)

    A list of addresses associated with the customer. Each entry includes a Description and an Address. The Descriptions are configured in Web Office as Address Description Profiles (e.g. Office, Personal, etc.). The Address is the value associated with that description.

    Response samples

    Content type
    application/json
    {
    • "accountNumber": "WB24XVXCXIBY3ZH3",
    • "firstName": {
      • "name": "firstName",
      • "option": "REQUIRED",
      • "value": "John",
      • "length": 25
      },
    • "middleName": {
      • "name": "middleName",
      • "option": "OPTIONAL",
      • "value": "Michael",
      • "length": 25
      },
    • "lastName": {
      • "name": "lastName",
      • "option": "REQUIRED",
      • "value": "Doe",
      • "length": 25
      },
    • "nickName": {
      • "name": "nickName",
      • "option": "OPTIONAL",
      • "value": "Johnny",
      • "length": 25
      },
    • "prefix": {
      • "name": "prefix",
      • "option": "OPTIONAL",
      • "value": "1000-16",
      • "options": [
        • {
          • "id": "1000-16",
          • "description": "Mr."
          },
        • {
          • "id": "1000-17",
          • "description": "Ms."
          },
        • {
          • "id": "1000-18",
          • "description": "Mrs."
          },
        • {
          • "id": "1000-19",
          • "description": "unknown"
          }
        ]
      },
    • "suffix": {
      • "name": "suffix",
      • "option": "OPTIONAL",
      • "value": "1000-19",
      • "options": [
        • {
          • "id": "1000-16",
          • "description": "Jr."
          },
        • {
          • "id": "1000-19",
          • "description": "Sr."
          }
        ]
      },
    • "company": "{\n \"name\": \"company\",\n \"option\": \"OPTIONAL\",\n \"value\": ECRS,\n \"length\": 50\n}",
    • "title": "{\n \"name\": \"title\",\n \"option\": \"OPTIONAL\",\n \"value\": Technical Writer,\n \"length\": 25\n}",
    • "suppressReceipt": {
      • "name": "suppressReceipt",
      • "option": "OPTIONAL",
      • "value": false
      },
    • "birthDate": {
      • "name": "birthDate",
      • "option": "OPTIONAL",
      • "value": "1995-05-04"
      },
    • "pf1": {
      • "name": "Configured PowerField 1 Name",
      • "option": "OPTIONAL",
      • "value": "1000-7263",
      • "options": [
        • {
          • "id": "1000-7263",
          • "description": "Option 1"
          },
        • {
          • "id": "1000-7268",
          • "description": "Option 2"
          }
        ]
      },
    • "pf2": {
      • "name": "Configured PowerField 2 Name",
      • "option": "OPTIONAL",
      • "value": "1000-7263",
      • "options": [
        • {
          • "id": "1000-7263",
          • "description": "Option 1"
          },
        • {
          • "id": "1000-7268",
          • "description": "Option 2"
          }
        ]
      },
    • "pf3": {
      • "name": "Configured PowerField 3 Name",
      • "option": "OPTIONAL",
      • "value": "1000-7263",
      • "options": [
        • {
          • "id": "1000-7263",
          • "description": "Option 1"
          },
        • {
          • "id": "1000-7268",
          • "description": "Option 2"
          }
        ]
      },
    • "pf4": {
      • "name": "Configured PowerField 4 Name",
      • "option": "OPTIONAL",
      • "value": "1000-7263",
      • "options": [
        • {
          • "id": "1000-7263",
          • "description": "Option 1"
          },
        • {
          • "id": "1000-7268",
          • "description": "Option 2"
          }
        ]
      },
    • "pf5": {
      • "name": "Configured PowerField 5 Name",
      • "option": "OPTIONAL",
      • "value": "FOO",
      • "length": 30
      },
    • "pf6": {
      • "name": "Configured PowerField 6 Name",
      • "option": "OPTIONAL",
      • "value": "FOO",
      • "length": 30
      },
    • "pf7": {
      • "name": "Configured PowerField 7 Name",
      • "option": "OPTIONAL",
      • "value": "FOO",
      • "length": 30
      },
    • "pf8": {
      • "name": "Configured PowerField 8 Name",
      • "option": "OPTIONAL",
      • "value": "FOO",
      • "length": 30
      },
    • "phones": [
      • {
        • "id": "1000-39172",
        • "name": "Web",
        • "phone": {
          • "name": "phone",
          • "option": "OPTIONAL",
          • "value": "(333) 999-0000",
          • "length": 14
          },
        • "shipToPhone": {
          • "name": "phoneShipping",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "shipToFax": {
          • "name": "faxShipping",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "billToPhone": {
          • "name": "phoneBilling",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "billToFax": {
          • "name": "faxBilling",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "did": "1000-9563",
        • "marketingState": "NOT_OPTED_IN"
        },
      • {
        • "id": "1000-105285",
        • "name": "Personal",
        • "phone": {
          • "name": "phone",
          • "option": "REQUIRED",
          • "value": "3332221111",
          • "length": 14
          },
        • "did": "1000-7280"
        }
      ],
    • "emails": [
      • {
        • "id": "1000-44090",
        • "name": "Web",
        • "email": {
          • "name": "email",
          • "option": "OPTIONAL",
          • "value": "johndoe@ecrs.com"
          },
        • "ereceipt": null,
        • "did": "1000-11"
        },
      • {
        • "id": "1000-51792",
        • "name": "E-Mail",
        • "email": {
          • "name": "email",
          • "option": "OPTIONAL",
          • "value": "johndoe@ecrs.com"
          },
        • "billTo": {
          • "name": "emailBilling",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "shipTo": {
          • "name": "emailShipping",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "marketing": {
          • "name": "emailMarketing",
          • "option": "REQUIRED",
          • "value": false
          },
        • "ereceipt": {
          • "name": "emailReceipt",
          • "option": "REQUIRED",
          • "value": true
          },
        • "did": "1000-7247",
        • "eReceipt": {
          • "name": "emailReceipt",
          • "option": "REQUIRED",
          • "value": true
          }
        }
      ],
    • "addresses": [
      • {
        • "id": "1000-57638",
        • "name": "Home Address",
        • "street1": {
          • "name": "street1",
          • "option": "OPTIONAL",
          • "value": "277 Howard St.",
          • "length": 30
          },
        • "street2": {
          • "name": "street2",
          • "option": "OPTIONAL",
          • "value": "",
          • "length": 30
          },
        • "city": {
          • "name": "city",
          • "option": "OPTIONAL",
          • "value": "Boone",
          • "length": 20
          },
        • "state": {
          • "name": "state",
          • "option": "OPTIONAL",
          • "value": "NC",
          • "length": 2
          },
        • "postal": {
          • "name": "postal",
          • "option": "OPTIONAL",
          • "value": "28607",
          • "length": 15
          },
        • "country": {
          • "name": "country",
          • "option": "OPTIONAL",
          • "value": "US",
          • "length": 4
          },
        • "shipTo": {
          • "name": "addressShipping",
          • "option": "OPTIONAL",
          • "value": true
          },
        • "billTo": {
          • "name": "addressBilling",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "did": "1000-4"
        }
      ]
    }

    Save customer information

    If a customer is associated, this endpoint allows the customer to update their information.
    The request body only needs to include the data the customer wishes to change. In other words, the entire request body does not need to be sent if only a specific field is being updated.

    Please note that updating email addresses with this endpoint is not possible. If there is any value in emails[].email, the request will be rejected. Values in other properties such as emails[].billTo, emails[].shipTo, emails[].eReceipt, and emails[].marketing will be accepted. Please see the Verify Email endpoint to edit email addresses.

    Request Body schema: application/json
    accountNumber
    string

    The account number of the customer. The format of this number is determined by the store's configuration.

    object (firstName)

    The first name of the customer.

    object (middleName)

    The middle name of the customer.

    object (lastName)

    The last name of the customer.

    object (nickName)

    The nick name of the customer.

    object (prefix)

    The prefix of the customer. If updating the value, the value field needs to match one of the id fields from the options array. The options array is for displaying possible values; it is not required to update the selected value.

    object (suffix)

    The suffix of the customer. If updating the value, the value field needs to match one of the id fields from the options array. The options array is for displaying possible values; it is not required to update the selected value.

    object (company)

    The company name for the customer.

    object (title)

    The title for the customer. This is often paired with the company name to denote their title at the company.

    object (suppressReceipt)

    If true, the customer will not receive paper receipts when they shop in-store but instead will receive electronic receipts at the email address they entered. This is the Opt Out Printed Receipt checkbox on the customer profile in Web Office.

    object (birthDate)

    The birth date of the customer.

    object (pf1)

    Power Field 1 from the customer profile in Web Office. The name and options are configured in Web Office. The value field is the unique ID for the selected option, if one is selected. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf2)

    Power Field 2 from the customer profile in Web Office. The name and options are configured in Web Office. The value field is the unique ID for the selected option, if one is selected. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf3)

    Power Field 3 from the customer profile in Web Office. The name and options are configured in Web Office. The value field is the unique ID for the selected option, if one is selected. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf4)

    Power Field 4 from the customer profile in Web Office. The name and options are configured in Web Office. The value field is the unique ID for the selected option, if one is selected. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf5)

    Power Field 5 from the customer profile in Web Office. The name and options are configured in Web Office. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf6)

    Power Field 6 from the customer profile in Web Office. The name and options are configured in Web Office. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf7)

    Power Field 7 from the customer profile in Web Office. The name and options are configured in Web Office. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    object (pf8)

    Power Field 8 from the customer profile in Web Office. The name and options are configured in Web Office. PowerFields 1-4 have pre-defined options whereas PowerFields 5-8 are free text fields.

    Array of objects (MePhoneDto)

    A list of phone numbers associated with the customer. Each entry includes a Description and a Phone Number. The Descriptions are configured in Web Office as Phone Description Profiles (e.g. Office, Personal, etc.). The Phone Number is the number associated with that description. The number may include formatting such as spaces, dashes, or parentheses.

    Array of objects (MeEmailDto)

    A list of emails associated with the customer. Each entry includes a Description and an Email. The Descriptions are configured in Web Office as Email Description Profiles (e.g. Office, Personal, etc.). The Email is the value associated with that description.

    Array of objects (MeAddressDto)

    A list of addresses associated with the customer. Each entry includes a Description and an Address. The Descriptions are configured in Web Office as Address Description Profiles (e.g. Office, Personal, etc.). The Address is the value associated with that description.

    Responses

    Request samples

    Content type
    application/json
    {
    • "accountNumber": "WB24XVXCXIBY3ZH3",
    • "firstName": {
      • "name": "firstName",
      • "option": "REQUIRED",
      • "value": "John",
      • "length": 25
      },
    • "middleName": {
      • "name": "middleName",
      • "option": "OPTIONAL",
      • "value": "Michael",
      • "length": 25
      },
    • "lastName": {
      • "name": "lastName",
      • "option": "REQUIRED",
      • "value": "Doe",
      • "length": 25
      },
    • "nickName": {
      • "name": "nickName",
      • "option": "OPTIONAL",
      • "value": "Johnny",
      • "length": 25
      },
    • "prefix": {
      • "name": "prefix",
      • "option": "OPTIONAL",
      • "value": "1000-16",
      • "options": [
        • {
          • "id": "1000-16",
          • "description": "Mr."
          },
        • {
          • "id": "1000-17",
          • "description": "Ms."
          },
        • {
          • "id": "1000-18",
          • "description": "Mrs."
          },
        • {
          • "id": "1000-19",
          • "description": "unknown"
          }
        ]
      },
    • "suffix": {
      • "name": "suffix",
      • "option": "OPTIONAL",
      • "value": "1000-19",
      • "options": [
        • {
          • "id": "1000-16",
          • "description": "Jr."
          },
        • {
          • "id": "1000-19",
          • "description": "Sr."
          }
        ]
      },
    • "company": "{\n \"name\": \"company\",\n \"option\": \"OPTIONAL\",\n \"value\": ECRS,\n \"length\": 50\n}",
    • "title": "{\n \"name\": \"title\",\n \"option\": \"OPTIONAL\",\n \"value\": Technical Writer,\n \"length\": 25\n}",
    • "suppressReceipt": {
      • "name": "suppressReceipt",
      • "option": "OPTIONAL",
      • "value": false
      },
    • "birthDate": {
      • "name": "birthDate",
      • "option": "OPTIONAL",
      • "value": "1995-05-04"
      },
    • "pf1": {
      • "name": "Configured PowerField 1 Name",
      • "option": "OPTIONAL",
      • "value": "1000-7263",
      • "options": [
        • {
          • "id": "1000-7263",
          • "description": "Option 1"
          },
        • {
          • "id": "1000-7268",
          • "description": "Option 2"
          }
        ]
      },
    • "pf2": {
      • "name": "Configured PowerField 2 Name",
      • "option": "OPTIONAL",
      • "value": "1000-7263",
      • "options": [
        • {
          • "id": "1000-7263",
          • "description": "Option 1"
          },
        • {
          • "id": "1000-7268",
          • "description": "Option 2"
          }
        ]
      },
    • "pf3": {
      • "name": "Configured PowerField 3 Name",
      • "option": "OPTIONAL",
      • "value": "1000-7263",
      • "options": [
        • {
          • "id": "1000-7263",
          • "description": "Option 1"
          },
        • {
          • "id": "1000-7268",
          • "description": "Option 2"
          }
        ]
      },
    • "pf4": {
      • "name": "Configured PowerField 4 Name",
      • "option": "OPTIONAL",
      • "value": "1000-7263",
      • "options": [
        • {
          • "id": "1000-7263",
          • "description": "Option 1"
          },
        • {
          • "id": "1000-7268",
          • "description": "Option 2"
          }
        ]
      },
    • "pf5": {
      • "name": "Configured PowerField 5 Name",
      • "option": "OPTIONAL",
      • "value": "FOO",
      • "length": 30
      },
    • "pf6": {
      • "name": "Configured PowerField 6 Name",
      • "option": "OPTIONAL",
      • "value": "FOO",
      • "length": 30
      },
    • "pf7": {
      • "name": "Configured PowerField 7 Name",
      • "option": "OPTIONAL",
      • "value": "FOO",
      • "length": 30
      },
    • "pf8": {
      • "name": "Configured PowerField 8 Name",
      • "option": "OPTIONAL",
      • "value": "FOO",
      • "length": 30
      },
    • "phones": [
      • {
        • "id": "1000-39172",
        • "name": "Web",
        • "phone": {
          • "name": "phone",
          • "option": "OPTIONAL",
          • "value": "(333) 999-0000",
          • "length": 14
          },
        • "shipToPhone": {
          • "name": "phoneShipping",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "shipToFax": {
          • "name": "faxShipping",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "billToPhone": {
          • "name": "phoneBilling",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "billToFax": {
          • "name": "faxBilling",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "did": "1000-9563",
        • "marketingState": "NOT_OPTED_IN"
        },
      • {
        • "id": "1000-105285",
        • "name": "Personal",
        • "phone": {
          • "name": "phone",
          • "option": "REQUIRED",
          • "value": "3332221111",
          • "length": 14
          },
        • "did": "1000-7280"
        }
      ],
    • "emails": [
      • {
        • "id": "1000-44090",
        • "name": "Web",
        • "email": {
          • "name": "email",
          • "option": "OPTIONAL",
          • "value": "johndoe@ecrs.com"
          },
        • "ereceipt": null,
        • "did": "1000-11"
        },
      • {
        • "id": "1000-51792",
        • "name": "E-Mail",
        • "email": {
          • "name": "email",
          • "option": "OPTIONAL",
          • "value": "johndoe@ecrs.com"
          },
        • "billTo": {
          • "name": "emailBilling",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "shipTo": {
          • "name": "emailShipping",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "marketing": {
          • "name": "emailMarketing",
          • "option": "REQUIRED",
          • "value": false
          },
        • "ereceipt": {
          • "name": "emailReceipt",
          • "option": "REQUIRED",
          • "value": true
          },
        • "did": "1000-7247",
        • "eReceipt": {
          • "name": "emailReceipt",
          • "option": "REQUIRED",
          • "value": true
          }
        }
      ],
    • "addresses": [
      • {
        • "id": "1000-57638",
        • "name": "Home Address",
        • "street1": {
          • "name": "street1",
          • "option": "OPTIONAL",
          • "value": "277 Howard St.",
          • "length": 30
          },
        • "street2": {
          • "name": "street2",
          • "option": "OPTIONAL",
          • "value": "",
          • "length": 30
          },
        • "city": {
          • "name": "city",
          • "option": "OPTIONAL",
          • "value": "Boone",
          • "length": 20
          },
        • "state": {
          • "name": "state",
          • "option": "OPTIONAL",
          • "value": "NC",
          • "length": 2
          },
        • "postal": {
          • "name": "postal",
          • "option": "OPTIONAL",
          • "value": "28607",
          • "length": 15
          },
        • "country": {
          • "name": "country",
          • "option": "OPTIONAL",
          • "value": "US",
          • "length": 4
          },
        • "shipTo": {
          • "name": "addressShipping",
          • "option": "OPTIONAL",
          • "value": true
          },
        • "billTo": {
          • "name": "addressBilling",
          • "option": "OPTIONAL",
          • "value": false
          },
        • "did": "1000-4"
        }
      ]
    }

    Change a customer's password

    This is used to change a customer's account password.
    The old password must be provided to verify the customer. The new password must meet the following password strength requirements:
    - Minimum 8 characters
    - Maximum 255 characters
    - At least 1 uppercase letter
    - At least 1 number
    - At least 1 symbol

    Request Body schema: application/json
    oldPassword
    string

    The old password for the customer account.

    newPassword
    string

    The new password for the customer account.

    Responses

    Request samples

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

    Get customer reward information

    For associated customer, this returns reward information such as enrolled loyalty programs, discounts, discount groups, customer group / store coupon triggered coupons, and punch cards. This endpoint will not return third party coupon information.
    This is traditionally used to display a Rewards page to the customer.

    Responses

    Response Schema: application/json
    discount
    string

    If the customer is assigned a discount group, this is the discount name. If the customer is not assigned a discount group, but is assigned a discount, this will be the description of that discount.
    These values can be configured in the Options section of the Customer profile in Web Office.

    Array of objects (LoyaltyBalanceInfo)

    A list of loyalty programs and related information for the associated customer.
    Only loyalty programs that are confirmed to be shown to the customer will be returned.
    In addition, if the site is configured to not display loyalty programs where the customer has zero points, then only loyalty programs with a non-zero balance will be returned.

    Array of objects (CouponCombo)

    A list of coupons triggered by customer groups/store coupons that are available to a customer.
    Only coupons that are configured to be shown to the customer will be returned.

    Array of objects (CouponPunchCard)

    A list of punch cards that are available to the given customer.
    Only punch cards that are configured to be shown to the customer will be returned.

    Response samples

    Content type
    application/json
    {
    • "discount": "string",
    • "loyaltyBalances": [
      • {
        • "id": "1000-38",
        • "name": "string",
        • "showDecimal": true,
        • "online": true,
        • "eligible": 0,
        • "balance": 0,
        • "accrual": 0,
        • "redeemed": 0,
        • "minimumBalance": 0,
        • "minimumRedemption": 0,
        • "redeemable": true,
        • "disabled": true,
        • "expirationDate": "2019-08-24",
        • "expiring": 0
        }
      ],
    • "coupons": [
      • {
        • "id": "1000-38",
        • "name": "string",
        • "details": "string",
        • "expiration": "2019-08-24T14:15:22Z"
        }
      ],
    • "punchCards": [
      • {
        • "ruleId": "1000-38",
        • "name": "string",
        • "details": "string",
        • "completedCards": 0,
        • "currentPunches": 0,
        • "requiredPunches": 0,
        • "expiration": "2019-08-24T14:15:22Z"
        }
      ]
    }

    Get social network providers for the customer

    This returns any social network providers linked to the customer's account.

    Responses

    Response Schema: application/json
    Array
    provider
    string

    The social network name.

    Response samples

    Content type
    application/json
    [
    • {
      • "provider": "google"
      }
    ]

    Unsubscribe customer emails from marketing

    This endpoint can be used to unsubscribe a customer from marketing emails.
    This includes the cart abandonment email. All emails on the customer record will be opted-out of marketing after calling this endpoint.

    query Parameters
    cus
    required
    string
    Example: cus=1000-234

    The unique customer catapult ID for the customer. In the form of pk-cpk.

    acc
    required
    string
    Example: acc=WB24XVXCXIBY3ZH3

    The customer's account number.

    Responses

    Update a customer's auto-reload status

    This endpoint allows an associated customer to update their auto-reload status and auto-reload amount.
    Secure auto-reload is not a feature supported in WebCart right now.

    Request Body schema: application/json
    enabled
    boolean

    Whether or not auto reload is enabled for the customer.

    amount
    number

    The amount to automatically reload. Must be larger than the minimum default auto-reload amount if configured.

    Responses

    Response Schema: application/json
    autoReloadStatus
    string
    Enum: "ENABLED" "DISABLED" "NOT_ALLOWED"

    Represents the status of auto-reload functionality for a customer.

    reloadAmount
    number

    The reload amount for the customer's default token.

    defaultReloadAmount
    number

    The default reload amount from the WebCart terminal's authorization security profile.

    Array of objects (ChargeAccountBalance)

    A list of charge accounts associated with the customer.

    tokenStatus
    string
    Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED"

    Represents the status of returning tokenization information from the server

    Array of objects (TokenInfo)

    A list of tokens associated with the customer.
    Expired tokens are not returned.
    If the provider is CardConnect or Stripe, and the card brand is not EBT, then the token must have sufficient billing information to be returned.

    object (creditPaymentMethod)

    If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found.

    object (ebtPaymentMethod)

    If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found.

    Request samples

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

    Response samples

    Content type
    application/json
    {
    • "autoReloadStatus": "ENABLED",
    • "reloadAmount": 50,
    • "defaultReloadAmount": 25,
    • "chargeAccounts": [
      • {
        • "id": "1000-34",
        • "name": "Charge Account",
        • "balance": 100,
        • "creditLimit": 1000
        }
      ],
    • "tokenStatus": "NORMAL",
    • "tokens": [
      • {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        }
      ],
    • "creditPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      },
    • "ebtPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      }
    }

    Update a customer's default token

    This allows a customer to update their default credit token.
    The default token is used by secure auto-reload for change accounts and it is also the payment option selected by default when a using a credit payment method in WebCart. Tokenized EBT cards cannot be default tokens.

    Request Body schema: application/json
    cardId
    string

    An identifier for the card from the card processor.

    defaultToken
    boolean

    If true, this is considered the default token for the associated customer. The default token is used for secure auto-reload of charge accounts. EBT SNAP and EBT Cash tokens are not eligible to be default tokens.

    brand
    string

    The brand of the card.

    finalDigits
    string

    The last four digits of the card.

    expiration
    string

    The card expiration date in MMYY format. This is the same format used by the card processor. For example, a card that expires in December 2025 would be represented as 1225.

    authFk
    string

    The unique identifier for the authorization server profile configured on the WebCart terminal.

    tenderType
    integer <int32>

    Tender type backing this token: 2 for Charge Account, 4 for Credit, 6 for EBT SNAP, 8 for Debit, 12 for EBT Cash (TANF), 14 for Gift Card, 19 for Loyalty Points, and 23 for Tokenization.

    Responses

    Response Schema: application/json
    autoReloadStatus
    string
    Enum: "ENABLED" "DISABLED" "NOT_ALLOWED"

    Represents the status of auto-reload functionality for a customer.

    reloadAmount
    number

    The reload amount for the customer's default token.

    defaultReloadAmount
    number

    The default reload amount from the WebCart terminal's authorization security profile.

    Array of objects (ChargeAccountBalance)

    A list of charge accounts associated with the customer.

    tokenStatus
    string
    Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED"

    Represents the status of returning tokenization information from the server

    Array of objects (TokenInfo)

    A list of tokens associated with the customer.
    Expired tokens are not returned.
    If the provider is CardConnect or Stripe, and the card brand is not EBT, then the token must have sufficient billing information to be returned.

    object (creditPaymentMethod)

    If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found.

    object (ebtPaymentMethod)

    If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found.

    Request samples

    Content type
    application/json
    {
    • "cardId": "string",
    • "defaultToken": true,
    • "brand": "Visa",
    • "finalDigits": "1234",
    • "expiration": "1225",
    • "authFk": "1000-21",
    • "tenderType": 4
    }

    Response samples

    Content type
    application/json
    {
    • "autoReloadStatus": "ENABLED",
    • "reloadAmount": 50,
    • "defaultReloadAmount": 25,
    • "chargeAccounts": [
      • {
        • "id": "1000-34",
        • "name": "Charge Account",
        • "balance": 100,
        • "creditLimit": 1000
        }
      ],
    • "tokenStatus": "NORMAL",
    • "tokens": [
      • {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        }
      ],
    • "creditPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      },
    • "ebtPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      }
    }

    Get customer digital wallet information

    Returns digital wallet information for the associated customer. This includes charge accounts, tokenized credit cards, tokenized EBT cards, as well as credit and EBT payment methods defined on the WebCart terminal.
    Moreover, this endpoint returns the auto-reload status for the customer in relation to any associated charge accounts.
    In WebCart, this endpoint is used to display a digital wallet page to the customer.

    Responses

    Response Schema: application/json
    autoReloadStatus
    string
    Enum: "ENABLED" "DISABLED" "NOT_ALLOWED"

    Represents the status of auto-reload functionality for a customer.

    reloadAmount
    number

    The reload amount for the customer's default token.

    defaultReloadAmount
    number

    The default reload amount from the WebCart terminal's authorization security profile.

    Array of objects (ChargeAccountBalance)

    A list of charge accounts associated with the customer.

    tokenStatus
    string
    Enum: "NORMAL" "OFFLINE" "DISABLED" "NORMAL" "OFFLINE" "DISABLED"

    Represents the status of returning tokenization information from the server

    Array of objects (TokenInfo)

    A list of tokens associated with the customer.
    Expired tokens are not returned.
    If the provider is CardConnect or Stripe, and the card brand is not EBT, then the token must have sufficient billing information to be returned.

    object (creditPaymentMethod)

    If this WebCart's WebProfile has a credit card payment method enabled, this will return the first credit card payment method found.

    object (ebtPaymentMethod)

    If this WebCart's WebProfile has an EBT payment method enabled, this will return the first EBT payment method found.

    Response samples

    Content type
    application/json
    {
    • "autoReloadStatus": "ENABLED",
    • "reloadAmount": 50,
    • "defaultReloadAmount": 25,
    • "chargeAccounts": [
      • {
        • "id": "1000-34",
        • "name": "Charge Account",
        • "balance": 100,
        • "creditLimit": 1000
        }
      ],
    • "tokenStatus": "NORMAL",
    • "tokens": [
      • {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        }
      ],
    • "creditPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      },
    • "ebtPaymentMethod": {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      }
    }

    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.

    Get Item Order History

    Retrieves a customer’s order history as a list of items with support for date filtering, sorting, and pagination.

    Request Body schema: application/json
    q
    string <= 64 characters

    The query string to filter results by. Limited to 64 characters. Unused.

    ps
    integer <int32> [ 1 .. 256 ]
    Default: 64

    The number of results to return on the requested page. Limited to 256

    pn
    integer <int32> >= 1
    Default: 1

    The page number to return. 1-based index.

    hs
    integer <int32> <= 120
    Default: 90

    Filter for the orders based on date.

    s
    string
    Enum: "MFQ" "NAZ" "NZA"

    The sort to use when collecting search results. In addition to the default(recent) sort, indicated by the absence of this parameter the following are available. Default - Recently Purchased, MFQ - Frequently Purchased, NAZ - Alphabetical ascending, NZA - Alphabetical descending

    Responses

    Response Schema: application/json
    totalCount
    integer <int32>

    Total number of items in purchase history, up to 256.

    object

    List of items returned

    Request samples

    Content type
    application/json
    {
    • "q": "Apple",
    • "ps": 64,
    • "pn": 1,
    • "hs": 90,
    • "s": "MFQ"
    }

    Response samples

    Content type
    application/json
    {
    • "totalCount": 100,
    • "data": {
      • "id": "INV-1000-12",
      • "item": {
        • "id": "INV-1000-12",
        • "image": "1000-345",
        • "scanCode": "123456789012",
        • "name": "Test Item Name",
        • "alternateName": "Alternate Name",
        • "suggestedPrice": 1.99,
        • "actualPriceDivider": 2,
        • "actualPrice": 4,
        • "autoDiscount": "10% Off 3 or more.",
        • "promo": "Sunday Special",
        • "buyDown": "Test Buydown",
        • "weightProfile": {
          • "abbrv": "lb",
          • "decimals": 2,
          • "selectCount": 15,
          • "selectMinimum": 0.5,
          • "selectIncrement": 0.25,
          • "allowWeightedQuantity": false
          },
        • "baseItem": "INV-1000-5",
        • "ascQuantity": 0,
        • "maxQuantity": 50,
        • "maxBaseQuantity": 0,
        • "quantityLimitData": {
          • "vendorGroup": "RJ",
          • "quantityLimit": 20,
          • "comboPackAmount": 3
          },
        • "attributes": [
          • {
            • "image": "string",
            • "name": "Organic"
            }
          ],
        • "itemGroups": [
          • "string"
          ],
        • "specialTenders": [
          • {
            • "id": "WPM-1000-3",
            • "name": "EBT SNAP Online",
            • "tenderType": 4
            }
          ],
        • "coupons": [
          • {
            • "id": "gc:0100037-00004",
            • "name": "FIJI: $1.00 off",
            • "requirements": null,
            • "description": "$1.00 off select Fiji products",
            • "category": null,
            • "brand": "FIJI",
            • "startDate": "2024-04-05",
            • "endDate": "2034-04-05",
            • "redeemLimit": "1",
            • "requirementUpcs": [
              • "00632565000012"
              ],
            • "rewardUpcs": [ ],
            • "targeted": false,
            • "featured": false,
            • "enabled": false,
            • "sortOrder": 1,
            • "validBanners": null,
            • "validLocations": null,
            • "validForStore": true
            }
          ],
        • "outOfStock": false,
        • "sellOutOfStock": false,
        • "brandId": "1000-12",
        • "brand": "Maria's",
        • "size": "12oz",
        • "shelfSequence": 123,
        • "location": "Aisle 3, Section 5, Shelf 1",
        • "hasModifiers": false,
        • "hasLinkedItems": true,
        • "averageWeight": 0.34,
        • "hasRestriction": false,
        • "hasAgeRestriction": true,
        • "cashierApprovalRequired": true,
        • "hasTimeRestrictions": true,
        • "excludeFromCombos": true,
        • "prohibitedSalesScheduleNames": [
          • "string"
          ],
        • "departmentId": "1000-6",
        • "department": "Grocery",
        • "discountType": "override",
        • "discontinued": true
        },
      • "variation": {
        • "id": "YLMfH9nO9RVY6zpGlSIFlgIrBeMQIh+/skdSdjyKw38=",
        • "priceOfModifiers": 4.55,
        • "modifiers": [
          • {
            • "type": "link",
            • "name": "string",
            • "quantity": 0,
            • "descriptor": "string",
            • "priceOfModifier": 0
            }
          ]
        }
      }
    }

    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.
    This endpoint can also be used to query for item recommendations.
    If you have CATAPULT Cognition and wish to offer item recommendations, you'll need to use this endpoint to retrieve recommendations.
    If you wish to offer digital coupon recommendations, please refer to the Digital Coupon Recommendations endpoint.
    If you are a CATAPULT retailer who would like to learn more about item and digital coupon recommendations, more information is available in this ECRS Docs article.

    query Parameters
    search
    required
    string

    The browse request to execute

    Request Body schema: application/json
    g
    Array of strings

    The group path in which to search, consists of the IDs of departments, promotional sale worksheets, brands, item groups, and/or menu groups, using the following prefixes:

    PrefixDescription
    MGPItem Group Menu
    CGPItem Group
    DPTDepartment
    PSWPromotional Sale Worksheet
    BRDBrand
    WOTOrder Type
    Recommended items can be searched for by using one of the Recommended Item prefixes, followed by the item ID :
    PrefixDescription
    MIT0INV'Goes Well With' Items
    MIT1INVSubstitute Items
    HPRHome Page Recommendations
    OSROn Sale Recommendations
    RECINVSimilar Recommendations
    FBIINVFrequently Bought Together
    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 applied (as an AND) to the results of the main query (q). For example, if q is "Apple" and iq contains "Red", the API will return apples that are red (such as Red Delicious) by searching for items that match both "Apple" and "Red"

    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. See fc in Browse Facet Categories for more information on the available facet categories.

    Responses

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

    The status code of the response.Refer to "Error Codes" in API Responses for a complete reference.

    message
    required
    string

    A string description of the status code

    redirect
    string

    A redirect URL to send the user to, if applicable

    data
    object

    The main response payload that varies based on the API endpoint

    Array of objects (Alert)

    A list of alerts that may be relevant to the user

    object

    A map of field names to their validation error messages, if applicable

    object (BrowseRequest)

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

    searchTime
    integer <int64>

    The time required to execute the browse in ms.

    totalCount
    integer <int64>

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

    Array of objects (GroupDto)

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

    Array of objects (GroupDto)

    Any children of the current group path

    Array of objects (FacetCategory)

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

    items
    Array of objects

    The items returned by the search result

    alternates
    Array of strings

    Any alternate searches that should be suggested to the user.

    Request samples

    Content type
    application/json
    {
    • "g": [
      • "MGP-1000-20"
      ],
    • "q": "Apple",
    • "iq": [
      • "[\"Red\"]"
      ],
    • "s": "NAZ",
    • "ps": 16,
    • "pn": 2,
    • "facets": {
      • "Dept": [
        • "Grocery Items",
        • "Frozen"
        ],
      • "Brand": [
        • "ECRS"
        ]
      }
    }

    Response samples

    Content type
    application/json
    {
    • "code": 0,
    • "message": "Success",
    • "data": { },
    • "alerts": [
      • {
        • "code": "shipping.invalid",
        • "values": {
          • "property1": { },
          • "property2": { }
          }
        }
      ],
    • "errors": {
      • "property1": [
        • "string"
        ],
      • "property2": [
        • "string"
        ]
      },
    • "request": {
      • "g": [
        • "MGP-1000-20"
        ],
      • "q": "Apple",
      • "iq": [
        • "[\"Red\"]"
        ],
      • "s": "NAZ",
      • "ps": 16,
      • "pn": 2,
      • "facets": {
        • "Dept": [
          • "Grocery Items",
          • "Frozen"
          ],
        • "Brand": [
          • "ECRS"
          ]
        }
      },
    • "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
    g
    Array of strings

    The group path in which to search, consists of the ids of departments, promotional sale worksheets, brands, item groups, and/or menu groups, using the following prefixes:

    PrefixDescription
    MGPItem Group Menu
    CGPItem Group
    DPTDepartment
    PSWPromotional Sale Worksheet
    BRDBrand
    WOTOrder Type
    Recommended items can be searched for by using one of the Recommended Item prefixes, followed by the item ID :
    PrefixDescription
    MIT0INV'Goes Well With' Items
    MIT1INVSubstitute Items
    HPRHome Page Recommendations
    OSROn Sale Recommendations
    RECINVSimilar Recommendations
    FBIINVFrequently Bought Together
    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 applied (as an AND) to the results of the main query (q). For example, if q is "Apple" and iq contains "Red", the API will return apples that are red (such as Red Delicious) by searching for items that match both "Apple" and "Red"

    fc
    string
    Enum: "GlobalPowerField1" "GlobalPowerField2" "GlobalPowerField3" "GlobalPowerField4" "Brand" "HealthAttribute" "Dept" "ItemGroup" "MktAttr" "Reg" "Prod" "Local" "Promotion" "StoreLevelPowerField1" "StoreLevelPowerField2" "StoreLevelPowerField3" "StoreLevelPowerField4" "WebPaymentMethod"

    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": [
      • "MGP-1000-20"
      ],
    • "q": "Apple",
    • "iq": [
      • "Red"
      ],
    • "fc": "Brand",
    • "facets": {
      • "Dept": [
        • "Grocery Items",
        • "Frozen"
        ],
      • "Brand": [
        • "ECRS"
        ]
      }
    }

    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

    The endpoint in this category can be used to get recommendations for an item, but is deprecated. Use the Browse Items endpoint instead.

    Get Recommendations Deprecated

    Get recommendations for an item. This endpoint is deprecated and will be removed in future versions. Use the Browse Items endpoint instead.

    path Parameters
    id
    required
    string
    Example: INV-1000-1

    ID of the item to get recommendations for

    Responses

    Response Schema: application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
    Array
    id
    string

    The unique ID of the item

    image
    string

    The id of the image of an item

    scanCode
    string

    The scancode for the item

    name
    string

    The name of the item

    alternateName
    string

    The alternate name of an item, if available. This is used to present items in different languages.This is the Receipt Alias field from the Additional Receipt Alias tab in the Marketing section of Web Office.

    suggestedPrice
    number

    The suggested or pre-sale price of the item

    actualPriceDivider
    integer <int32>

    If a price divider is in effect this contains the divider

    actualPrice
    number

    The actual price of the item. This is typically the base price but can take into account special pricing.

    autoDiscount
    string

    If an auto-discount applies to an item it is named here

    promo
    string

    If the item is on any type of promotion the name of that promotion is indicated

    buyDown
    string

    If a buydown is active for the given item it is named here

    object (WeightProfileDto)

    If the item is sold by weight this object describes the weight parameters

    baseItem
    string

    If this item is an additional scan code (alternate ID) then this is the ID of its base item

    ascQuantity
    number

    If this item is an additional scan code (alternate ID) then this is the ASC quantity of the item

    maxQuantity
    number

    The max number of this item that can be purchased or added to the cart in a single transaction

    maxBaseQuantity
    number

    The maximum base quantity that should be set for this item taking into account on-hands. That is, the shopper should not be allowed to add more than this quantity to their cart.

    object (QuantityLimitDataDescription)

    Quantity limits as given by RACS (Retail Access Control Standards).

    Array of objects (ItemAttributeDto)

    The list of health attributes which apply to this item

    itemGroups
    Array of strings

    The list of item groups to which this item belongs

    Array of objects (WebPaymentMethodDto)

    Special tenders that this item is eligible for, such as EBT or Loyalty

    Array of objects (ExternalCoupon)

    The list of external/digital coupons which apply to this item

    outOfStock
    boolean

    Indicates if this item is currently out of stock

    sellOutOfStock
    boolean

    Indicates if this item can be sold while out of stock. Based on global and item-level settings

    object (brandId)

    The id of this item's brand

    brand
    string

    The name of this item's brand

    size
    string

    The description of this item's size

    shelfSequence
    integer <int32>

    The number of this item's shelf sequence

    location
    string

    The description of this item's location within the store

    hasModifiers
    boolean

    Indicates whether the item has modifiers which require variation ID before they can be added to the cart.

    hasLinkedItems
    boolean

    Indicates if an item has linked items, such as made-to-order items

    averageWeight
    number

    If a weighted item should be sold by average weight, the average weight will be indicated here

    hasRestriction
    boolean

    Indicates if a sales restriction is applied to an item that would require cashier involvement when order is fulfilled (e.g. a check ID requirement).

    hasAgeRestriction
    boolean

    Indicates if an item has an age restriction and the shopper's age should be verified on pickup or delivery.

    cashierApprovalRequired
    boolean

    Indicates if an item must be approved by a cashier at the POS, and thus should not be used for pay-now

    hasTimeRestrictions
    boolean

    Indicates if an item has time restrictions and cannot be purchased at certain times.

    excludeFromCombos
    boolean

    Indicates if this item should be excluded from dynamic promotions.

    prohibitedSalesScheduleNames
    Array of strings

    Names of the Prohibited Sales Schedules that currently apply to this item.

    object (departmentId)

    ID of the department this item belongs to

    department
    string

    Name of the department this item belongs to

    discountType
    string
    Enum: "override" "dollar" "percent"

    If this item has an Auto Discount, this is the type of discount

    discontinued
    boolean

    Response samples

    Content type
    application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
    [
    • {
      • "id": "INV-1000-12",
      • "image": "1000-345",
      • "scanCode": "123456789012",
      • "name": "Test Item Name",
      • "alternateName": "Alternate Name",
      • "suggestedPrice": 1.99,
      • "actualPriceDivider": 2,
      • "actualPrice": 4,
      • "autoDiscount": "10% Off 3 or more.",
      • "promo": "Sunday Special",
      • "buyDown": "Test Buydown",
      • "weightProfile": {
        • "abbrv": "lb",
        • "decimals": 2,
        • "selectCount": 15,
        • "selectMinimum": 0.5,
        • "selectIncrement": 0.25,
        • "allowWeightedQuantity": false
        },
      • "baseItem": "INV-1000-5",
      • "ascQuantity": 0,
      • "maxQuantity": 50,
      • "maxBaseQuantity": 0,
      • "quantityLimitData": {
        • "vendorGroup": "RJ",
        • "quantityLimit": 20,
        • "comboPackAmount": 3
        },
      • "attributes": [
        • {
          • "image": "string",
          • "name": "Organic"
          }
        ],
      • "itemGroups": [
        • "string"
        ],
      • "specialTenders": [
        • {
          • "id": "WPM-1000-3",
          • "name": "EBT SNAP Online",
          • "tenderType": 4
          }
        ],
      • "coupons": [
        • {
          • "id": "gc:0100037-00004",
          • "name": "FIJI: $1.00 off",
          • "requirements": null,
          • "description": "$1.00 off select Fiji products",
          • "category": null,
          • "brand": "FIJI",
          • "startDate": "2024-04-05",
          • "endDate": "2034-04-05",
          • "redeemLimit": "1",
          • "requirementUpcs": [
            • "00632565000012"
            ],
          • "rewardUpcs": [ ],
          • "targeted": false,
          • "featured": false,
          • "enabled": false,
          • "sortOrder": 1,
          • "validBanners": null,
          • "validLocations": null,
          • "validForStore": true
          }
        ],
      • "outOfStock": false,
      • "sellOutOfStock": false,
      • "brandId": "1000-12",
      • "brand": "Maria's",
      • "size": "12oz",
      • "shelfSequence": 123,
      • "location": "Aisle 3, Section 5, Shelf 1",
      • "hasModifiers": false,
      • "hasLinkedItems": true,
      • "averageWeight": 0.34,
      • "hasRestriction": false,
      • "hasAgeRestriction": true,
      • "cashierApprovalRequired": true,
      • "hasTimeRestrictions": true,
      • "excludeFromCombos": true,
      • "prohibitedSalesScheduleNames": [
        • "string"
        ],
      • "departmentId": "1000-6",
      • "department": "Grocery",
      • "discountType": "override",
      • "discontinued": true
      }
    ]

    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.
    • Image: These are the images stored in your CATAPULT database such as item images, order type images, web ads, etc.
    • 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

    Get Favicon

    Returns the favicon for the store. If the store does not have a favicon, a 404 response is returned.

    query Parameters
    h
    string

    Desired image height (optional). If specified, valid values include: 24, 30, 50, 64, 180, 240.

    w
    string

    Desired image width (optional). If specified, valid values include: 24, 30, 50, 64, 180, 240.

    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 ECRS Docs article for more information on how MTO is used in WebCart.

    Item Modifiers by typed item ID

    Given an item ID, this endpoint will return all necessary information to display any item modifiers and linked items associated with the item. This endpoint is typically used to display the item customization options when a customer is viewing a MTO item.

    path Parameters
    id
    required
    string
    Example: INV-1000-12

    The typed unique ID of the requested item

    Responses

    Response Schema: application/json
    terminalGroup
    string

    Unique identifier for the terminal group associated with this Item Modifier

    object (ItemModifierCategoryTree)

    Linked items associated with this item.

    Array of objects (ItemModifierCategoryTree)

    List of item modifier categories.

    object

    Map of item modifier answers, where the key is a identifier for the item modifier category item and the value is an object describing the answer.

    Response samples

    Content type
    application/json
    {
    • "terminalGroup": "1000-345",
    • "linkedItems": {
      • "id": "string",
      • "name": "string",
      • "min": 0,
      • "max": 0,
      • "autoDoneOnMax": true,
      • "scoBackground": "1000-194959",
      • "scoWidth": 0,
      • "scoHeight": 0,
      • "items": [
        • {
          • "id": "[1000-5573]",
          • "order": 0,
          • "inv": "1000-78",
          • "quantities": {
            • "id": "1002-1259",
            • "price": 0.5,
            • "name": "A little",
            • "defaultItem": true,
            • "quantity": 1,
            • "scoSelectedImage": "string"
            },
          • "minimum": 0,
          • "maximum": 0,
          • "increment": 0,
          • "price": 0,
          • "freeQuantity": 0,
          • "countTowardsMaxSelections": true,
          • "subTree": { },
          • "name": "string",
          • "image": "1000-194959",
          • "scoUnselectedImage": "1000-194959",
          • "scoSelectedImage": "1000-194959"
          }
        ],
      • "prohibitAlterations": true
      },
    • "categories": [
      • {
        • "id": "string",
        • "name": "string",
        • "min": 0,
        • "max": 0,
        • "autoDoneOnMax": true,
        • "scoBackground": "1000-194959",
        • "scoWidth": 0,
        • "scoHeight": 0,
        • "items": [
          • {
            • "id": "[1000-5573]",
            • "order": 0,
            • "inv": "1000-78",
            • "quantities": {
              • "id": "1002-1259",
              • "price": 0.5,
              • "name": "A little",
              • "defaultItem": true,
              • "quantity": 1,
              • "scoSelectedImage": "string"
              },
            • "minimum": 0,
            • "maximum": 0,
            • "increment": 0,
            • "price": 0,
            • "freeQuantity": 0,
            • "countTowardsMaxSelections": true,
            • "subTree": { },
            • "name": "string",
            • "image": "1000-194959",
            • "scoUnselectedImage": "1000-194959",
            • "scoSelectedImage": "1000-194959"
            }
          ],
        • "prohibitAlterations": true
        }
      ],
    • "answers": {
      • "[1000-6630]": {
        • "id": "[1000-6630]",
        • "quantity": 1
        },
      • "[1000-6609]": {
        • "id": "[1000-6609]",
        • "quantity": 1
        }
      }
    }

    Create item variation by typed ID and customer modifier selections.

    Given an item and an array of customer modifier selections, this endpoint will encode the item and modifiers into a variation string that can be used to identify the item with the selected modifiers. Two identical items with the same modifiers will have the same variation string.

    path Parameters
    id
    required
    string
    Example: INV-1000-12

    The typed unique ID of the requested item

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

    List of item modifier answers representing the selected options for the variation.

    Responses

    Response Schema: application/json
    id
    string

    The created variation string.

    Request samples

    Content type
    application/json
    {
    • "options": [
      • {
        • "id": "[1000-5459]",
        • "quantity": 2
        },
      • {
        • "id": "[1000-5484]",
        • "quantity": 1
        },
      • {
        • "id": "[1000-6608]",
        • "quantity": 1
        },
      • {
        • "id": "[1000-6609]",
        • "quantity": 1
        },
      • {
        • "id": "[1000-6625]",
        • "quantity": 1
        },
      • {
        • "id": "[1000-6626]",
        • "quantity": 1
        },
      • {
        • "id": "[1000-6630]",
        • "quantity": 1
        },
      • {
        • "id": "[1000-6633]",
        • "quantity": 1
        },
      • {
        • "id": "[1000-6634]",
        • "quantity": 1
        },
      • {
        • "id": "[1000-6635]",
        • "quantity": 1
        }
      ]
    }

    Response samples

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

    Item detail by Scan Code

    Returns detailed item data given the item's scan code.
    This is an expansion on the item summary data returned by the /i/q and /i/summaries endpoints.
    This response is traditionally used to populate the item detail page using the item's scancode.
    Note that only non-empty fields will be returned in the ItemDetail response object.

    query Parameters
    scanCode
    required
    string
    Example: scanCode=049000000276

    The scan code to look up.

    Responses

    Response Schema: application/json
    id
    string

    The unique ID of the item

    image
    string

    The id of the image of an item

    scanCode
    string

    The scancode for the item

    name
    string

    The name of the item

    alternateName
    string

    The alternate name of an item, if available. This is used to present items in different languages.This is the Receipt Alias field from the Additional Receipt Alias tab in the Marketing section of Web Office.

    suggestedPrice
    number

    The suggested or pre-sale price of the item

    actualPriceDivider
    integer <int32>

    If a price divider is in effect this contains the divider

    actualPrice
    number

    The actual price of the item. This is typically the base price but can take into account special pricing.

    autoDiscount
    string

    If an auto-discount applies to an item it is named here

    promo
    string

    If the item is on any type of promotion the name of that promotion is indicated

    buyDown
    string

    If a buydown is active for the given item it is named here

    object (WeightProfileDto)

    If the item is sold by weight this object describes the weight parameters

    baseItem
    string

    If this item is an additional scan code (alternate ID) then this is the ID of its base item

    ascQuantity
    number

    If this item is an additional scan code (alternate ID) then this is the ASC quantity of the item

    maxQuantity
    number

    The max number of this item that can be purchased or added to the cart in a single transaction

    maxBaseQuantity
    number

    The maximum base quantity that should be set for this item taking into account on-hands. That is, the shopper should not be allowed to add more than this quantity to their cart.

    object (QuantityLimitDataDescription)

    Quantity limits as given by RACS (Retail Access Control Standards).

    Array of objects (ItemAttributeDto)

    The list of health attributes which apply to this item

    itemGroups
    Array of strings

    The list of item groups to which this item belongs

    Array of objects (WebPaymentMethodDto)

    Special tenders that this item is eligible for, such as EBT or Loyalty

    Array of objects (ExternalCoupon)

    The list of external/digital coupons which apply to this item

    outOfStock
    boolean

    Indicates if this item is currently out of stock

    sellOutOfStock
    boolean

    Indicates if this item can be sold while out of stock. Based on global and item-level settings

    object (brandId)

    The id of this item's brand

    brand
    string

    The name of this item's brand

    size
    string

    The description of this item's size

    shelfSequence
    integer <int32>

    The number of this item's shelf sequence

    location
    string

    The description of this item's location within the store

    hasModifiers
    boolean

    Indicates whether the item has modifiers which require variation ID before they can be added to the cart.

    hasLinkedItems
    boolean

    Indicates if an item has linked items, such as made-to-order items

    averageWeight
    number

    If a weighted item should be sold by average weight, the average weight will be indicated here

    hasRestriction
    boolean

    Indicates if a sales restriction is applied to an item that would require cashier involvement when order is fulfilled (e.g. a check ID requirement).

    hasAgeRestriction
    boolean

    Indicates if an item has an age restriction and the shopper's age should be verified on pickup or delivery.

    cashierApprovalRequired
    boolean

    Indicates if an item must be approved by a cashier at the POS, and thus should not be used for pay-now

    hasTimeRestrictions
    boolean

    Indicates if an item has time restrictions and cannot be purchased at certain times.

    excludeFromCombos
    boolean

    Indicates if this item should be excluded from dynamic promotions.

    prohibitedSalesScheduleNames
    Array of strings

    Names of the Prohibited Sales Schedules that currently apply to this item.

    object (departmentId)

    ID of the department this item belongs to

    department
    string

    Name of the department this item belongs to

    discountType
    string
    Enum: "override" "dollar" "percent"

    If this item has an Auto Discount, this is the type of discount

    loyalty
    number

    Estimated loyalty points to be accrued on this item. This is calculated based on the actual price and the loyalty multiplier.

    availability
    string
    Enum: "out" "low" "high" "order" "showQuantity"

    Item availability status.

    onHand
    number

    Estimated quantity on hand. This is only set if the 'Display item quantity' setting is enabled in Web Office. If the 'Display item quantity' setting is enabled and the 'Limited availability quantity' is greater than 0, then the on hand will only be returned if the 'Limited availability quantity' is greater than the on hand. If the 'Limited availability quantity' is zero, then the on hand will be returned as long as it is greater than 0.

    servingsPerContainer
    string

    Servings Per Container entered in the Nutrition Facts field in Web Office.

    servingSize
    string

    Serving size entered in the Nutrition Facts field in Web Office.

    nutritionFactsHtml
    string

    HTML document with embedded styles that can be used to render a Nutrition Facts panel.

    ingredients
    string

    Ingredients field from the Health & Nutrition section in Web Office

    local
    boolean

    True if the local checkbox is checked in Web Office for the current store on the inventory page. This field is used to indicate if the item is sourced locally.

    regionalDescriptor
    string

    Regional Descriptor field from the Marketing section in Web Office

    productionMethod
    string

    Production Method from the Health & Nutrition section in Web Office

    Array of objects (CustomSource)

    List of custom sources linked to this item that have the type ITEM_TAB_HTML.This is populated from the Description Tabs field inside of the WebCart section for an item in Web Office.

    Array of objects (ItemSummary)

    List of alternate IDs for this item. This is populated from the Alternate ID section in Web Office.

    Array of objects (Image)

    List of item images. This is populated from the Product Images input in Web Office.

    discontinued
    boolean

    Response samples

    Content type
    application/json
    {
    • "id": "INV-1000-12",
    • "image": "1000-345",
    • "scanCode": "123456789012",
    • "name": "Test Item Name",
    • "alternateName": "Alternate Name",
    • "suggestedPrice": 1.99,
    • "actualPriceDivider": 2,
    • "actualPrice": 4,
    • "autoDiscount": "10% Off 3 or more.",
    • "promo": "Sunday Special",
    • "buyDown": "Test Buydown",
    • "weightProfile": {
      • "abbrv": "lb",
      • "decimals": 2,
      • "selectCount": 15,
      • "selectMinimum": 0.5,
      • "selectIncrement": 0.25,
      • "allowWeightedQuantity": false
      },
    • "baseItem": "INV-1000-5",
    • "ascQuantity": 0,
    • "maxQuantity": 50,
    • "maxBaseQuantity": 0,
    • "quantityLimitData": {
      • "vendorGroup": "RJ",
      • "quantityLimit": 20,
      • "comboPackAmount": 3
      },
    • "attributes": [
      • {
        • "image": "string",
        • "name": "Organic"
        }
      ],
    • "itemGroups": [
      • "string"
      ],
    • "specialTenders": [
      • {
        • "id": "WPM-1000-3",
        • "name": "EBT SNAP Online",
        • "tenderType": 4
        }
      ],
    • "coupons": [
      • {
        • "id": "gc:0100037-00004",
        • "name": "FIJI: $1.00 off",
        • "requirements": null,
        • "description": "$1.00 off select Fiji products",
        • "category": null,
        • "brand": "FIJI",
        • "startDate": "2024-04-05",
        • "endDate": "2034-04-05",
        • "redeemLimit": "1",
        • "requirementUpcs": [
          • "00632565000012"
          ],
        • "rewardUpcs": [ ],
        • "targeted": false,
        • "featured": false,
        • "enabled": false,
        • "sortOrder": 1,
        • "validBanners": null,
        • "validLocations": null,
        • "validForStore": true
        }
      ],
    • "outOfStock": false,
    • "sellOutOfStock": false,
    • "brandId": "1000-12",
    • "brand": "Maria's",
    • "size": "12oz",
    • "shelfSequence": 123,
    • "location": "Aisle 3, Section 5, Shelf 1",
    • "hasModifiers": false,
    • "hasLinkedItems": true,
    • "averageWeight": 0.34,
    • "hasRestriction": false,
    • "hasAgeRestriction": true,
    • "cashierApprovalRequired": true,
    • "hasTimeRestrictions": true,
    • "excludeFromCombos": true,
    • "prohibitedSalesScheduleNames": [
      • "string"
      ],
    • "departmentId": "1000-6",
    • "department": "Grocery",
    • "discountType": "override",
    • "loyalty": 12,
    • "availability": "low",
    • "onHand": 13,
    • "servingsPerContainer": "10",
    • "servingSize": "1 CONE (4 g)",
    • "nutritionFactsHtml": "<div><style>...</style><h1>Nutrition Facts</h1></div>",
    • "ingredients": "POTATO STARCH, TAPIOCA STARCH, PALM OIL (GMO FREE), SUGAR, DIETARY FIBERS, EMUSLIFIER (LECITHIN), COCOA POWDER, XANTHAN GUM, SALT, BAKING SODA, NATURAL VANILLA.",
    • "local": true,
    • "regionalDescriptor": "United States of America",
    • "productionMethod": "Bottled by Machines",
    • "customSources": [
      • {
        • "id": "1000-133079",
        • "label": "Custom Source",
        • "content": "Custom Source"
        }
      ],
    • "alternateItems": [
      • {
        • "id": "INV-1000-12",
        • "image": "1000-345",
        • "scanCode": "123456789012",
        • "name": "Test Item Name",
        • "alternateName": "Alternate Name",
        • "suggestedPrice": 1.99,
        • "actualPriceDivider": 2,
        • "actualPrice": 4,
        • "autoDiscount": "10% Off 3 or more.",
        • "promo": "Sunday Special",
        • "buyDown": "Test Buydown",
        • "weightProfile": {
          • "abbrv": "lb",
          • "decimals": 2,
          • "selectCount": 15,
          • "selectMinimum": 0.5,
          • "selectIncrement": 0.25,
          • "allowWeightedQuantity": false
          },
        • "baseItem": "INV-1000-5",
        • "ascQuantity": 0,
        • "maxQuantity": 50,
        • "maxBaseQuantity": 0,
        • "quantityLimitData": {
          • "vendorGroup": "RJ",
          • "quantityLimit": 20,
          • "comboPackAmount": 3
          },
        • "attributes": [
          • {
            • "image": "string",
            • "name": "Organic"
            }
          ],
        • "itemGroups": [
          • "string"
          ],
        • "specialTenders": [
          • {
            • "id": "WPM-1000-3",
            • "name": "EBT SNAP Online",
            • "tenderType": 4
            }
          ],
        • "coupons": [
          • {
            • "id": "gc:0100037-00004",
            • "name": "FIJI: $1.00 off",
            • "requirements": null,
            • "description": "$1.00 off select Fiji products",
            • "category": null,
            • "brand": "FIJI",
            • "startDate": "2024-04-05",
            • "endDate": "2034-04-05",
            • "redeemLimit": "1",
            • "requirementUpcs": [
              • "00632565000012"
              ],
            • "rewardUpcs": [ ],
            • "targeted": false,
            • "featured": false,
            • "enabled": false,
            • "sortOrder": 1,
            • "validBanners": null,
            • "validLocations": null,
            • "validForStore": true
            }
          ],
        • "outOfStock": false,
        • "sellOutOfStock": false,
        • "brandId": "1000-12",
        • "brand": "Maria's",
        • "size": "12oz",
        • "shelfSequence": 123,
        • "location": "Aisle 3, Section 5, Shelf 1",
        • "hasModifiers": false,
        • "hasLinkedItems": true,
        • "averageWeight": 0.34,
        • "hasRestriction": false,
        • "hasAgeRestriction": true,
        • "cashierApprovalRequired": true,
        • "hasTimeRestrictions": true,
        • "excludeFromCombos": true,
        • "prohibitedSalesScheduleNames": [
          • "string"
          ],
        • "departmentId": "1000-6",
        • "department": "Grocery",
        • "discountType": "override",
        • "discontinued": true
        }
      ],
    • "images": [
      • {
        • "id": "1000-133079",
        • "caption": "string"
        }
      ],
    • "discontinued": true
    }

    Item Summary by Scan Code

    Returns Item Summary data given the item's scan code.
    Note that multiple items will be returned if the scan code corresponds to an Alternate ID

    query Parameters
    sc
    required
    string
    Example: sc=049000000276

    The scan code to look up.

    codeType
    string
    Enum: "UPCA" "upc_a" "UPCE" "upc_e" "EAN13" "ean_13"

    The type of sc.

    Responses

    Response Schema: application/json
    originalPrice
    number

    The base price embedded in a GS1 scan code. This is encoded in a custom ECRS format in GS1 DataBars using Application Identifier 91. WebCart parses this format and returns the numerical value. Only returned if one of embeddedPrice, embeddedNetWeight, or expiration are available.

    embeddedPrice
    number

    The current price embedded in the scan code. This could come from a GS1 DataBar or a UPCA Type 2 barcode. In a GS1 DataBar, this is Application Identifier 392.

    embeddedDiscount
    number

    The discount embedded in a KNET markdown label (prefix 9980).

    embeddedNetWeight
    number

    The weight in kilograms embedded in a GS1 scan code. This is Application Identifier 310.

    expiration
    string <date>

    The expiration date of the scan code. This is only available in GS1 DataBars and KNET markdown labels (prefix 9980). In a GS1 DataBar, this is Application Identifier 17.

    Array of objects (ItemSummary)

    List of items matching the UPC. Note that there can be multiple matches if the scan code corresponds to an Alternate ID.

    Response samples

    Content type
    application/json
    {
    • "originalPrice": 20,
    • "embeddedPrice": 15.15,
    • "embeddedDiscount": 1.2,
    • "embeddedNetWeight": 1.02,
    • "expiration": "2019-08-24",
    • "items": [
      • {
        • "id": "INV-1000-12",
        • "image": "1000-345",
        • "scanCode": "123456789012",
        • "name": "Test Item Name",
        • "alternateName": "Alternate Name",
        • "suggestedPrice": 1.99,
        • "actualPriceDivider": 2,
        • "actualPrice": 4,
        • "autoDiscount": "10% Off 3 or more.",
        • "promo": "Sunday Special",
        • "buyDown": "Test Buydown",
        • "weightProfile": {
          • "abbrv": "lb",
          • "decimals": 2,
          • "selectCount": 15,
          • "selectMinimum": 0.5,
          • "selectIncrement": 0.25,
          • "allowWeightedQuantity": false
          },
        • "baseItem": "INV-1000-5",
        • "ascQuantity": 0,
        • "maxQuantity": 50,
        • "maxBaseQuantity": 0,
        • "quantityLimitData": {
          • "vendorGroup": "RJ",
          • "quantityLimit": 20,
          • "comboPackAmount": 3
          },
        • "attributes": [
          • {
            • "image": "string",
            • "name": "Organic"
            }
          ],
        • "itemGroups": [
          • "string"
          ],
        • "specialTenders": [
          • {
            • "id": "WPM-1000-3",
            • "name": "EBT SNAP Online",
            • "tenderType": 4
            }
          ],
        • "coupons": [
          • {
            • "id": "gc:0100037-00004",
            • "name": "FIJI: $1.00 off",
            • "requirements": null,
            • "description": "$1.00 off select Fiji products",
            • "category": null,
            • "brand": "FIJI",
            • "startDate": "2024-04-05",
            • "endDate": "2034-04-05",
            • "redeemLimit": "1",
            • "requirementUpcs": [
              • "00632565000012"
              ],
            • "rewardUpcs": [ ],
            • "targeted": false,
            • "featured": false,
            • "enabled": false,
            • "sortOrder": 1,
            • "validBanners": null,
            • "validLocations": null,
            • "validForStore": true
            }
          ],
        • "outOfStock": false,
        • "sellOutOfStock": false,
        • "brandId": "1000-12",
        • "brand": "Maria's",
        • "size": "12oz",
        • "shelfSequence": 123,
        • "location": "Aisle 3, Section 5, Shelf 1",
        • "hasModifiers": false,
        • "hasLinkedItems": true,
        • "averageWeight": 0.34,
        • "hasRestriction": false,
        • "hasAgeRestriction": true,
        • "cashierApprovalRequired": true,
        • "hasTimeRestrictions": true,
        • "excludeFromCombos": true,
        • "prohibitedSalesScheduleNames": [
          • "string"
          ],
        • "departmentId": "1000-6",
        • "department": "Grocery",
        • "discountType": "override",
        • "discontinued": true
        }
      ]
    }

    Item detail by typed item ID

    Returns detailed item data given the item's typed ID.
    This is an expansion on the item summary data returned by the /i/q and /i/summaries endpoints.
    This response is traditionally used to populate the item detail page using the item's scancode.
    Note that only non-empty fields will be returned in the ItemDetail response object.

    path Parameters
    id
    required
    string
    Example: INV-1000-12

    The typed unique ID of the requested item

    Responses

    Response Schema: application/json
    id
    string

    The unique ID of the item

    image
    string

    The id of the image of an item

    scanCode
    string

    The scancode for the item

    name
    string

    The name of the item

    alternateName
    string

    The alternate name of an item, if available. This is used to present items in different languages.This is the Receipt Alias field from the Additional Receipt Alias tab in the Marketing section of Web Office.

    suggestedPrice
    number

    The suggested or pre-sale price of the item

    actualPriceDivider
    integer <int32>

    If a price divider is in effect this contains the divider

    actualPrice
    number

    The actual price of the item. This is typically the base price but can take into account special pricing.

    autoDiscount
    string

    If an auto-discount applies to an item it is named here

    promo
    string

    If the item is on any type of promotion the name of that promotion is indicated

    buyDown
    string

    If a buydown is active for the given item it is named here

    object (WeightProfileDto)

    If the item is sold by weight this object describes the weight parameters

    baseItem
    string

    If this item is an additional scan code (alternate ID) then this is the ID of its base item

    ascQuantity
    number

    If this item is an additional scan code (alternate ID) then this is the ASC quantity of the item

    maxQuantity
    number

    The max number of this item that can be purchased or added to the cart in a single transaction

    maxBaseQuantity
    number

    The maximum base quantity that should be set for this item taking into account on-hands. That is, the shopper should not be allowed to add more than this quantity to their cart.

    object (QuantityLimitDataDescription)

    Quantity limits as given by RACS (Retail Access Control Standards).

    Array of objects (ItemAttributeDto)

    The list of health attributes which apply to this item

    itemGroups
    Array of strings

    The list of item groups to which this item belongs

    Array of objects (WebPaymentMethodDto)

    Special tenders that this item is eligible for, such as EBT or Loyalty

    Array of objects (ExternalCoupon)

    The list of external/digital coupons which apply to this item

    outOfStock
    boolean

    Indicates if this item is currently out of stock

    sellOutOfStock
    boolean

    Indicates if this item can be sold while out of stock. Based on global and item-level settings

    object (brandId)

    The id of this item's brand

    brand
    string

    The name of this item's brand

    size
    string

    The description of this item's size

    shelfSequence
    integer <int32>

    The number of this item's shelf sequence

    location
    string

    The description of this item's location within the store

    hasModifiers
    boolean

    Indicates whether the item has modifiers which require variation ID before they can be added to the cart.

    hasLinkedItems
    boolean

    Indicates if an item has linked items, such as made-to-order items

    averageWeight
    number

    If a weighted item should be sold by average weight, the average weight will be indicated here

    hasRestriction
    boolean

    Indicates if a sales restriction is applied to an item that would require cashier involvement when order is fulfilled (e.g. a check ID requirement).

    hasAgeRestriction
    boolean

    Indicates if an item has an age restriction and the shopper's age should be verified on pickup or delivery.

    cashierApprovalRequired
    boolean

    Indicates if an item must be approved by a cashier at the POS, and thus should not be used for pay-now

    hasTimeRestrictions
    boolean

    Indicates if an item has time restrictions and cannot be purchased at certain times.

    excludeFromCombos
    boolean

    Indicates if this item should be excluded from dynamic promotions.

    prohibitedSalesScheduleNames
    Array of strings

    Names of the Prohibited Sales Schedules that currently apply to this item.

    object (departmentId)

    ID of the department this item belongs to

    department
    string

    Name of the department this item belongs to

    discountType
    string
    Enum: "override" "dollar" "percent"

    If this item has an Auto Discount, this is the type of discount

    loyalty
    number

    Estimated loyalty points to be accrued on this item. This is calculated based on the actual price and the loyalty multiplier.

    availability
    string
    Enum: "out" "low" "high" "order" "showQuantity"

    Item availability status.

    onHand
    number

    Estimated quantity on hand. This is only set if the 'Display item quantity' setting is enabled in Web Office. If the 'Display item quantity' setting is enabled and the 'Limited availability quantity' is greater than 0, then the on hand will only be returned if the 'Limited availability quantity' is greater than the on hand. If the 'Limited availability quantity' is zero, then the on hand will be returned as long as it is greater than 0.

    servingsPerContainer
    string

    Servings Per Container entered in the Nutrition Facts field in Web Office.

    servingSize
    string

    Serving size entered in the Nutrition Facts field in Web Office.

    nutritionFactsHtml
    string

    HTML document with embedded styles that can be used to render a Nutrition Facts panel.

    ingredients
    string

    Ingredients field from the Health & Nutrition section in Web Office

    local
    boolean

    True if the local checkbox is checked in Web Office for the current store on the inventory page. This field is used to indicate if the item is sourced locally.

    regionalDescriptor
    string

    Regional Descriptor field from the Marketing section in Web Office

    productionMethod
    string

    Production Method from the Health & Nutrition section in Web Office

    Array of objects (CustomSource)

    List of custom sources linked to this item that have the type ITEM_TAB_HTML.This is populated from the Description Tabs field inside of the WebCart section for an item in Web Office.

    Array of objects (ItemSummary)

    List of alternate IDs for this item. This is populated from the Alternate ID section in Web Office.

    Array of objects (Image)

    List of item images. This is populated from the Product Images input in Web Office.

    discontinued
    boolean

    Response samples

    Content type
    application/json
    {
    • "id": "INV-1000-12",
    • "image": "1000-345",
    • "scanCode": "123456789012",
    • "name": "Test Item Name",
    • "alternateName": "Alternate Name",
    • "suggestedPrice": 1.99,
    • "actualPriceDivider": 2,
    • "actualPrice": 4,
    • "autoDiscount": "10% Off 3 or more.",
    • "promo": "Sunday Special",
    • "buyDown": "Test Buydown",
    • "weightProfile": {
      • "abbrv": "lb",
      • "decimals": 2,
      • "selectCount": 15,
      • "selectMinimum": 0.5,
      • "selectIncrement": 0.25,
      • "allowWeightedQuantity": false
      },
    • "baseItem": "INV-1000-5",
    • "ascQuantity": 0,
    • "maxQuantity": 50,
    • "maxBaseQuantity": 0,
    • "quantityLimitData": {
      • "vendorGroup": "RJ",
      • "quantityLimit": 20,
      • "comboPackAmount": 3
      },
    • "attributes": [
      • {
        • "image": "string",
        • "name": "Organic"
        }
      ],
    • "itemGroups": [
      • "string"
      ],
    • "specialTenders": [
      • {
        • "id": "WPM-1000-3",
        • "name": "EBT SNAP Online",
        • "tenderType": 4
        }
      ],
    • "coupons": [
      • {
        • "id": "gc:0100037-00004",
        • "name": "FIJI: $1.00 off",
        • "requirements": null,
        • "description": "$1.00 off select Fiji products",
        • "category": null,
        • "brand": "FIJI",
        • "startDate": "2024-04-05",
        • "endDate": "2034-04-05",
        • "redeemLimit": "1",
        • "requirementUpcs": [
          • "00632565000012"
          ],
        • "rewardUpcs": [ ],
        • "targeted": false,
        • "featured": false,
        • "enabled": false,
        • "sortOrder": 1,
        • "validBanners": null,
        • "validLocations": null,
        • "validForStore": true
        }
      ],
    • "outOfStock": false,
    • "sellOutOfStock": false,
    • "brandId": "1000-12",
    • "brand": "Maria's",
    • "size": "12oz",
    • "shelfSequence": 123,
    • "location": "Aisle 3, Section 5, Shelf 1",
    • "hasModifiers": false,
    • "hasLinkedItems": true,
    • "averageWeight": 0.34,
    • "hasRestriction": false,
    • "hasAgeRestriction": true,
    • "cashierApprovalRequired": true,
    • "hasTimeRestrictions": true,
    • "excludeFromCombos": true,
    • "prohibitedSalesScheduleNames": [
      • "string"
      ],
    • "departmentId": "1000-6",
    • "department": "Grocery",
    • "discountType": "override",
    • "loyalty": 12,
    • "availability": "low",
    • "onHand": 13,
    • "servingsPerContainer": "10",
    • "servingSize": "1 CONE (4 g)",
    • "nutritionFactsHtml": "<div><style>...</style><h1>Nutrition Facts</h1></div>",
    • "ingredients": "POTATO STARCH, TAPIOCA STARCH, PALM OIL (GMO FREE), SUGAR, DIETARY FIBERS, EMUSLIFIER (LECITHIN), COCOA POWDER, XANTHAN GUM, SALT, BAKING SODA, NATURAL VANILLA.",
    • "local": true,
    • "regionalDescriptor": "United States of America",
    • "productionMethod": "Bottled by Machines",
    • "customSources": [
      • {
        • "id": "1000-133079",
        • "label": "Custom Source",
        • "content": "Custom Source"
        }
      ],
    • "alternateItems": [
      • {
        • "id": "INV-1000-12",
        • "image": "1000-345",
        • "scanCode": "123456789012",
        • "name": "Test Item Name",
        • "alternateName": "Alternate Name",
        • "suggestedPrice": 1.99,
        • "actualPriceDivider": 2,
        • "actualPrice": 4,
        • "autoDiscount": "10% Off 3 or more.",
        • "promo": "Sunday Special",
        • "buyDown": "Test Buydown",
        • "weightProfile": {
          • "abbrv": "lb",
          • "decimals": 2,
          • "selectCount": 15,
          • "selectMinimum": 0.5,
          • "selectIncrement": 0.25,
          • "allowWeightedQuantity": false
          },
        • "baseItem": "INV-1000-5",
        • "ascQuantity": 0,
        • "maxQuantity": 50,
        • "maxBaseQuantity": 0,
        • "quantityLimitData": {
          • "vendorGroup": "RJ",
          • "quantityLimit": 20,
          • "comboPackAmount": 3
          },
        • "attributes": [
          • {
            • "image": "string",
            • "name": "Organic"
            }
          ],
        • "itemGroups": [
          • "string"
          ],
        • "specialTenders": [
          • {
            • "id": "WPM-1000-3",
            • "name": "EBT SNAP Online",
            • "tenderType": 4
            }
          ],
        • "coupons": [
          • {
            • "id": "gc:0100037-00004",
            • "name": "FIJI: $1.00 off",
            • "requirements": null,
            • "description": "$1.00 off select Fiji products",
            • "category": null,
            • "brand": "FIJI",
            • "startDate": "2024-04-05",
            • "endDate": "2034-04-05",
            • "redeemLimit": "1",
            • "requirementUpcs": [
              • "00632565000012"
              ],
            • "rewardUpcs": [ ],
            • "targeted": false,
            • "featured": false,
            • "enabled": false,
            • "sortOrder": 1,
            • "validBanners": null,
            • "validLocations": null,
            • "validForStore": true
            }
          ],
        • "outOfStock": false,
        • "sellOutOfStock": false,
        • "brandId": "1000-12",
        • "brand": "Maria's",
        • "size": "12oz",
        • "shelfSequence": 123,
        • "location": "Aisle 3, Section 5, Shelf 1",
        • "hasModifiers": false,
        • "hasLinkedItems": true,
        • "averageWeight": 0.34,
        • "hasRestriction": false,
        • "hasAgeRestriction": true,
        • "cashierApprovalRequired": true,
        • "hasTimeRestrictions": true,
        • "excludeFromCombos": true,
        • "prohibitedSalesScheduleNames": [
          • "string"
          ],
        • "departmentId": "1000-6",
        • "department": "Grocery",
        • "discountType": "override",
        • "discontinued": true
        }
      ],
    • "images": [
      • {
        • "id": "1000-133079",
        • "caption": "string"
        }
      ],
    • "discontinued": true
    }

    Fetch item by typed ID and variation.

    Typically used for MTO items. Once an MTO item has been modified and a variation created, this endpoint will return the item with the selected modifier selections using the variation.

    path Parameters
    id
    required
    string
    Example: INV-1000-12

    The typed unique ID of the requested item

    Request Body schema: application/json
    variation
    string

    The requested variation string.

    Responses

    Response Schema: application/json
    terminalGroup
    string

    Unique identifier for the terminal group associated with this Item Modifier

    object (ItemModifierCategoryTree)

    Linked items associated with this item.

    Array of objects (ItemModifierCategoryTree)

    List of item modifier categories.

    object

    Map of item modifier answers, where the key is a identifier for the item modifier category item and the value is an object describing the answer.

    Request samples

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

    Response samples

    Content type
    application/json
    {
    • "terminalGroup": "1000-345",
    • "linkedItems": {
      • "id": "string",
      • "name": "string",
      • "min": 0,
      • "max": 0,
      • "autoDoneOnMax": true,
      • "scoBackground": "1000-194959",
      • "scoWidth": 0,
      • "scoHeight": 0,
      • "items": [
        • {
          • "id": "[1000-5573]",
          • "order": 0,
          • "inv": "1000-78",
          • "quantities": {
            • "id": "1002-1259",
            • "price": 0.5,
            • "name": "A little",
            • "defaultItem": true,
            • "quantity": 1,
            • "scoSelectedImage": "string"
            },
          • "minimum": 0,
          • "maximum": 0,
          • "increment": 0,
          • "price": 0,
          • "freeQuantity": 0,
          • "countTowardsMaxSelections": true,
          • "subTree": { },
          • "name": "string",
          • "image": "1000-194959",
          • "scoUnselectedImage": "1000-194959",
          • "scoSelectedImage": "1000-194959"
          }
        ],
      • "prohibitAlterations": true
      },
    • "categories": [
      • {
        • "id": "string",
        • "name": "string",
        • "min": 0,
        • "max": 0,
        • "autoDoneOnMax": true,
        • "scoBackground": "1000-194959",
        • "scoWidth": 0,
        • "scoHeight": 0,
        • "items": [
          • {
            • "id": "[1000-5573]",
            • "order": 0,
            • "inv": "1000-78",
            • "quantities": {
              • "id": "1002-1259",
              • "price": 0.5,
              • "name": "A little",
              • "defaultItem": true,
              • "quantity": 1,
              • "scoSelectedImage": "string"
              },
            • "minimum": 0,
            • "maximum": 0,
            • "increment": 0,
            • "price": 0,
            • "freeQuantity": 0,
            • "countTowardsMaxSelections": true,
            • "subTree": { },
            • "name": "string",
            • "image": "1000-194959",
            • "scoUnselectedImage": "1000-194959",
            • "scoSelectedImage": "1000-194959"
            }
          ],
        • "prohibitAlterations": true
        }
      ],
    • "answers": {
      • "[1000-6630]": {
        • "id": "[1000-6630]",
        • "quantity": 1
        },
      • "[1000-6609]": {
        • "id": "[1000-6609]",
        • "quantity": 1
        }
      }
    }

    Item summaries for list of scan codes

    Given a comma delimited list of scan codes, a list of item summaries will be returned.
    This is a convenience method for getting multiple item summaries in a single request.
    Note that this endpoint does not return detailed item data. For that, use the /i/detail or /i/ endpoints.

    query Parameters
    scanCodes
    required
    string
    Example: scanCodes=049000000276,018775121196

    List of scancodes to look up

    Responses

    Response Schema: application/json
    Array
    id
    string

    The unique ID of the item

    image
    string

    The id of the image of an item

    scanCode
    string

    The scancode for the item

    name
    string

    The name of the item

    alternateName
    string

    The alternate name of an item, if available. This is used to present items in different languages.This is the Receipt Alias field from the Additional Receipt Alias tab in the Marketing section of Web Office.

    suggestedPrice
    number

    The suggested or pre-sale price of the item

    actualPriceDivider
    integer <int32>

    If a price divider is in effect this contains the divider

    actualPrice
    number

    The actual price of the item. This is typically the base price but can take into account special pricing.

    autoDiscount
    string

    If an auto-discount applies to an item it is named here

    promo
    string

    If the item is on any type of promotion the name of that promotion is indicated

    buyDown
    string

    If a buydown is active for the given item it is named here

    object (WeightProfileDto)

    If the item is sold by weight this object describes the weight parameters

    baseItem
    string

    If this item is an additional scan code (alternate ID) then this is the ID of its base item

    ascQuantity
    number

    If this item is an additional scan code (alternate ID) then this is the ASC quantity of the item

    maxQuantity
    number

    The max number of this item that can be purchased or added to the cart in a single transaction

    maxBaseQuantity
    number

    The maximum base quantity that should be set for this item taking into account on-hands. That is, the shopper should not be allowed to add more than this quantity to their cart.

    object (QuantityLimitDataDescription)

    Quantity limits as given by RACS (Retail Access Control Standards).

    Array of objects (ItemAttributeDto)

    The list of health attributes which apply to this item

    itemGroups
    Array of strings

    The list of item groups to which this item belongs

    Array of objects (WebPaymentMethodDto)

    Special tenders that this item is eligible for, such as EBT or Loyalty

    Array of objects (ExternalCoupon)

    The list of external/digital coupons which apply to this item

    outOfStock
    boolean

    Indicates if this item is currently out of stock

    sellOutOfStock
    boolean

    Indicates if this item can be sold while out of stock. Based on global and item-level settings

    object (brandId)

    The id of this item's brand

    brand
    string

    The name of this item's brand

    size
    string

    The description of this item's size

    shelfSequence
    integer <int32>

    The number of this item's shelf sequence

    location
    string

    The description of this item's location within the store

    hasModifiers
    boolean

    Indicates whether the item has modifiers which require variation ID before they can be added to the cart.

    hasLinkedItems
    boolean

    Indicates if an item has linked items, such as made-to-order items

    averageWeight
    number

    If a weighted item should be sold by average weight, the average weight will be indicated here

    hasRestriction
    boolean

    Indicates if a sales restriction is applied to an item that would require cashier involvement when order is fulfilled (e.g. a check ID requirement).

    hasAgeRestriction
    boolean

    Indicates if an item has an age restriction and the shopper's age should be verified on pickup or delivery.

    cashierApprovalRequired
    boolean

    Indicates if an item must be approved by a cashier at the POS, and thus should not be used for pay-now

    hasTimeRestrictions
    boolean

    Indicates if an item has time restrictions and cannot be purchased at certain times.

    excludeFromCombos
    boolean

    Indicates if this item should be excluded from dynamic promotions.

    prohibitedSalesScheduleNames
    Array of strings

    Names of the Prohibited Sales Schedules that currently apply to this item.

    object (departmentId)

    ID of the department this item belongs to

    department
    string

    Name of the department this item belongs to

    discountType
    string
    Enum: "override" "dollar" "percent"

    If this item has an Auto Discount, this is the type of discount

    discontinued
    boolean

    Response samples

    Content type
    application/json
    [
    • {
      • "id": "INV-1000-12",
      • "image": "1000-345",
      • "scanCode": "123456789012",
      • "name": "Test Item Name",
      • "alternateName": "Alternate Name",
      • "suggestedPrice": 1.99,
      • "actualPriceDivider": 2,
      • "actualPrice": 4,
      • "autoDiscount": "10% Off 3 or more.",
      • "promo": "Sunday Special",
      • "buyDown": "Test Buydown",
      • "weightProfile": {
        • "abbrv": "lb",
        • "decimals": 2,
        • "selectCount": 15,
        • "selectMinimum": 0.5,
        • "selectIncrement": 0.25,
        • "allowWeightedQuantity": false
        },
      • "baseItem": "INV-1000-5",
      • "ascQuantity": 0,
      • "maxQuantity": 50,
      • "maxBaseQuantity": 0,
      • "quantityLimitData": {
        • "vendorGroup": "RJ",
        • "quantityLimit": 20,
        • "comboPackAmount": 3
        },
      • "attributes": [
        • {
          • "image": "string",
          • "name": "Organic"
          }
        ],
      • "itemGroups": [
        • "string"
        ],
      • "specialTenders": [
        • {
          • "id": "WPM-1000-3",
          • "name": "EBT SNAP Online",
          • "tenderType": 4
          }
        ],
      • "coupons": [
        • {
          • "id": "gc:0100037-00004",
          • "name": "FIJI: $1.00 off",
          • "requirements": null,
          • "description": "$1.00 off select Fiji products",
          • "category": null,
          • "brand": "FIJI",
          • "startDate": "2024-04-05",
          • "endDate": "2034-04-05",
          • "redeemLimit": "1",
          • "requirementUpcs": [
            • "00632565000012"
            ],
          • "rewardUpcs": [ ],
          • "targeted": false,
          • "featured": false,
          • "enabled": false,
          • "sortOrder": 1,
          • "validBanners": null,
          • "validLocations": null,
          • "validForStore": true
          }
        ],
      • "outOfStock": false,
      • "sellOutOfStock": false,
      • "brandId": "1000-12",
      • "brand": "Maria's",
      • "size": "12oz",
      • "shelfSequence": 123,
      • "location": "Aisle 3, Section 5, Shelf 1",
      • "hasModifiers": false,
      • "hasLinkedItems": true,
      • "averageWeight": 0.34,
      • "hasRestriction": false,
      • "hasAgeRestriction": true,
      • "cashierApprovalRequired": true,
      • "hasTimeRestrictions": true,
      • "excludeFromCombos": true,
      • "prohibitedSalesScheduleNames": [
        • "string"
        ],
      • "departmentId": "1000-6",
      • "department": "Grocery",
      • "discountType": "override",
      • "discontinued": true
      }
    ]

    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

    Get List

    Returns the requested list for the associated customer.

    path Parameters
    id
    required
    string
    Example: 1002-1350700

    Unique ID for the requested list.

    Responses

    Response Schema: application/json
    id
    string

    The unique ID of the list.

    name
    string

    The name of the list

    type
    string
    Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" "CUSTOM" "FAVORITES" "SAVE_FOR_LATER"

    The type of the list. This is used to determine the list's purpose. For example, a save for later, custom, or favorites list.

    detail
    boolean

    Value used to denote that this response contains list details. Always true.

    Array of objects (ListItemDetail)

    The items in the list. This is a detailed view of the items in the list.

    count
    number

    The number of items in the list. This is influenced by the quantity of each item in the list.

    Response samples

    Content type
    application/json
    {
    • "id": "1000-345",
    • "name": "Favorites",
    • "type": "CUSTOM",
    • "detail": true,
    • "items": [
      • {
        • "item": {
          • "id": "INV-1000-12",
          • "image": "1000-345",
          • "scanCode": "123456789012",
          • "name": "Test Item Name",
          • "alternateName": "Alternate Name",
          • "suggestedPrice": 1.99,
          • "actualPriceDivider": 2,
          • "actualPrice": 4,
          • "autoDiscount": "10% Off 3 or more.",
          • "promo": "Sunday Special",
          • "buyDown": "Test Buydown",
          • "weightProfile": {
            • "abbrv": "lb",
            • "decimals": 2,
            • "selectCount": 15,
            • "selectMinimum": 0.5,
            • "selectIncrement": 0.25,
            • "allowWeightedQuantity": false
            },
          • "baseItem": "INV-1000-5",
          • "ascQuantity": 0,
          • "maxQuantity": 50,
          • "maxBaseQuantity": 0,
          • "quantityLimitData": {
            • "vendorGroup": "RJ",
            • "quantityLimit": 20,
            • "comboPackAmount": 3
            },
          • "attributes": [
            • {
              • "image": "string",
              • "name": "Organic"
              }
            ],
          • "itemGroups": [
            • "string"
            ],
          • "specialTenders": [
            • {
              • "id": "WPM-1000-3",
              • "name": "EBT SNAP Online",
              • "tenderType": 4
              }
            ],
          • "coupons": [
            • {
              • "id": "gc:0100037-00004",
              • "name": "FIJI: $1.00 off",
              • "requirements": null,
              • "description": "$1.00 off select Fiji products",
              • "category": null,
              • "brand": "FIJI",
              • "startDate": "2024-04-05",
              • "endDate": "2034-04-05",
              • "redeemLimit": "1",
              • "requirementUpcs": [
                • "00632565000012"
                ],
              • "rewardUpcs": [ ],
              • "targeted": false,
              • "featured": false,
              • "enabled": false,
              • "sortOrder": 1,
              • "validBanners": null,
              • "validLocations": null,
              • "validForStore": true
              }
            ],
          • "outOfStock": false,
          • "sellOutOfStock": false,
          • "brandId": "1000-12",
          • "brand": "Maria's",
          • "size": "12oz",
          • "shelfSequence": 123,
          • "location": "Aisle 3, Section 5, Shelf 1",
          • "hasModifiers": false,
          • "hasLinkedItems": true,
          • "averageWeight": 0.34,
          • "hasRestriction": false,
          • "hasAgeRestriction": true,
          • "cashierApprovalRequired": true,
          • "hasTimeRestrictions": true,
          • "excludeFromCombos": true,
          • "prohibitedSalesScheduleNames": [
            • "string"
            ],
          • "departmentId": "1000-6",
          • "department": "Grocery",
          • "discountType": "override",
          • "discontinued": true
          },
        • "variation": {
          • "id": "YLMfH9nO9RVY6zpGlSIFlgIrBeMQIh+/skdSdjyKw38=",
          • "priceOfModifiers": 4.55,
          • "modifiers": [
            • {
              • "type": "link",
              • "name": "string",
              • "quantity": 0,
              • "descriptor": "string",
              • "priceOfModifier": 0
              }
            ]
          },
        • "quantity": 2,
        • "weightedItemQuantity": 3,
        • "listItemSelected": false
        }
      ],
    • "count": 5
    }

    Delete List

    Deletes the requested list for the associated customer. Connection to the remote database is required.

    path Parameters
    id
    required
    string
    Example: 1002-1350700

    Unique ID for the list to delete.

    Responses

    Lists

    Returns all lists saved for the associated customer.
    If the customer is not logged in or lists are disabled, an empty list will be returned.
    If the customer is logged in and has lists, a list of lists will be returned.

    Responses

    Response Schema: application/json
    Array
    id
    string

    The unique ID of the list.

    name
    string

    The name of the list

    type
    string
    Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" "CUSTOM" "FAVORITES" "SAVE_FOR_LATER"

    The type of the list. This is used to determine the list's purpose. For example, a save for later, custom, or favorites list.

    Array of objects (ListItemBasic)

    The items in the list.

    count
    number

    The number of items in the list. This is influenced by the quantity of each item in the list.

    Response samples

    Content type
    application/json
    [
    • {
      • "id": "1000-345",
      • "name": "Favorites",
      • "type": "CUSTOM",
      • "items": [
        • {
          • "id": "INV-1000-12",
          • "listItemId": "1000-12",
          • "name": "Spring Water",
          • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
          • "quantity": 2,
          • "weightedItemQuantity": 3,
          • "sumQuantity": 0,
          • "image": "1000-12",
          • "listItemSelected": false
          }
        ],
      • "count": 5
      }
    ]

    Create or update list

    Creates a new list or updates an existing list.
    If the list already exists, it will be updated with the new items and/or list name.
    If the list does not exist, it will be created with the provided items.
    The new or updated list is then returned.

    Request Body schema: application/json

    Required object for creating or update a customer's list.

    id
    string

    The unique ID of the list.

    name
    string

    The name of the list

    type
    string
    Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" "CUSTOM" "FAVORITES" "SAVE_FOR_LATER"

    The type of the list. This is used to determine the list's purpose. For example, a save for later, custom, or favorites list.

    Array of objects (ListItemBasic)

    The items in the list.

    count
    number

    The number of items in the list. This is influenced by the quantity of each item in the list.

    Responses

    Response Schema: application/json
    id
    string

    The unique ID of the list.

    name
    string

    The name of the list

    type
    string
    Enum: "CUSTOM" "FAVORITES" "SAVE_FOR_LATER" "CUSTOM" "FAVORITES" "SAVE_FOR_LATER"

    The type of the list. This is used to determine the list's purpose. For example, a save for later, custom, or favorites list.

    Array of objects (ListItemBasic)

    The items in the list.

    count
    number

    The number of items in the list. This is influenced by the quantity of each item in the list.

    Request samples

    Content type
    application/json

    List Sync Request

    {
    • "id": "1000-10000103",
    • "name": "List Name",
    • "type": "CUSTOM",
    • "items": [
      • {
        • "id": "INV-1000-19343",
        • "quantity": 1,
        • "weightedItemQuantity": 0
        }
      ],
    • "count": 1
    }

    Response samples

    Content type
    application/json
    {
    • "id": "1000-345",
    • "name": "Favorites",
    • "type": "CUSTOM",
    • "items": [
      • {
        • "id": "INV-1000-12",
        • "listItemId": "1000-12",
        • "name": "Spring Water",
        • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
        • "quantity": 2,
        • "weightedItemQuantity": 3,
        • "sumQuantity": 0,
        • "image": "1000-12",
        • "listItemSelected": false
        }
      ],
    • "count": 5
    }

    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

    Indicates whether a "payLater" 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

    addedCouponValid
    boolean

    Returns true if the coupon just added was valid

    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. Only applicable 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.

    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": 1,
        • "item": {
          • "id": "INV-1000-12",
          • "image": "1000-345",
          • "scanCode": "123456789012",
          • "name": "Test Item Name",
          • "alternateName": "Alternate Name",
          • "suggestedPrice": 1.99,
          • "actualPriceDivider": 2,
          • "actualPrice": 4,
          • "autoDiscount": "10% Off 3 or more.",
          • "promo": "Sunday Special",
          • "buyDown": "Test Buydown",
          • "weightProfile": {
            • "abbrv": "lb",
            • "decimals": 2,
            • "selectCount": 15,
            • "selectMinimum": 0.5,
            • "selectIncrement": 0.25,
            • "allowWeightedQuantity": false
            },
          • "baseItem": "INV-1000-5",
          • "ascQuantity": 0,
          • "maxQuantity": 50,
          • "maxBaseQuantity": 0,
          • "quantityLimitData": {
            • "vendorGroup": "RJ",
            • "quantityLimit": 20,
            • "comboPackAmount": 3
            },
          • "attributes": [
            • {
              • "image": "string",
              • "name": "Organic"
              }
            ],
          • "itemGroups": [
            • "string"
            ],
          • "specialTenders": [
            • {
              • "id": "WPM-1000-3",
              • "name": "EBT SNAP Online",
              • "tenderType": 4
              }
            ],
          • "coupons": [
            • {
              • "id": "gc:0100037-00004",
              • "name": "FIJI: $1.00 off",
              • "requirements": null,
              • "description": "$1.00 off select Fiji products",
              • "category": null,
              • "brand": "FIJI",
              • "startDate": "2024-04-05",
              • "endDate": "2034-04-05",
              • "redeemLimit": "1",
              • "requirementUpcs": [
                • "00632565000012"
                ],
              • "rewardUpcs": [ ],
              • "targeted": false,
              • "featured": false,
              • "enabled": false,
              • "sortOrder": 1,
              • "validBanners": null,
              • "validLocations": null,
              • "validForStore": true
              }
            ],
          • "outOfStock": false,
          • "sellOutOfStock": false,
          • "brandId": "1000-12",
          • "brand": "Maria's",
          • "size": "12oz",
          • "shelfSequence": 123,
          • "location": "Aisle 3, Section 5, Shelf 1",
          • "hasModifiers": false,
          • "hasLinkedItems": true,
          • "averageWeight": 0.34,
          • "hasRestriction": false,
          • "hasAgeRestriction": true,
          • "cashierApprovalRequired": true,
          • "hasTimeRestrictions": true,
          • "excludeFromCombos": true,
          • "prohibitedSalesScheduleNames": [
            • "string"
            ],
          • "departmentId": "1000-6",
          • "department": "Grocery",
          • "discountType": "override",
          • "discontinued": true
          },
        • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
        • "linkType": "link",
        • "linkedItems": [
          • { }
          ],
        • "embeddedPrice": 1.5,
        • "embeddedDiscount": 0.5,
        • "roudUpId": "1000-3",
        • "tipProfileId": 1,
        • "tipOptionId": 3,
        • "tipAmount": 3,
        • "couponProviderId": "6",
        • "couponItemScanCodes": [
          • "string"
          ]
        }
      ],
    • "giftCardItems": [
      • {
        • "id": 1,
        • "order": 1,
        • "code": "EGC",
        • "account": "LJ4BEI2AFKLRNSAR",
        • "detail": "E-Gift Card",
        • "amount": 100,
        • "quantity": 2,
        • "design": {
          • "id": "1000-20",
          • "image": "1000-25"
          },
        • "recipientName": "Bob & Alice",
        • "senderName": "Joe Schmo",
        • "message": "Congratulations! Get something delivered on me!",
        • "recipientEmail": "test@ecrs.com",
        • "recipientPhoneNumber": "(828) 265-2907",
        • "print": true,
        • "sendDate": "2024-05-19T16:00:00Z"
        }
      ],
    • "coupons": [
      • {
        • "id": "1000-10",
        • "name": "10% Off!",
        • "code": "V8<6",
        • "valid": true
        }
      ],
    • "addedCouponValid": true,
    • "deferrableCombos": [
      • {
        • "id": "1000-10",
        • "name": "Happy Birthday! 20% Off",
        • "couponExpiration": "2024-05-31",
        • "periodExpiration": "2024-06-07",
        • "uses": 3,
        • "deferred": true,
        • "costs": [
          • {
            • "name": "string",
            • "showDecimal": true,
            • "value": 0
            }
          ],
        • "rewards": [
          • {
            • "type": "DISCOUNT",
            • "name": "string",
            • "showDecimal": true,
            • "value": 0
            }
          ]
        }
      ],
    • "checkout": {
      • "stage": 1,
      • "maxStage": 3,
      • "maxStageReached": 3,
      • "emails": [
        • {
          • "id": "string",
          • "name": "string",
          • "email": "string",
          • "billTo": true,
          • "shipTo": true,
          • "marketing": true,
          • "did": "string",
          • "ereceipt": true
          }
        ],
      • "phones": [
        • {
          • "id": "string",
          • "name": "string",
          • "phone": "string",
          • "billToPhone": true,
          • "billToFax": true,
          • "shipToPhone": true,
          • "shipToFax": true,
          • "fax": true,
          • "did": "string"
          }
        ],
      • "addresses": [
        • {
          • "id": "string",
          • "name": "string",
          • "street1": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postal": "string",
          • "country": "string",
          • "shipTo": true,
          • "billTo": true,
          • "location": true,
          • "webcart": true,
          • "did": "string"
          }
        ],
      • "billing": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shipping": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shippingMethod": {
        • "id": "string",
        • "name": "string",
        • "cost": 0,
        • "addressRequired": true,
        • "reservationRequired": true,
        • "status": "string",
        • "memo": "string",
        • "reservationDates": [
          • {
            • "date": "2019-08-24",
            • "times": [
              • {
                • "start": "13:35:00",
                • "end": "13:35:00",
                • "available": true
                }
              ]
            }
          ],
        • "tipProfiles": [
          • {
            • "id": {
              • "pk": 0,
              • "littleCpk": 0,
              • "littlePk": 0,
              • "urlString": "string"
              },
            • "name": "string",
            • "displayName": "string",
            • "allowCustomAmount": true,
            • "tipOptions": [
              • {
                • "id": {
                  • "pk": 0,
                  • "littleCpk": 0,
                  • "littlePk": 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": "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,
                • "littleCpk": 0,
                • "littlePk": 0,
                • "urlString": "string"
                },
              • "name": "string",
              • "displayName": "string",
              • "allowCustomAmount": true,
              • "tipOptions": [
                • {
                  • "id": {
                    • "pk": 0,
                    • "littleCpk": 0,
                    • "littlePk": 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": "1000-27966",
          • "methodId": "1000-27966",
          • "name": "Pay Online",
          • "available": true,
          • "type": 0,
          • "testing": true,
          • "balance": 0,
          • "eligible": 0,
          • "minimum": 0,
          • "maximum": 0,
          • "token": {
            • "cardId": "string",
            • "defaultToken": true,
            • "brand": "Visa",
            • "finalDigits": "1234",
            • "expiration": "1225",
            • "authFk": "1000-21",
            • "tenderType": 4
            },
          • "provider": "ecrs-charge",
          • "iframePath": "string",
          • "clientKey": "string",
          • "accessBlock": "string",
          • "serverPath": "string",
          • "iframePropertyQueryCount": 0,
          • "merchantId": "string",
          • "countryCode": "string",
          • "currencyCode": "string",
          • "applePayMerchantIdentifier": "string",
          • "googlePayMerchantId": "string"
          }
        ],
      • "isGift": true
      },
    • "inStore": true,
    • "orderType": "1000-2",
    • "online": true,
    • "lastSyncTime": "2019-08-24T14:15:22Z"
    }

    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

    Indicates whether a "payLater" 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

    addedCouponValid
    boolean

    Returns true if the coupon just added was valid

    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. Only applicable 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.

    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": "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,
              • "littleCpk": 0,
              • "littlePk": 0,
              • "urlString": "string"
              },
            • "name": "string",
            • "displayName": "string",
            • "allowCustomAmount": true,
            • "tipOptions": [
              • {
                • "id": {
                  • "pk": 0,
                  • "littleCpk": 0,
                  • "littlePk": 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": 1,
        • "item": {
          • "id": "INV-1000-12",
          • "image": "1000-345",
          • "scanCode": "123456789012",
          • "name": "Test Item Name",
          • "alternateName": "Alternate Name",
          • "suggestedPrice": 1.99,
          • "actualPriceDivider": 2,
          • "actualPrice": 4,
          • "autoDiscount": "10% Off 3 or more.",
          • "promo": "Sunday Special",
          • "buyDown": "Test Buydown",
          • "weightProfile": {
            • "abbrv": "lb",
            • "decimals": 2,
            • "selectCount": 15,
            • "selectMinimum": 0.5,
            • "selectIncrement": 0.25,
            • "allowWeightedQuantity": false
            },
          • "baseItem": "INV-1000-5",
          • "ascQuantity": 0,
          • "maxQuantity": 50,
          • "maxBaseQuantity": 0,
          • "quantityLimitData": {
            • "vendorGroup": "RJ",
            • "quantityLimit": 20,
            • "comboPackAmount": 3
            },
          • "attributes": [
            • {
              • "image": "string",
              • "name": "Organic"
              }
            ],
          • "itemGroups": [
            • "string"
            ],
          • "specialTenders": [
            • {
              • "id": "WPM-1000-3",
              • "name": "EBT SNAP Online",
              • "tenderType": 4
              }
            ],
          • "coupons": [
            • {
              • "id": "gc:0100037-00004",
              • "name": "FIJI: $1.00 off",
              • "requirements": null,
              • "description": "$1.00 off select Fiji products",
              • "category": null,
              • "brand": "FIJI",
              • "startDate": "2024-04-05",
              • "endDate": "2034-04-05",
              • "redeemLimit": "1",
              • "requirementUpcs": [
                • "00632565000012"
                ],
              • "rewardUpcs": [ ],
              • "targeted": false,
              • "featured": false,
              • "enabled": false,
              • "sortOrder": 1,
              • "validBanners": null,
              • "validLocations": null,
              • "validForStore": true
              }
            ],
          • "outOfStock": false,
          • "sellOutOfStock": false,
          • "brandId": "1000-12",
          • "brand": "Maria's",
          • "size": "12oz",
          • "shelfSequence": 123,
          • "location": "Aisle 3, Section 5, Shelf 1",
          • "hasModifiers": false,
          • "hasLinkedItems": true,
          • "averageWeight": 0.34,
          • "hasRestriction": false,
          • "hasAgeRestriction": true,
          • "cashierApprovalRequired": true,
          • "hasTimeRestrictions": true,
          • "excludeFromCombos": true,
          • "prohibitedSalesScheduleNames": [
            • "string"
            ],
          • "departmentId": "1000-6",
          • "department": "Grocery",
          • "discountType": "override",
          • "discontinued": true
          },
        • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
        • "linkType": "link",
        • "linkedItems": [
          • { }
          ],
        • "embeddedPrice": 1.5,
        • "embeddedDiscount": 0.5,
        • "roudUpId": "1000-3",
        • "tipProfileId": 1,
        • "tipOptionId": 3,
        • "tipAmount": 3,
        • "couponProviderId": "6",
        • "couponItemScanCodes": [
          • "string"
          ]
        }
      ],
    • "giftCardItems": [
      • {
        • "id": 1,
        • "order": 1,
        • "code": "EGC",
        • "account": "LJ4BEI2AFKLRNSAR",
        • "detail": "E-Gift Card",
        • "amount": 100,
        • "quantity": 2,
        • "design": {
          • "id": "1000-20",
          • "image": "1000-25"
          },
        • "recipientName": "Bob & Alice",
        • "senderName": "Joe Schmo",
        • "message": "Congratulations! Get something delivered on me!",
        • "recipientEmail": "test@ecrs.com",
        • "recipientPhoneNumber": "(828) 265-2907",
        • "print": true,
        • "sendDate": "2024-05-19T16:00:00Z"
        }
      ],
    • "coupons": [
      • {
        • "id": "1000-10",
        • "name": "10% Off!",
        • "code": "V8<6",
        • "valid": true
        }
      ],
    • "addedCouponValid": true,
    • "deferrableCombos": [
      • {
        • "id": "1000-10",
        • "name": "Happy Birthday! 20% Off",
        • "couponExpiration": "2024-05-31",
        • "periodExpiration": "2024-06-07",
        • "uses": 3,
        • "deferred": true,
        • "costs": [
          • {
            • "name": "string",
            • "showDecimal": true,
            • "value": 0
            }
          ],
        • "rewards": [
          • {
            • "type": "DISCOUNT",
            • "name": "string",
            • "showDecimal": true,
            • "value": 0
            }
          ]
        }
      ],
    • "checkout": {
      • "stage": 1,
      • "maxStage": 3,
      • "maxStageReached": 3,
      • "emails": [
        • {
          • "id": "string",
          • "name": "string",
          • "email": "string",
          • "billTo": true,
          • "shipTo": true,
          • "marketing": true,
          • "did": "string",
          • "ereceipt": true
          }
        ],
      • "phones": [
        • {
          • "id": "string",
          • "name": "string",
          • "phone": "string",
          • "billToPhone": true,
          • "billToFax": true,
          • "shipToPhone": true,
          • "shipToFax": true,
          • "fax": true,
          • "did": "string"
          }
        ],
      • "addresses": [
        • {
          • "id": "string",
          • "name": "string",
          • "street1": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postal": "string",
          • "country": "string",
          • "shipTo": true,
          • "billTo": true,
          • "location": true,
          • "webcart": true,
          • "did": "string"
          }
        ],
      • "billing": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shipping": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shippingMethod": {
        • "id": "string",
        • "name": "string",
        • "cost": 0,
        • "addressRequired": true,
        • "reservationRequired": true,
        • "status": "string",
        • "memo": "string",
        • "reservationDates": [
          • {
            • "date": "2019-08-24",
            • "times": [
              • {
                • "start": "13:35:00",
                • "end": "13:35:00",
                • "available": true
                }
              ]
            }
          ],
        • "tipProfiles": [
          • {
            • "id": {
              • "pk": 0,
              • "littleCpk": 0,
              • "littlePk": 0,
              • "urlString": "string"
              },
            • "name": "string",
            • "displayName": "string",
            • "allowCustomAmount": true,
            • "tipOptions": [
              • {
                • "id": {
                  • "pk": 0,
                  • "littleCpk": 0,
                  • "littlePk": 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": "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,
                • "littleCpk": 0,
                • "littlePk": 0,
                • "urlString": "string"
                },
              • "name": "string",
              • "displayName": "string",
              • "allowCustomAmount": true,
              • "tipOptions": [
                • {
                  • "id": {
                    • "pk": 0,
                    • "littleCpk": 0,
                    • "littlePk": 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": "1000-27966",
          • "methodId": "1000-27966",
          • "name": "Pay Online",
          • "available": true,
          • "type": 0,
          • "testing": true,
          • "balance": 0,
          • "eligible": 0,
          • "minimum": 0,
          • "maximum": 0,
          • "token": {
            • "cardId": "string",
            • "defaultToken": true,
            • "brand": "Visa",
            • "finalDigits": "1234",
            • "expiration": "1225",
            • "authFk": "1000-21",
            • "tenderType": 4
            },
          • "provider": "ecrs-charge",
          • "iframePath": "string",
          • "clientKey": "string",
          • "accessBlock": "string",
          • "serverPath": "string",
          • "iframePropertyQueryCount": 0,
          • "merchantId": "string",
          • "countryCode": "string",
          • "currencyCode": "string",
          • "applePayMerchantIdentifier": "string",
          • "googlePayMerchantId": "string"
          }
        ],
      • "isGift": true
      },
    • "inStore": true,
    • "orderType": "1000-2",
    • "online": true,
    • "lastSyncTime": "2019-08-24T14:15:22Z"
    }

    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": "string",
          • "complete": 0,
          • "currentPunches": 0,
          • "requiredPunches": 0,
          • "accrued": 0,
          • "redeemed": 0,
          • "inactive": true,
          • "expiration": "2019-08-24"
          }
        ],
      • "printableGiftCards": [
        • {
          • "id": 1,
          • "order": 1,
          • "code": "EGC",
          • "account": "LJ4BEI2AFKLRNSAR",
          • "detail": "E-Gift Card",
          • "amount": 100,
          • "quantity": 2,
          • "design": {
            • "id": "1000-20",
            • "image": "1000-25"
            },
          • "recipientName": "Bob & Alice",
          • "senderName": "Joe Schmo",
          • "message": "Congratulations! Get something delivered on me!",
          • "recipientEmail": "test@ecrs.com",
          • "recipientPhoneNumber": "(828) 265-2907",
          • "print": true,
          • "sendDate": "2024-05-19T16:00:00Z"
          }
        ],
      • "savings": 2.6
      }
    }

    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

    A unique identifier for the method and token combination.

    methodId
    string

    A unique identifier for the payment method.

    name
    string

    The display name for the payment method.

    available
    boolean

    Indicates if this payment method is eligible for the current transaction.

    type
    integer <int32>

    If this payment method has a tender attached, this is the tender type of the attached tender. 2 for Charge Account, 4 for Credit, 6 for EBT SNAP, 8 for Debit, 12 for EBT Cash (TANF), 14 for Gift Card, 19 for Loyalty Points, and 23 for Tokenization.

    testing
    boolean

    If true, this payment method is configured with test environment credentials. In other words, this is not a production configuration.

    balance
    number

    The current balance available on the given payment method if one is valid. This is only available for payment methods that support balance checking. For example, EBT SNAP, EBT Cash, Loyalty, and charge accounts.

    eligible
    number

    The amount of this transaction that is eligible for the given tender.

    minimum
    number

    The minimum balance required to redeem using this tender. Null if not configured.

    maximum
    number

    The maximum redeemable balance for this tender. Null if not configured.

    object (TokenInfo)

    If this is a token tender then this contains the token specific data.

    provider
    string
    Enum: "ecrs-charge" "ecrs-loyalty" "ecrs-gift-card" "dwolla" "paypal" "tokenization" "cardpointe" "stripe" "shiftfour" "cardknox-ebt"

    The provider associated with the payment method.

    iframePath
    string

    The iframe URL used to render a payment processor's iframe. This is only applicable for CardConnect and ShiftFour.

    clientKey
    string

    Key used by the payment processor to accept digital payments. This is only applicable for Stripe and ShiftFour.

    accessBlock
    string

    Access block used by the payment processor to accept digital payments. This is only applicable for ShiftFour.

    serverPath
    string

    Server path URL used by the payment processor to accept digital payments. This is only applicable for ShiftFour.

    iframePropertyQueryCount
    integer <int32>

    Testing variable used to count the number of times an initiate request was made to the digital payment processor. This is only applicable for ShiftFour test configurations.

    merchantId
    string

    Merchant ID used by the payment processor to accept digital payments. This is only applicable for CardConnect.

    countryCode
    string

    Country code used by the payment processor to accept digital payments. This is only applicable for CardConnect.

    currencyCode
    string

    Currency code used by the payment processor to accept digital payments. This is only applicable for CardConnect.

    applePayMerchantIdentifier
    string

    Apple pay merchant identifier used by the digital payment processor to accept Apple Pay. This is only applicable for CardConnect.

    googlePayMerchantId
    string

    Google Pay merchant ID used by the digital payment processor to accept Google Pay. This is only applicable for CardConnect.

    Response samples

    Content type
    application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
    [
    • {
      • "pmId": "1000-27966",
      • "methodId": "1000-27966",
      • "name": "Pay Online",
      • "available": true,
      • "type": 0,
      • "testing": true,
      • "balance": 0,
      • "eligible": 0,
      • "minimum": 0,
      • "maximum": 0,
      • "token": {
        • "cardId": "string",
        • "defaultToken": true,
        • "brand": "Visa",
        • "finalDigits": "1234",
        • "expiration": "1225",
        • "authFk": "1000-21",
        • "tenderType": 4
        },
      • "provider": "ecrs-charge",
      • "iframePath": "string",
      • "clientKey": "string",
      • "accessBlock": "string",
      • "serverPath": "string",
      • "iframePropertyQueryCount": 0,
      • "merchantId": "string",
      • "countryCode": "string",
      • "currencyCode": "string",
      • "applePayMerchantIdentifier": "string",
      • "googlePayMerchantId": "string"
      }
    ]

    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": "string",
          • "complete": 0,
          • "currentPunches": 0,
          • "requiredPunches": 0,
          • "accrued": 0,
          • "redeemed": 0,
          • "inactive": true,
          • "expiration": "2019-08-24"
          }
        ],
      • "printableGiftCards": [
        • {
          • "id": 1,
          • "order": 1,
          • "code": "EGC",
          • "account": "LJ4BEI2AFKLRNSAR",
          • "detail": "E-Gift Card",
          • "amount": 100,
          • "quantity": 2,
          • "design": {
            • "id": "1000-20",
            • "image": "1000-25"
            },
          • "recipientName": "Bob & Alice",
          • "senderName": "Joe Schmo",
          • "message": "Congratulations! Get something delivered on me!",
          • "recipientEmail": "test@ecrs.com",
          • "recipientPhoneNumber": "(828) 265-2907",
          • "print": true,
          • "sendDate": "2024-05-19T16:00:00Z"
          }
        ],
      • "savings": 2.6
      }
    }

    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": "string",
          • "complete": 0,
          • "currentPunches": 0,
          • "requiredPunches": 0,
          • "accrued": 0,
          • "redeemed": 0,
          • "inactive": true,
          • "expiration": "2019-08-24"
          }
        ],
      • "printableGiftCards": [
        • {
          • "id": 1,
          • "order": 1,
          • "code": "EGC",
          • "account": "LJ4BEI2AFKLRNSAR",
          • "detail": "E-Gift Card",
          • "amount": 100,
          • "quantity": 2,
          • "design": {
            • "id": "1000-20",
            • "image": "1000-25"
            },
          • "recipientName": "Bob & Alice",
          • "senderName": "Joe Schmo",
          • "message": "Congratulations! Get something delivered on me!",
          • "recipientEmail": "test@ecrs.com",
          • "recipientPhoneNumber": "(828) 265-2907",
          • "print": true,
          • "sendDate": "2024-05-19T16:00:00Z"
          }
        ],
      • "savings": 2.6
      }
    }

    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 enable shoppers to interact with different ordering options - known as "Order Types". Examples of Order Types could include Catering, Grocery, Coffee, or Made-To-Order. Each Order Type has its own set of items and associated Shipping Methods. If you are a CATAPULT retailer who would like to learn more about Multiple Order Types in WebCart, see this related documentation in ECRS Docs. Use these endpoints to retrieve and synchronize order type carts and retrieve detailed information about a specific order type.

    Get Cart for Order Type

    Retrieves the current cart for a specific order type. Sets the order type as the active order type for the user session.

    path Parameters
    id
    required
    string
    Example: 1000-3

    The ID of the order type to get the 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

    Indicates whether a "payLater" 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

    addedCouponValid
    boolean

    Returns true if the coupon just added was valid

    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. Only applicable 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.

    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": 1,
        • "item": {
          • "id": "INV-1000-12",
          • "image": "1000-345",
          • "scanCode": "123456789012",
          • "name": "Test Item Name",
          • "alternateName": "Alternate Name",
          • "suggestedPrice": 1.99,
          • "actualPriceDivider": 2,
          • "actualPrice": 4,
          • "autoDiscount": "10% Off 3 or more.",
          • "promo": "Sunday Special",
          • "buyDown": "Test Buydown",
          • "weightProfile": {
            • "abbrv": "lb",
            • "decimals": 2,
            • "selectCount": 15,
            • "selectMinimum": 0.5,
            • "selectIncrement": 0.25,
            • "allowWeightedQuantity": false
            },
          • "baseItem": "INV-1000-5",
          • "ascQuantity": 0,
          • "maxQuantity": 50,
          • "maxBaseQuantity": 0,
          • "quantityLimitData": {
            • "vendorGroup": "RJ",
            • "quantityLimit": 20,
            • "comboPackAmount": 3
            },
          • "attributes": [
            • {
              • "image": "string",
              • "name": "Organic"
              }
            ],
          • "itemGroups": [
            • "string"
            ],
          • "specialTenders": [
            • {
              • "id": "WPM-1000-3",
              • "name": "EBT SNAP Online",
              • "tenderType": 4
              }
            ],
          • "coupons": [
            • {
              • "id": "gc:0100037-00004",
              • "name": "FIJI: $1.00 off",
              • "requirements": null,
              • "description": "$1.00 off select Fiji products",
              • "category": null,
              • "brand": "FIJI",
              • "startDate": "2024-04-05",
              • "endDate": "2034-04-05",
              • "redeemLimit": "1",
              • "requirementUpcs": [
                • "00632565000012"
                ],
              • "rewardUpcs": [ ],
              • "targeted": false,
              • "featured": false,
              • "enabled": false,
              • "sortOrder": 1,
              • "validBanners": null,
              • "validLocations": null,
              • "validForStore": true
              }
            ],
          • "outOfStock": false,
          • "sellOutOfStock": false,
          • "brandId": "1000-12",
          • "brand": "Maria's",
          • "size": "12oz",
          • "shelfSequence": 123,
          • "location": "Aisle 3, Section 5, Shelf 1",
          • "hasModifiers": false,
          • "hasLinkedItems": true,
          • "averageWeight": 0.34,
          • "hasRestriction": false,
          • "hasAgeRestriction": true,
          • "cashierApprovalRequired": true,
          • "hasTimeRestrictions": true,
          • "excludeFromCombos": true,
          • "prohibitedSalesScheduleNames": [
            • "string"
            ],
          • "departmentId": "1000-6",
          • "department": "Grocery",
          • "discountType": "override",
          • "discontinued": true
          },
        • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
        • "linkType": "link",
        • "linkedItems": [
          • { }
          ],
        • "embeddedPrice": 1.5,
        • "embeddedDiscount": 0.5,
        • "roudUpId": "1000-3",
        • "tipProfileId": 1,
        • "tipOptionId": 3,
        • "tipAmount": 3,
        • "couponProviderId": "6",
        • "couponItemScanCodes": [
          • "string"
          ]
        }
      ],
    • "giftCardItems": [
      • {
        • "id": 1,
        • "order": 1,
        • "code": "EGC",
        • "account": "LJ4BEI2AFKLRNSAR",
        • "detail": "E-Gift Card",
        • "amount": 100,
        • "quantity": 2,
        • "design": {
          • "id": "1000-20",
          • "image": "1000-25"
          },
        • "recipientName": "Bob & Alice",
        • "senderName": "Joe Schmo",
        • "message": "Congratulations! Get something delivered on me!",
        • "recipientEmail": "test@ecrs.com",
        • "recipientPhoneNumber": "(828) 265-2907",
        • "print": true,
        • "sendDate": "2024-05-19T16:00:00Z"
        }
      ],
    • "coupons": [
      • {
        • "id": "1000-10",
        • "name": "10% Off!",
        • "code": "V8<6",
        • "valid": true
        }
      ],
    • "addedCouponValid": true,
    • "deferrableCombos": [
      • {
        • "id": "1000-10",
        • "name": "Happy Birthday! 20% Off",
        • "couponExpiration": "2024-05-31",
        • "periodExpiration": "2024-06-07",
        • "uses": 3,
        • "deferred": true,
        • "costs": [
          • {
            • "name": "string",
            • "showDecimal": true,
            • "value": 0
            }
          ],
        • "rewards": [
          • {
            • "type": "DISCOUNT",
            • "name": "string",
            • "showDecimal": true,
            • "value": 0
            }
          ]
        }
      ],
    • "checkout": {
      • "stage": 1,
      • "maxStage": 3,
      • "maxStageReached": 3,
      • "emails": [
        • {
          • "id": "string",
          • "name": "string",
          • "email": "string",
          • "billTo": true,
          • "shipTo": true,
          • "marketing": true,
          • "did": "string",
          • "ereceipt": true
          }
        ],
      • "phones": [
        • {
          • "id": "string",
          • "name": "string",
          • "phone": "string",
          • "billToPhone": true,
          • "billToFax": true,
          • "shipToPhone": true,
          • "shipToFax": true,
          • "fax": true,
          • "did": "string"
          }
        ],
      • "addresses": [
        • {
          • "id": "string",
          • "name": "string",
          • "street1": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postal": "string",
          • "country": "string",
          • "shipTo": true,
          • "billTo": true,
          • "location": true,
          • "webcart": true,
          • "did": "string"
          }
        ],
      • "billing": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shipping": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shippingMethod": {
        • "id": "string",
        • "name": "string",
        • "cost": 0,
        • "addressRequired": true,
        • "reservationRequired": true,
        • "status": "string",
        • "memo": "string",
        • "reservationDates": [
          • {
            • "date": "2019-08-24",
            • "times": [
              • {
                • "start": "13:35:00",
                • "end": "13:35:00",
                • "available": true
                }
              ]
            }
          ],
        • "tipProfiles": [
          • {
            • "id": {
              • "pk": 0,
              • "littleCpk": 0,
              • "littlePk": 0,
              • "urlString": "string"
              },
            • "name": "string",
            • "displayName": "string",
            • "allowCustomAmount": true,
            • "tipOptions": [
              • {
                • "id": {
                  • "pk": 0,
                  • "littleCpk": 0,
                  • "littlePk": 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": "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,
                • "littleCpk": 0,
                • "littlePk": 0,
                • "urlString": "string"
                },
              • "name": "string",
              • "displayName": "string",
              • "allowCustomAmount": true,
              • "tipOptions": [
                • {
                  • "id": {
                    • "pk": 0,
                    • "littleCpk": 0,
                    • "littlePk": 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": "1000-27966",
          • "methodId": "1000-27966",
          • "name": "Pay Online",
          • "available": true,
          • "type": 0,
          • "testing": true,
          • "balance": 0,
          • "eligible": 0,
          • "minimum": 0,
          • "maximum": 0,
          • "token": {
            • "cardId": "string",
            • "defaultToken": true,
            • "brand": "Visa",
            • "finalDigits": "1234",
            • "expiration": "1225",
            • "authFk": "1000-21",
            • "tenderType": 4
            },
          • "provider": "ecrs-charge",
          • "iframePath": "string",
          • "clientKey": "string",
          • "accessBlock": "string",
          • "serverPath": "string",
          • "iframePropertyQueryCount": 0,
          • "merchantId": "string",
          • "countryCode": "string",
          • "currencyCode": "string",
          • "applePayMerchantIdentifier": "string",
          • "googlePayMerchantId": "string"
          }
        ],
      • "isGift": true
      },
    • "inStore": true,
    • "orderType": "1000-2",
    • "online": true,
    • "lastSyncTime": "2019-08-24T14:15:22Z"
    }

    Sync Cart for Order Type

    Synchronizes a cart for a specific order type without changing the active order type in the user session. Updates the cart with the provided items and returns the updated cart state. Cart alerts can also be included in the response.

    path Parameters
    id
    required
    string
    Example: 1000-3

    The ID of the order type to sync 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

    Indicates whether a "payLater" 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

    addedCouponValid
    boolean

    Returns true if the coupon just added was valid

    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. Only applicable 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.

    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": "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,
              • "littleCpk": 0,
              • "littlePk": 0,
              • "urlString": "string"
              },
            • "name": "string",
            • "displayName": "string",
            • "allowCustomAmount": true,
            • "tipOptions": [
              • {
                • "id": {
                  • "pk": 0,
                  • "littleCpk": 0,
                  • "littlePk": 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": 1,
        • "item": {
          • "id": "INV-1000-12",
          • "image": "1000-345",
          • "scanCode": "123456789012",
          • "name": "Test Item Name",
          • "alternateName": "Alternate Name",
          • "suggestedPrice": 1.99,
          • "actualPriceDivider": 2,
          • "actualPrice": 4,
          • "autoDiscount": "10% Off 3 or more.",
          • "promo": "Sunday Special",
          • "buyDown": "Test Buydown",
          • "weightProfile": {
            • "abbrv": "lb",
            • "decimals": 2,
            • "selectCount": 15,
            • "selectMinimum": 0.5,
            • "selectIncrement": 0.25,
            • "allowWeightedQuantity": false
            },
          • "baseItem": "INV-1000-5",
          • "ascQuantity": 0,
          • "maxQuantity": 50,
          • "maxBaseQuantity": 0,
          • "quantityLimitData": {
            • "vendorGroup": "RJ",
            • "quantityLimit": 20,
            • "comboPackAmount": 3
            },
          • "attributes": [
            • {
              • "image": "string",
              • "name": "Organic"
              }
            ],
          • "itemGroups": [
            • "string"
            ],
          • "specialTenders": [
            • {
              • "id": "WPM-1000-3",
              • "name": "EBT SNAP Online",
              • "tenderType": 4
              }
            ],
          • "coupons": [
            • {
              • "id": "gc:0100037-00004",
              • "name": "FIJI: $1.00 off",
              • "requirements": null,
              • "description": "$1.00 off select Fiji products",
              • "category": null,
              • "brand": "FIJI",
              • "startDate": "2024-04-05",
              • "endDate": "2034-04-05",
              • "redeemLimit": "1",
              • "requirementUpcs": [
                • "00632565000012"
                ],
              • "rewardUpcs": [ ],
              • "targeted": false,
              • "featured": false,
              • "enabled": false,
              • "sortOrder": 1,
              • "validBanners": null,
              • "validLocations": null,
              • "validForStore": true
              }
            ],
          • "outOfStock": false,
          • "sellOutOfStock": false,
          • "brandId": "1000-12",
          • "brand": "Maria's",
          • "size": "12oz",
          • "shelfSequence": 123,
          • "location": "Aisle 3, Section 5, Shelf 1",
          • "hasModifiers": false,
          • "hasLinkedItems": true,
          • "averageWeight": 0.34,
          • "hasRestriction": false,
          • "hasAgeRestriction": true,
          • "cashierApprovalRequired": true,
          • "hasTimeRestrictions": true,
          • "excludeFromCombos": true,
          • "prohibitedSalesScheduleNames": [
            • "string"
            ],
          • "departmentId": "1000-6",
          • "department": "Grocery",
          • "discountType": "override",
          • "discontinued": true
          },
        • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
        • "linkType": "link",
        • "linkedItems": [
          • { }
          ],
        • "embeddedPrice": 1.5,
        • "embeddedDiscount": 0.5,
        • "roudUpId": "1000-3",
        • "tipProfileId": 1,
        • "tipOptionId": 3,
        • "tipAmount": 3,
        • "couponProviderId": "6",
        • "couponItemScanCodes": [
          • "string"
          ]
        }
      ],
    • "giftCardItems": [
      • {
        • "id": 1,
        • "order": 1,
        • "code": "EGC",
        • "account": "LJ4BEI2AFKLRNSAR",
        • "detail": "E-Gift Card",
        • "amount": 100,
        • "quantity": 2,
        • "design": {
          • "id": "1000-20",
          • "image": "1000-25"
          },
        • "recipientName": "Bob & Alice",
        • "senderName": "Joe Schmo",
        • "message": "Congratulations! Get something delivered on me!",
        • "recipientEmail": "test@ecrs.com",
        • "recipientPhoneNumber": "(828) 265-2907",
        • "print": true,
        • "sendDate": "2024-05-19T16:00:00Z"
        }
      ],
    • "coupons": [
      • {
        • "id": "1000-10",
        • "name": "10% Off!",
        • "code": "V8<6",
        • "valid": true
        }
      ],
    • "addedCouponValid": true,
    • "deferrableCombos": [
      • {
        • "id": "1000-10",
        • "name": "Happy Birthday! 20% Off",
        • "couponExpiration": "2024-05-31",
        • "periodExpiration": "2024-06-07",
        • "uses": 3,
        • "deferred": true,
        • "costs": [
          • {
            • "name": "string",
            • "showDecimal": true,
            • "value": 0
            }
          ],
        • "rewards": [
          • {
            • "type": "DISCOUNT",
            • "name": "string",
            • "showDecimal": true,
            • "value": 0
            }
          ]
        }
      ],
    • "checkout": {
      • "stage": 1,
      • "maxStage": 3,
      • "maxStageReached": 3,
      • "emails": [
        • {
          • "id": "string",
          • "name": "string",
          • "email": "string",
          • "billTo": true,
          • "shipTo": true,
          • "marketing": true,
          • "did": "string",
          • "ereceipt": true
          }
        ],
      • "phones": [
        • {
          • "id": "string",
          • "name": "string",
          • "phone": "string",
          • "billToPhone": true,
          • "billToFax": true,
          • "shipToPhone": true,
          • "shipToFax": true,
          • "fax": true,
          • "did": "string"
          }
        ],
      • "addresses": [
        • {
          • "id": "string",
          • "name": "string",
          • "street1": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postal": "string",
          • "country": "string",
          • "shipTo": true,
          • "billTo": true,
          • "location": true,
          • "webcart": true,
          • "did": "string"
          }
        ],
      • "billing": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shipping": {
        • "firstName": "ECR",
        • "lastName": "Software",
        • "email": "test@ecrs.com",
        • "phone": "(828) 265-2907",
        • "street1": "277 Howard Street",
        • "street2": "Suite 1",
        • "postal": "28607",
        • "city": "Boone",
        • "country": 15,
        • "state": 34,
        • "latitude": 36.217646,
        • "longitude": -81.684149
        },
      • "shippingMethod": {
        • "id": "string",
        • "name": "string",
        • "cost": 0,
        • "addressRequired": true,
        • "reservationRequired": true,
        • "status": "string",
        • "memo": "string",
        • "reservationDates": [
          • {
            • "date": "2019-08-24",
            • "times": [
              • {
                • "start": "13:35:00",
                • "end": "13:35:00",
                • "available": true
                }
              ]
            }
          ],
        • "tipProfiles": [
          • {
            • "id": {
              • "pk": 0,
              • "littleCpk": 0,
              • "littlePk": 0,
              • "urlString": "string"
              },
            • "name": "string",
            • "displayName": "string",
            • "allowCustomAmount": true,
            • "tipOptions": [
              • {
                • "id": {
                  • "pk": 0,
                  • "littleCpk": 0,
                  • "littlePk": 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": "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,
                • "littleCpk": 0,
                • "littlePk": 0,
                • "urlString": "string"
                },
              • "name": "string",
              • "displayName": "string",
              • "allowCustomAmount": true,
              • "tipOptions": [
                • {
                  • "id": {
                    • "pk": 0,
                    • "littleCpk": 0,
                    • "littlePk": 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": "1000-27966",
          • "methodId": "1000-27966",
          • "name": "Pay Online",
          • "available": true,
          • "type": 0,
          • "testing": true,
          • "balance": 0,
          • "eligible": 0,
          • "minimum": 0,
          • "maximum": 0,
          • "token": {
            • "cardId": "string",
            • "defaultToken": true,
            • "brand": "Visa",
            • "finalDigits": "1234",
            • "expiration": "1225",
            • "authFk": "1000-21",
            • "tenderType": 4
            },
          • "provider": "ecrs-charge",
          • "iframePath": "string",
          • "clientKey": "string",
          • "accessBlock": "string",
          • "serverPath": "string",
          • "iframePropertyQueryCount": 0,
          • "merchantId": "string",
          • "countryCode": "string",
          • "currencyCode": "string",
          • "applePayMerchantIdentifier": "string",
          • "googlePayMerchantId": "string"
          }
        ],
      • "isGift": true
      },
    • "inStore": true,
    • "orderType": "1000-2",
    • "online": true,
    • "lastSyncTime": "2019-08-24T14:15:22Z"
    }

    Get All Order Type Carts

    Retrieves carts for all configured order types. Returns existing carts where available, or creates empty carts for order types without existing transactions.

    Responses

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

    Indicates whether a "payLater" 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

    addedCouponValid
    boolean

    Returns true if the coupon just added was valid

    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. Only applicable 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.

    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": 1,
          • "item": {
            • "id": "INV-1000-12",
            • "image": "1000-345",
            • "scanCode": "123456789012",
            • "name": "Test Item Name",
            • "alternateName": "Alternate Name",
            • "suggestedPrice": 1.99,
            • "actualPriceDivider": 2,
            • "actualPrice": 4,
            • "autoDiscount": "10% Off 3 or more.",
            • "promo": "Sunday Special",
            • "buyDown": "Test Buydown",
            • "weightProfile": {
              • "abbrv": "lb",
              • "decimals": 2,
              • "selectCount": 15,
              • "selectMinimum": 0.5,
              • "selectIncrement": 0.25,
              • "allowWeightedQuantity": false
              },
            • "baseItem": "INV-1000-5",
            • "ascQuantity": 0,
            • "maxQuantity": 50,
            • "maxBaseQuantity": 0,
            • "quantityLimitData": {
              • "vendorGroup": "RJ",
              • "quantityLimit": 20,
              • "comboPackAmount": 3
              },
            • "attributes": [
              • {
                • "image": "string",
                • "name": "Organic"
                }
              ],
            • "itemGroups": [
              • "string"
              ],
            • "specialTenders": [
              • {
                • "id": "WPM-1000-3",
                • "name": "EBT SNAP Online",
                • "tenderType": 4
                }
              ],
            • "coupons": [
              • {
                • "id": "gc:0100037-00004",
                • "name": "FIJI: $1.00 off",
                • "requirements": null,
                • "description": "$1.00 off select Fiji products",
                • "category": null,
                • "brand": "FIJI",
                • "startDate": "2024-04-05",
                • "endDate": "2034-04-05",
                • "redeemLimit": "1",
                • "requirementUpcs": [
                  • "00632565000012"
                  ],
                • "rewardUpcs": [ ],
                • "targeted": false,
                • "featured": false,
                • "enabled": false,
                • "sortOrder": 1,
                • "validBanners": null,
                • "validLocations": null,
                • "validForStore": true
                }
              ],
            • "outOfStock": false,
            • "sellOutOfStock": false,
            • "brandId": "1000-12",
            • "brand": "Maria's",
            • "size": "12oz",
            • "shelfSequence": 123,
            • "location": "Aisle 3, Section 5, Shelf 1",
            • "hasModifiers": false,
            • "hasLinkedItems": true,
            • "averageWeight": 0.34,
            • "hasRestriction": false,
            • "hasAgeRestriction": true,
            • "cashierApprovalRequired": true,
            • "hasTimeRestrictions": true,
            • "excludeFromCombos": true,
            • "prohibitedSalesScheduleNames": [
              • "string"
              ],
            • "departmentId": "1000-6",
            • "department": "Grocery",
            • "discountType": "override",
            • "discontinued": true
            },
          • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
          • "linkType": "link",
          • "linkedItems": [
            • { }
            ],
          • "embeddedPrice": 1.5,
          • "embeddedDiscount": 0.5,
          • "roudUpId": "1000-3",
          • "tipProfileId": 1,
          • "tipOptionId": 3,
          • "tipAmount": 3,
          • "couponProviderId": "6",
          • "couponItemScanCodes": [
            • "string"
            ]
          }
        ],
      • "giftCardItems": [
        • {
          • "id": 1,
          • "order": 1,
          • "code": "EGC",
          • "account": "LJ4BEI2AFKLRNSAR",
          • "detail": "E-Gift Card",
          • "amount": 100,
          • "quantity": 2,
          • "design": {
            • "id": "1000-20",
            • "image": "1000-25"
            },
          • "recipientName": "Bob & Alice",
          • "senderName": "Joe Schmo",
          • "message": "Congratulations! Get something delivered on me!",
          • "recipientEmail": "test@ecrs.com",
          • "recipientPhoneNumber": "(828) 265-2907",
          • "print": true,
          • "sendDate": "2024-05-19T16:00:00Z"
          }
        ],
      • "coupons": [
        • {
          • "id": "1000-10",
          • "name": "10% Off!",
          • "code": "V8<6",
          • "valid": true
          }
        ],
      • "addedCouponValid": true,
      • "deferrableCombos": [
        • {
          • "id": "1000-10",
          • "name": "Happy Birthday! 20% Off",
          • "couponExpiration": "2024-05-31",
          • "periodExpiration": "2024-06-07",
          • "uses": 3,
          • "deferred": true,
          • "costs": [
            • {
              • "name": "string",
              • "showDecimal": true,
              • "value": 0
              }
            ],
          • "rewards": [
            • {
              • "type": "DISCOUNT",
              • "name": "string",
              • "showDecimal": true,
              • "value": 0
              }
            ]
          }
        ],
      • "checkout": {
        • "stage": 1,
        • "maxStage": 3,
        • "maxStageReached": 3,
        • "emails": [
          • {
            • "id": "string",
            • "name": "string",
            • "email": "string",
            • "billTo": true,
            • "shipTo": true,
            • "marketing": true,
            • "did": "string",
            • "ereceipt": true
            }
          ],
        • "phones": [
          • {
            • "id": "string",
            • "name": "string",
            • "phone": "string",
            • "billToPhone": true,
            • "billToFax": true,
            • "shipToPhone": true,
            • "shipToFax": true,
            • "fax": true,
            • "did": "string"
            }
          ],
        • "addresses": [
          • {
            • "id": "string",
            • "name": "string",
            • "street1": "string",
            • "street2": "string",
            • "city": "string",
            • "state": "string",
            • "postal": "string",
            • "country": "string",
            • "shipTo": true,
            • "billTo": true,
            • "location": true,
            • "webcart": true,
            • "did": "string"
            }
          ],
        • "billing": {
          • "firstName": "ECR",
          • "lastName": "Software",
          • "email": "test@ecrs.com",
          • "phone": "(828) 265-2907",
          • "street1": "277 Howard Street",
          • "street2": "Suite 1",
          • "postal": "28607",
          • "city": "Boone",
          • "country": 15,
          • "state": 34,
          • "latitude": 36.217646,
          • "longitude": -81.684149
          },
        • "shipping": {
          • "firstName": "ECR",
          • "lastName": "Software",
          • "email": "test@ecrs.com",
          • "phone": "(828) 265-2907",
          • "street1": "277 Howard Street",
          • "street2": "Suite 1",
          • "postal": "28607",
          • "city": "Boone",
          • "country": 15,
          • "state": 34,
          • "latitude": 36.217646,
          • "longitude": -81.684149
          },
        • "shippingMethod": {
          • "id": "string",
          • "name": "string",
          • "cost": 0,
          • "addressRequired": true,
          • "reservationRequired": true,
          • "status": "string",
          • "memo": "string",
          • "reservationDates": [
            • {
              • "date": "2019-08-24",
              • "times": [
                • {
                  • "start": "13:35:00",
                  • "end": "13:35:00",
                  • "available": true
                  }
                ]
              }
            ],
          • "tipProfiles": [
            • {
              • "id": {
                • "pk": 0,
                • "littleCpk": 0,
                • "littlePk": 0,
                • "urlString": "string"
                },
              • "name": "string",
              • "displayName": "string",
              • "allowCustomAmount": true,
              • "tipOptions": [
                • {
                  • "id": {
                    • "pk": 0,
                    • "littleCpk": 0,
                    • "littlePk": 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": "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,
                  • "littleCpk": 0,
                  • "littlePk": 0,
                  • "urlString": "string"
                  },
                • "name": "string",
                • "displayName": "string",
                • "allowCustomAmount": true,
                • "tipOptions": [
                  • {
                    • "id": {
                      • "pk": null,
                      • "littleCpk": null,
                      • "littlePk": null,
                      • "urlString": null
                      },
                    • "type": 0,
                    • "value": 0,
                    • "default": true
                    }
                  ]
                }
              ],
            • "thirdPartyServiceProfile": {
              • "id": 0,
              • "name": "string",
              • "thirdPartyServiceProvider": {
                • "id": 0,
                • "name": "string",
                • "type": 0
                }
              },
            • "reason": "string"
            }
          ],
        • "paymentMethods": [
          • {
            • "pmId": "1000-27966",
            • "methodId": "1000-27966",
            • "name": "Pay Online",
            • "available": true,
            • "type": 0,
            • "testing": true,
            • "balance": 0,
            • "eligible": 0,
            • "minimum": 0,
            • "maximum": 0,
            • "token": {
              • "cardId": "string",
              • "defaultToken": true,
              • "brand": "Visa",
              • "finalDigits": "1234",
              • "expiration": "1225",
              • "authFk": "1000-21",
              • "tenderType": 4
              },
            • "provider": "ecrs-charge",
            • "iframePath": "string",
            • "clientKey": "string",
            • "accessBlock": "string",
            • "serverPath": "string",
            • "iframePropertyQueryCount": 0,
            • "merchantId": "string",
            • "countryCode": "string",
            • "currencyCode": "string",
            • "applePayMerchantIdentifier": "string",
            • "googlePayMerchantId": "string"
            }
          ],
        • "isGift": true
        },
      • "inStore": true,
      • "orderType": "1000-2",
      • "online": true,
      • "lastSyncTime": "2019-08-24T14:15:22Z"
      }
    ]

    Sync Multiple Order Type Carts

    Synchronizes carts for multiple order types in a single request. Each cart must have a valid order type ID. Cart alerts can also be included in the response.

    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

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

    Indicates whether a "payLater" 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

    addedCouponValid
    boolean

    Returns true if the coupon just added was valid

    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. Only applicable 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.

    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": "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,
                • "littleCpk": 0,
                • "littlePk": 0,
                • "urlString": "string"
                },
              • "name": "string",
              • "displayName": "string",
              • "allowCustomAmount": true,
              • "tipOptions": [
                • {
                  • "id": {
                    • "pk": 0,
                    • "littleCpk": 0,
                    • "littlePk": 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": 1,
          • "item": {
            • "id": "INV-1000-12",
            • "image": "1000-345",
            • "scanCode": "123456789012",
            • "name": "Test Item Name",
            • "alternateName": "Alternate Name",
            • "suggestedPrice": 1.99,
            • "actualPriceDivider": 2,
            • "actualPrice": 4,
            • "autoDiscount": "10% Off 3 or more.",
            • "promo": "Sunday Special",
            • "buyDown": "Test Buydown",
            • "weightProfile": {
              • "abbrv": "lb",
              • "decimals": 2,
              • "selectCount": 15,
              • "selectMinimum": 0.5,
              • "selectIncrement": 0.25,
              • "allowWeightedQuantity": false
              },
            • "baseItem": "INV-1000-5",
            • "ascQuantity": 0,
            • "maxQuantity": 50,
            • "maxBaseQuantity": 0,
            • "quantityLimitData": {
              • "vendorGroup": "RJ",
              • "quantityLimit": 20,
              • "comboPackAmount": 3
              },
            • "attributes": [
              • {
                • "image": "string",
                • "name": "Organic"
                }
              ],
            • "itemGroups": [
              • "string"
              ],
            • "specialTenders": [
              • {
                • "id": "WPM-1000-3",
                • "name": "EBT SNAP Online",
                • "tenderType": 4
                }
              ],
            • "coupons": [
              • {
                • "id": "gc:0100037-00004",
                • "name": "FIJI: $1.00 off",
                • "requirements": null,
                • "description": "$1.00 off select Fiji products",
                • "category": null,
                • "brand": "FIJI",
                • "startDate": "2024-04-05",
                • "endDate": "2034-04-05",
                • "redeemLimit": "1",
                • "requirementUpcs": [
                  • "00632565000012"
                  ],
                • "rewardUpcs": [ ],
                • "targeted": false,
                • "featured": false,
                • "enabled": false,
                • "sortOrder": 1,
                • "validBanners": null,
                • "validLocations": null,
                • "validForStore": true
                }
              ],
            • "outOfStock": false,
            • "sellOutOfStock": false,
            • "brandId": "1000-12",
            • "brand": "Maria's",
            • "size": "12oz",
            • "shelfSequence": 123,
            • "location": "Aisle 3, Section 5, Shelf 1",
            • "hasModifiers": false,
            • "hasLinkedItems": true,
            • "averageWeight": 0.34,
            • "hasRestriction": false,
            • "hasAgeRestriction": true,
            • "cashierApprovalRequired": true,
            • "hasTimeRestrictions": true,
            • "excludeFromCombos": true,
            • "prohibitedSalesScheduleNames": [
              • "string"
              ],
            • "departmentId": "1000-6",
            • "department": "Grocery",
            • "discountType": "override",
            • "discontinued": true
            },
          • "variation": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
          • "linkType": "link",
          • "linkedItems": [
            • { }
            ],
          • "embeddedPrice": 1.5,
          • "embeddedDiscount": 0.5,
          • "roudUpId": "1000-3",
          • "tipProfileId": 1,
          • "tipOptionId": 3,
          • "tipAmount": 3,
          • "couponProviderId": "6",
          • "couponItemScanCodes": [
            • "string"
            ]
          }
        ],
      • "giftCardItems": [
        • {
          • "id": 1,
          • "order": 1,
          • "code": "EGC",
          • "account": "LJ4BEI2AFKLRNSAR",
          • "detail": "E-Gift Card",
          • "amount": 100,
          • "quantity": 2,
          • "design": {
            • "id": "1000-20",
            • "image": "1000-25"
            },
          • "recipientName": "Bob & Alice",
          • "senderName": "Joe Schmo",
          • "message": "Congratulations! Get something delivered on me!",
          • "recipientEmail": "test@ecrs.com",
          • "recipientPhoneNumber": "(828) 265-2907",
          • "print": true,
          • "sendDate": "2024-05-19T16:00:00Z"
          }
        ],
      • "coupons": [
        • {
          • "id": "1000-10",
          • "name": "10% Off!",
          • "code": "V8<6",
          • "valid": true
          }
        ],
      • "addedCouponValid": true,
      • "deferrableCombos": [
        • {
          • "id": "1000-10",
          • "name": "Happy Birthday! 20% Off",
          • "couponExpiration": "2024-05-31",
          • "periodExpiration": "2024-06-07",
          • "uses": 3,
          • "deferred": true,
          • "costs": [
            • {
              • "name": "string",
              • "showDecimal": true,
              • "value": 0
              }
            ],
          • "rewards": [
            • {
              • "type": "DISCOUNT",
              • "name": "string",
              • "showDecimal": true,
              • "value": 0
              }
            ]
          }
        ],
      • "checkout": {
        • "stage": 1,
        • "maxStage": 3,
        • "maxStageReached": 3,
        • "emails": [
          • {
            • "id": "string",
            • "name": "string",
            • "email": "string",
            • "billTo": true,
            • "shipTo": true,
            • "marketing": true,
            • "did": "string",
            • "ereceipt": true
            }
          ],
        • "phones": [
          • {
            • "id": "string",
            • "name": "string",
            • "phone": "string",
            • "billToPhone": true,
            • "billToFax": true,
            • "shipToPhone": true,
            • "shipToFax": true,
            • "fax": true,
            • "did": "string"
            }
          ],
        • "addresses": [
          • {
            • "id": "string",
            • "name": "string",
            • "street1": "string",
            • "street2": "string",
            • "city": "string",
            • "state": "string",
            • "postal": "string",
            • "country": "string",
            • "shipTo": true,
            • "billTo": true,
            • "location": true,
            • "webcart": true,
            • "did": "string"
            }
          ],
        • "billing": {
          • "firstName": "ECR",
          • "lastName": "Software",
          • "email": "test@ecrs.com",
          • "phone": "(828) 265-2907",
          • "street1": "277 Howard Street",
          • "street2": "Suite 1",
          • "postal": "28607",
          • "city": "Boone",
          • "country": 15,
          • "state": 34,
          • "latitude": 36.217646,
          • "longitude": -81.684149
          },
        • "shipping": {
          • "firstName": "ECR",
          • "lastName": "Software",
          • "email": "test@ecrs.com",
          • "phone": "(828) 265-2907",
          • "street1": "277 Howard Street",
          • "street2": "Suite 1",
          • "postal": "28607",
          • "city": "Boone",
          • "country": 15,
          • "state": 34,
          • "latitude": 36.217646,
          • "longitude": -81.684149
          },
        • "shippingMethod": {
          • "id": "string",
          • "name": "string",
          • "cost": 0,
          • "addressRequired": true,
          • "reservationRequired": true,
          • "status": "string",
          • "memo": "string",
          • "reservationDates": [
            • {
              • "date": "2019-08-24",
              • "times": [
                • {
                  • "start": "13:35:00",
                  • "end": "13:35:00",
                  • "available": true
                  }
                ]
              }
            ],
          • "tipProfiles": [
            • {
              • "id": {
                • "pk": 0,
                • "littleCpk": 0,
                • "littlePk": 0,
                • "urlString": "string"
                },
              • "name": "string",
              • "displayName": "string",
              • "allowCustomAmount": true,
              • "tipOptions": [
                • {
                  • "id": {
                    • "pk": 0,
                    • "littleCpk": 0,
                    • "littlePk": 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": "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,
                  • "littleCpk": 0,
                  • "littlePk": 0,
                  • "urlString": "string"
                  },
                • "name": "string",
                • "displayName": "string",
                • "allowCustomAmount": true,
                • "tipOptions": [
                  • {
                    • "id": {
                      • "pk": null,
                      • "littleCpk": null,
                      • "littlePk": null,
                      • "urlString": null
                      },
                    • "type": 0,
                    • "value": 0,
                    • "default": true
                    }
                  ]
                }
              ],
            • "thirdPartyServiceProfile": {
              • "id": 0,
              • "name": "string",
              • "thirdPartyServiceProvider": {
                • "id": 0,
                • "name": "string",
                • "type": 0
                }
              },
            • "reason": "string"
            }
          ],
        • "paymentMethods": [
          • {
            • "pmId": "1000-27966",
            • "methodId": "1000-27966",
            • "name": "Pay Online",
            • "available": true,
            • "type": 0,
            • "testing": true,
            • "balance": 0,
            • "eligible": 0,
            • "minimum": 0,
            • "maximum": 0,
            • "token": {
              • "cardId": "string",
              • "defaultToken": true,
              • "brand": "Visa",
              • "finalDigits": "1234",
              • "expiration": "1225",
              • "authFk": "1000-21",
              • "tenderType": 4
              },
            • "provider": "ecrs-charge",
            • "iframePath": "string",
            • "clientKey": "string",
            • "accessBlock": "string",
            • "serverPath": "string",
            • "iframePropertyQueryCount": 0,
            • "merchantId": "string",
            • "countryCode": "string",
            • "currencyCode": "string",
            • "applePayMerchantIdentifier": "string",
            • "googlePayMerchantId": "string"
            }
          ],
        • "isGift": true
        },
      • "inStore": true,
      • "orderType": "1000-2",
      • "online": true,
      • "lastSyncTime": "2019-08-24T14:15:22Z"
      }
    ]

    Get Order Type Details

    Retrieves detailed information for a specific order type based on its ID. Sets the order type as the active order type for the user session.

    path Parameters
    id
    required
    string
    Example: 1000-3

    The ID of the order type to retrieve.

    Responses

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

    Unique identifier for the order type

    name
    string

    Display name of the order type. Uses the alias if available, otherwise falls back to menu name

    urlSlug
    string

    URL Slug for this order type. This value can contain any valid Unicode and is included for reference or display only. For use in a URL, refer to urlEncodedSlug

    object (MenuDto)

    Item Group Menu associated with this order type

    Array of objects (AdDto)

    List of Web Ads associated with this order type.

    giftCard
    boolean

    Indicates whether this order type is configured for gift card purchases only

    listOnly
    boolean

    Indicates whether this order type should only display items so that they can be added to a list. This order type should prevent adding items to the cart.

    hidden
    boolean

    Indicates whether this order type is hidden from public display

    autoFinalize
    boolean

    Indicates whether orders of this type should automatically finalize the transaction, bypassing the Web Order queue.

    image
    string

    Image identifier for the order type. Falls back to menu order type image if not set

    urlEncodedSlug
    string

    Encoded version of urlSlug that is safe to use in a URL. Provided for uniformity across environments.

    Response samples

    Content type
    application/vnd.ecrs.webcart-2.0+json;q=1.0, application/json;q=0.9
    {
    • "id": "1000-3",
    • "name": "Pickup",
    • "urlSlug": "Doordash orders",
    • "menu": {
      • "id": "1000-10",
      • "name": "WebCart Upper Menu",
      • "children": [
        • { }
        ],
      • "orderTypeImage": "1000-2"
      },
    • "ads": [],
    • "giftCard": false,
    • "listOnly": false,
    • "hidden": false,
    • "autoFinalize": false,
    • "image": "1000-5",
    • "urlEncodedSlug": "Doordash+orders"
    }

    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
    recaptchaSource
    string

    Responses

    Request samples

    Content type
    application/json
    {
    • "method": "string",
    • "info": {
      • "property1": "string",
      • "property2": "string"
      },
    • "amount": 0,
    • "recaptcha": "string",
    • "recaptchaSource": "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 Change or 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.

    Get Active Circulars

    Returns a list of active circulars generated from one or more Price Change or Price & Cost Change worksheets, or a combination of both. The returned circular ID can be used with the Browse Items endpoint to retrieve the list of qualifying items by setting the group path in the request payload to PSW-{id}.

    Responses

    Response Schema: application/json
    id
    string

    ID of the circular

    name
    string <= 40 characters

    Name of the circular

    Response samples

    Content type
    application/json
    {
    • "id": "1000-1150",
    • "name": "Summer Sale"
    }

    Membership

    The endpoints in this group control the management of customer membership details and payments. ECRS Docs 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
    recaptchaSource
    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",
    • "recaptchaSource": "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
    g
    Array of strings

    The group path in which to search, consists of the IDs of departments, promotional sale worksheets, brands, item groups, and/or menu groups, using the following prefixes:

    PrefixDescription
    MGPItem Group Menu
    CGPItem Group
    DPTDepartment
    PSWPromotional Sale Worksheet
    BRDBrand
    WOTOrder Type
    Recommended items can be searched for by using one of the Recommended Item prefixes, followed by the item ID :
    PrefixDescription
    MIT0INV'Goes Well With' Items
    MIT1INVSubstitute Items
    HPRHome Page Recommendations
    OSROn Sale Recommendations
    RECINVSimilar Recommendations
    FBIINVFrequently Bought Together
    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 applied (as an AND) to the results of the main query (q). For example, if q is "Apple" and iq contains "Red", the API will return apples that are red (such as Red Delicious) by searching for items that match both "Apple" and "Red"

    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. See fc in Browse Facet Categories for more information on the available facet categories.

    Responses

    Request samples

    Content type
    application/json
    {
    • "g": [
      • "MGP-1000-20"
      ],
    • "q": "Apple",
    • "iq": [
      • "[\"Red\"]"
      ],
    • "s": "NAZ",
    • "ps": 16,
    • "pn": 2,
    • "facets": {
      • "Dept": [
        • "Grocery Items",
        • "Frozen"
        ],
      • "Brand": [
        • "ECRS"
        ]
      }
    }

    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

    The identifier for this external coupon.

    name
    string

    The name for this external coupon. This is the name that will be displayed to the customer.

    requirements
    string

    Any requirements for the usage or redemption of this coupon. Often used to explain legal requirements.

    description
    string

    The long form description of this coupon. This is often used to explain the coupon in detail.

    category
    string

    The type of digital coupon.

    brand
    string

    The brand of items relating to this digital coupon

    startDate
    string

    The start date for redemption of this coupon.

    endDate
    string

    The end date for redemption of this coupon.

    imageUrl
    string

    The url of the image related to this coupon. This is often used to display the coupon in a digital wallet or app.

    redeemLimit
    string

    The maximum number of times this coupon can be redeemed.

    requirementUpcs
    Array of strings

    The list of item UPCs that can trigger this coupon. These are returned in GTIN-14 format.

    rewardUpcs
    Array of strings

    The list of item UPCs that can trigger rewards for this coupon. These are returned in GTIN-14 format.

    targeted
    boolean

    Indicates whether this coupon is targeted at specific customers or groups.

    featured
    boolean

    Indicates whether this coupon should be featured/highlighted in search results. This is used to promote specific coupons.

    enabled
    boolean

    Indicates whether this coupon is enabled and should be displayed to customers.

    sortOrder
    integer <int32>

    The sort order for this coupon. This is used to determine the order in which coupons are displayed to customers. Lower numbers are displayed first.

    validBanners
    Array of strings

    List of banners that can display this coupon. This is used to restrict coupon display to specific groups of stores.

    validLocations
    Array of strings

    List of CATAPULT Store IDs that can display and redeem this coupon. This is used to restrict coupon display to specific stores.

    validForStore
    boolean

    Indicates whether this coupon is valid for the current store. This is used to determine if the coupon should be displayed to the customer.

    Response samples

    Content type
    application/json
    [
    • {
      • "id": "gc:10101-1232",
      • "name": "FIJI: $1.00 off",
      • "requirements": "Limit of one coupon per household.",
      • "description": "Save $6.00 on ONE (1) Brand Item. This coupon is valid for one time use only.",
      • "category": "CENTS OFF",
      • "brand": "Gillette",
      • "startDate": "2025-04-01",
      • "endDate": "2025-04-02",
      • "redeemLimit": "3",
      • "requirementUpcs": [
        • "00047400689435",
        • "00047400685697"
        ],
      • "rewardUpcs": [
        • "00047400689435",
        • "00047400685697"
        ],
      • "targeted": true,
      • "featured": true,
      • "enabled": true,
      • "sortOrder": 3,
      • "validBanners": [
        • "Banner 1",
        • "Banner 2"
        ],
      • "validLocations": [
        • "123",
        • "124"
        ],
      • "validForStore": true
      }
    ]

    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

    Retrieve Gift Card Information

    Retrieves gift card details and balance by card identifier. Returns an error with code -22 if a PIN is required.

    path Parameters
    id
    required
    string

    Gift card identifier

    Responses

    Response Schema: application/json
    dynamic
    required
    boolean

    Indicates if the gift card has dynamic balance

    account
    required
    string

    Gift card account number or identifier

    balance
    required
    number

    Current balance available on the gift card

    status
    required
    string
    Enum: "active" "inactive" "invalid"

    Status of the gift card

    object (GiftCardDesign)

    Selected design of the gift card line item in the cart

    recipientName
    string

    Name of the gift card recipient

    senderName
    string

    Name of the gift card sender

    message
    string

    Personal message included with the gift card

    egiftCard
    boolean

    Indicates if this is an electronic gift card

    Response samples

    Content type
    application/json
    {
    • "dynamic": false,
    • "account": "6123456789012345",
    • "balance": 50,
    • "status": "active",
    • "design": {
      • "id": "1000-20",
      • "image": "1000-25"
      },
    • "recipientName": "John Doe",
    • "senderName": "Jane Smith",
    • "message": "Happy Birthday!",
    • "egiftCard": true
    }

    Retrieve Gift Card Information with PIN

    Retrieves gift card details and balance using the provided card identifier and PIN. Use this endpoint when PIN verification is required.

    path Parameters
    id
    required
    string

    Gift card identifier

    Request Body schema: application/json
    pin
    required
    string

    PIN for the gift card

    Responses

    Response Schema: application/json
    dynamic
    required
    boolean

    Indicates if the gift card has dynamic balance

    account
    required
    string

    Gift card account number or identifier

    balance
    required
    number

    Current balance available on the gift card

    status
    required
    string
    Enum: "active" "inactive" "invalid"

    Status of the gift card

    object (GiftCardDesign)

    Selected design of the gift card line item in the cart

    recipientName
    string

    Name of the gift card recipient

    senderName
    string

    Name of the gift card sender

    message
    string

    Personal message included with the gift card

    egiftCard
    boolean

    Indicates if this is an electronic gift card

    Request samples

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

    Response samples

    Content type
    application/json
    {
    • "dynamic": false,
    • "account": "6123456789012345",
    • "balance": 50,
    • "status": "active",
    • "design": {
      • "id": "1000-20",
      • "image": "1000-25"
      },
    • "recipientName": "John Doe",
    • "senderName": "Jane Smith",
    • "message": "Happy Birthday!",
    • "egiftCard": true
    }

    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.

    Cancel Authorization

    Redirects to the Checkout page when the payment authorization is cancelled. Note that this method does not actually cancel the authorization; the POST endpoint can be used for that purpose.
    This endpoint is typically called as a callback from the payment provider when a user decides to cancel the payment flow.

    path Parameters
    method
    required
    string
    Example: 1000-20

    ID of the payment method for which to cancel authorization

    Responses

    Cancel Authorization

    Cancels an ongoing payment authorization process initiated by the payment provider. This endpoint is typically called as a callback from the payment provider when a user decides to cancel the payment flow.

    path Parameters
    method
    required
    string
    Example: 1000-20

    ID of the payment method for which to cancel authorization

    Responses

    Complete Authorization

    Completes an authorization process initiated by the payment provider. This endpoint is typically called as a callback from the payment provider after the user has completed their part of the authorization flow.

    path Parameters
    method
    required
    string
    Example: 1000-20

    ID of the payment method to complete authorization

    Request Body schema: application/json

    Form data containing the authorization details

    property name*
    additional property
    string

    Responses

    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.

    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
    {
    • "authFk": "1000-20",
    • "finalDigits": "4242",
    • "brand": "Visa"
    }

    Response samples

    Content type
    application/json
    {
    • "code": -1,
    • "message": "string",
    • "errors": {
      • "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.

    After the Authorize call is complete, execute a Get Cart endpoint to get the updated due total. Outside of Google Pay and Apple Pay, credit payment methods are only allowed for associated (logged-in) customers. Guests will be rejected.

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

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

    Loyalty Points

    Use the ID of the Loyalty Payment Method for {method}. Its Tender must have the type "Loyalty".
    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 the 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.

    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"
    }

    Cancel All Authorizations

    Cancels all payment authorizations associated with the current transaction. This endpoint will void all existing authorizations and remove the pay-later property if it exists.

    Responses

    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.

    Response samples

    Content type
    application/json
    {
    • "code": -1,
    • "message": "string",
    • "errors": {
      • "property1": [
        • "string"
        ],
      • "property2": [
        • "string"
        ]
      }
    }

    Cancel Authorization

    Cancels a specific payment authorization identified by the line item ID.

    path Parameters
    id
    required
    string
    Example: 123

    Line item ID of the authorization to cancel. Use -1 to remove the Pay Later property.

    Responses

    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.

    Response samples

    Content type
    application/json
    {
    • "code": -1,
    • "message": "string",
    • "errors": {
      • "property1": [
        • "string"
        ],
      • "property2": [
        • "string"
        ]
      }
    }

    Get Authorization Settings

    Gets any settings necessary to perform an authorization using a given payment method provider.

    This endpoint determines what information is needed based on the payment method type (deferred tender or online tender).

    path Parameters
    method
    required
    string
    Example: 1000-20

    ID of the payment method to get settings for

    Responses

    Validate Merchant

    Validates merchant identity for payment processing. Currently only supports Apple Pay validation.

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

    Source of the request

    validationUrl
    string

    Validation URL provided by the payment service

    Responses

    Response Schema: application/json
    session
    string

    Opaque session object used to complete merchant validation which allows Apple Pay to interact with the payment processor.

    Request samples

    Content type
    application/json
    {}

    Response samples

    Content type
    application/json
    {
    • "session": "{\"obfuscated\":\"data\"}"
    }

    Accelerated Checkout

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

    • Determine if a shopper is currently using accelerated checkout
    • Process accelerated checkout orders

    Get Customer Accelerated Checkout Status

    Indicates whether the associated customer is currently using accelerated checkout. When this endpoint is called, the user’s claims are also refreshed to ensure their accelerated checkout status is accurately reflected.

    Note: Claims information for the authenticated and associated customer can be retrieved using the Get customer claims endpoint found within the Account section.

    Responses

    Response Schema: application/json
    boolean

    Value to determine the customer's current accelerated checkout status. If the value of "data" is true, the customer is currently in accelerated checkout mode.

    Response samples

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

    Process Accelerated Checkout Orders

    Enters an associated customer into accelerated checkout mode to allow them to scan their items and complete their order using either Line Bust or Pay Now, depending on the store's accelerated checkout configuration. This endpoint can also be used to remove an associated customer from accelerated checkout mode.

    Related endpoints for processing accelerated checkout orders can be found in the Cart endpoint group:
    Line Bust, Pay Now, and Pay Now Payment Methods.

    Request Body schema: application/json
    enterScanAndGo
    boolean

    Specifies whether the associated customer should be entered into or removed from, accelerated checkout. Pass true to place the customer into accelerated checkout mode, or false to remove them from it.

    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

    Create Delivery

    Finalizes a delivery using the most recently generated quote associated with the active user.
    This is the third and final step in the order creation process.
    It is recommended to validate the quote before finalizing.
    Note: DoorDash requires validation prior to finalization.

    Request Body schema: application/json
    dropoffInstructions
    string <= 1024 characters

    Instructions for the drop-off location.

    contactlessDropoff
    boolean

    Indicates if the drop-off should be contactless. Note that contactless delivery is not available if restricted items are in the cart.

    sendNotifications
    boolean

    Indicates if notifications should be sent.

    Responses

    Request samples

    Content type
    application/json
    {
    • "dropoffInstructions": "Leave at the front door, beware of dog.",
    • "contactlessDropoff": true,
    • "sendNotifications": true
    }

    Delivery Details

    Returns delivery details based on the provided unique delivery ID.
    Primarily used to check the current status of a delivery.

    Request Body schema: application/json
    shippingMethodPk
    required
    integer <int32>

    The primary key of the shipping method.

    shippingMethodCpk
    required
    integer <int32>

    The composite key of the shipping method.

    deliveryId
    string

    The unique identifier for the delivery.When using DoorDash, this is the DoorDash order ID.

    Responses

    Response Schema: application/json
    requestStatus
    string
    Enum: "SUCCESS" "ERROR"

    The status of the delivery request. Acceptable values here are SUCCESS or ERROR.

    requestStatusMessage
    string

    A message providing additional information about the request status.

    object (DeliveryStatus)

    The detailed status of the delivery.

    Request samples

    Content type
    application/json
    {
    • "shippingMethodPk": 3,
    • "shippingMethodCpk": 1000,
    • "deliveryId": "DEL123456789"
    }

    Response samples

    Content type
    application/json
    {
    • "requestStatus": "SUCCESS",
    • "requestStatusMessage": "Pending driver.",
    • "deliveryStatus": "SCHEDULED"
    }

    Request Quote

    Initiates a delivery quote using the provided delivery and drop-off details.
    This is the second step in the delivery request workflow.

    Request Body schema: application/json
    shippingMethod
    required
    string

    The shipping method identifier.

    required
    object (CartAddress)

    Shipping address details

    dropoffPhone
    required
    string

    The phone number for the drop-off location. Typically used to contact the recipient if needed during delivery.

    amount
    required
    number

    The total cost for the delivery itself.

    dropoffDay
    required
    string

    The drop-off day in YYYY-MM-DD format.

    dropoffTime
    required
    string

    The drop-off time in HH:mm:ss format.

    dropoffInstructions
    string <= 1024 characters

    Special instructions for the drop-off.

    contactlessDropoff
    boolean

    Indicates if the drop-off is contactless. Note that if a transaction has restricted items contactless delivery will not be allowed.

    tip
    number

    The tip amount for the delivery.

    Responses

    Response Schema: application/json
    status
    string

    The status of the delivery quote.

    deliveryId
    string

    The unique identifier for the delivery.

    message
    string

    A message providing additional details about the delivery quote.

    dropoffPhone
    string

    The phone number for the drop-off location.

    object (DeliveryAddress)

    The address details for the drop-off location.

    dropoffInstructions
    string

    Special instructions for the drop-off.

    requestedDropoffDate
    string <date>

    The requested drop-off date.

    object (LocalTime)

    The current reservation time for this transaction

    dropoffDate
    string <date>

    The actual drop-off date.

    object (LocalTime)

    The current reservation time for this transaction

    fee
    number

    The fee for the delivery.

    trackingUrl
    string

    The tracking URL for the delivery.

    Request samples

    Content type
    application/json
    {
    • "shippingMethod": "1000-1",
    • "dropoffAddress": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "dropoffPhone": "8282652907",
    • "amount": 10,
    • "dropoffDay": "2022-03-03",
    • "dropoffTime": "12:34:56",
    • "dropoffInstructions": "Leave at the front door, no signature required.",
    • "contactlessDropoff": true,
    • "tip": 2.5
    }

    Response samples

    Content type
    application/json
    {
    • "status": "SUCCESS",
    • "deliveryId": "DEL12345",
    • "message": "Delivery quote generated successfully.",
    • "dropoffPhone": "8282652907",
    • "dropoffAddress": {
      • "addressLine1": "123 Main St",
      • "addressLine2": "Apt 4B",
      • "city": "Boone",
      • "state": "NC",
      • "zipCode": "28607",
      • "latitude": 39.7817,
      • "longitude": -89.6501
      },
    • "dropoffInstructions": "Leave at the garage door.",
    • "requestedDropoffDate": "2022-03-03",
    • "requestedDropoffTime": "13:35:00",
    • "dropoffDate": "2022-03-03",
    • "dropoffTime": "13:35:00",
    • "fee": 10,
    }

    Validate Delivery Details

    Validates that the provided delivery details correspond to an existing delivery.
    This is the first step in the order creation process and ensures the order is valid.
    This process will check if the delivery service can fulfill the request by sending a copy of the transaction to the provider.
    This may fail if age restricted items are present in a restrictive State/province or if the delivery service is down.

    Request Body schema: application/json
    shippingMethod
    required
    string

    The shipping method identifier.

    required
    object (CartAddress)

    Shipping address details

    dropoffPhone
    required
    string

    The recipient phone number.

    dropoffFirstName
    required
    string

    The first name of the recipient.

    dropoffLastName
    required
    string

    The last name of the recipient.

    dropoffEmail
    required
    string

    The email address of the recipient.

    amount
    required
    number

    The total monetary amount for the delivery.

    dropoffDay
    required
    string

    The drop-off day in YYYY-MM-DD format.

    dropoffTime
    required
    string

    The drop-off time in HH:mm:ss format.

    dropoffInstructions
    string <= 1024 characters

    Special instructions for the drop-off.

    Responses

    Response Schema: application/json
    boolean

    Indicates whether the delivery details are valid.

    Request samples

    Content type
    application/json
    {
    • "shippingMethod": "1000-1",
    • "dropoffAddress": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "dropoffPhone": "8282652907",
    • "dropoffFirstName": "John",
    • "dropoffLastName": "Doe",
    • "dropoffEmail": "jdoe@mail.com",
    • "amount": 10,
    • "dropoffDay": "2022-03-03",
    • "dropoffTime": "12:34:56",
    • "dropoffInstructions": "Leave at the front door, no signature required."
    }

    Response samples

    Content type
    application/json
    true

    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
    shippingMethodId
    string
    object (CartAddress)

    Shipping address details

    Responses

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

    Request samples

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

    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 Order

    Cancels an existing order based on its scan code. Handles cancellation of delivery services and voids payment authorizations. Returns EBT tender information if applicable.

    path Parameters
    sc
    required
    string

    The scan code of the order to cancel

    Responses

    Response Schema: application/json
    isEbtSnap
    boolean

    Indicates if the tender is EBT SNAP.

    isEbtCash
    boolean

    Indicates if the tender is EBT Cash.

    lastFour
    string

    The last four digits of the EBT card number.

    tenderAmount
    number

    The amount of the tender to be used in this action.

    remainingBalance
    number

    The remaining balance on the EBT card.

    Response samples

    Content type
    application/json
    {
    • "isEbtSnap": true,
    • "isEbtCash": true,
    • "lastFour": "1234",
    • "tenderAmount": 100,
    • "remainingBalance": 100
    }

    Get Order Details

    Retrieves detailed information for a specific order based on the scan code. Returns order details including shipping information, status, and line items.

    path Parameters
    sc
    required
    string

    The scan code of the order to retrieve

    Responses

    Response Schema: application/json
    id
    string

    Unique identifier for the order

    endTime
    string <date-time>

    Timestamp when the order was completed

    total
    number

    Total monetary amount of the order

    scancode
    string

    Unique scan code for the order

    object (CartAddress)

    Shipping address details

    source
    string
    Enum: "In Store" "In Store - Kiosk" "In Store - Self Checkout" "In Store - Kiosk" "Web Cart" "In Store - Attended Scale" "In Store - Self Service Scale" "In Store - Quick Service Kiosk" "In Store - Price Checker" "ECommerce" "Catapult OFS Pay at Pump"

    Source system or terminal that created the order

    object (HistoricalOrderStatus)

    Status information for a historical order

    shippingMethodDisplayName
    string

    Display name of the shipping method

    shippingMinLeadTimeMinutes
    integer <int32>

    Minimum lead time for shipping in minutes

    maxPrepTimeMinutes
    integer <int32>

    Maximum preparation time in minutes

    reservationStart
    string <date-time>

    Start time of the reservation window

    reservationEnd
    string <date-time>

    End time of the reservation window

    shortEditThreshold
    string <date-time>

    Threshold time for the short edit window. This is the date and time by which any edits to an order must be completed to maintain the initial reservation time.

    editTimeMinutes
    integer <int32>

    Standard edit time allowance in minutes

    shortEditTimeMinutes
    integer <int32>

    The short edit time allowance in minutes. This specifies the duration within which any edits to an order must be made to retain the initial reservation time.

    editable
    boolean

    Indicates whether the order is currently editable

    Array of objects (HistoricalLineItem)

    List of line items in the order

    Array of objects (HistoricalGiftCard)

    List of gift cards purchased in the order

    Array of objects (HistoricalSpecialOrderItem)

    List of special order items

    Array of objects (HistoricalServiceFee)

    List of service fees applied to the order

    deliveryId
    string

    Third-party delivery service ID if applicable

    shippingMethodPk
    integer <int32>

    Primary key of the shipping method

    shippingMethodCpk
    integer <int32>

    Creator primary key of the shipping method

    orderTypeId
    string

    Order type identifier

    Array of objects (HistoricalEbtInfo)

    List of EBT (Electronic Benefit Transfer) payment information

    Response samples

    Content type
    application/json
    {
    • "id": "1000-60",
    • "endTime": "2025-05-15T16:14:54.765-04:00",
    • "total": 59.99,
    • "scancode": "WB1234567890",
    • "shippingAddress": {
      • "firstName": "ECR",
      • "lastName": "Software",
      • "email": "test@ecrs.com",
      • "phone": "(828) 265-2907",
      • "street1": "277 Howard Street",
      • "street2": "Suite 1",
      • "postal": "28607",
      • "city": "Boone",
      • "country": 15,
      • "state": 34,
      • "latitude": 36.217646,
      • "longitude": -81.684149
      },
    • "source": "Web Cart",
    • "status": {
      • "stage": 3,
      • "label": "Order Complete",
      • "stages": [
        • "Web Order Received",
        • "In Progress",
        • "Ready",
        • "Complete"
        ]
      },
    • "shippingMethodDisplayName": "Pickup",
    • "shippingMinLeadTimeMinutes": 5,
    • "maxPrepTimeMinutes": 30,
    • "reservationStart": "2019-08-24T14:15:22Z",
    • "reservationEnd": "2019-08-24T14:15:22Z",
    • "shortEditThreshold": "2019-08-24T14:15:22Z",
    • "editTimeMinutes": 20,
    • "shortEditTimeMinutes": 10,
    • "editable": true,
    • "lineItems": [
      • {
        • "quantity": 2,
        • "price": 29.99,
        • "weightedItemQuantity": 1,
        • "item": {
          • "id": "INV-1000-12",
          • "image": "1000-345",
          • "scanCode": "123456789012",
          • "name": "Test Item Name",
          • "alternateName": "Alternate Name",
          • "suggestedPrice": 1.99,
          • "actualPriceDivider": 2,
          • "actualPrice": 4,
          • "autoDiscount": "10% Off 3 or more.",
          • "promo": "Sunday Special",
          • "buyDown": "Test Buydown",
          • "weightProfile": {
            • "abbrv": "lb",
            • "decimals": 2,
            • "selectCount": 15,
            • "selectMinimum": 0.5,
            • "selectIncrement": 0.25,
            • "allowWeightedQuantity": false
            },
          • "baseItem": "INV-1000-5",
          • "ascQuantity": 0,
          • "maxQuantity": 50,
          • "maxBaseQuantity": 0,
          • "quantityLimitData": {
            • "vendorGroup": "RJ",
            • "quantityLimit": 20,
            • "comboPackAmount": 3
            },
          • "attributes": [
            • {
              • "image": "string",
              • "name": "Organic"
              }
            ],
          • "itemGroups": [
            • "string"
            ],
          • "specialTenders": [
            • {
              • "id": "WPM-1000-3",
              • "name": "EBT SNAP Online",
              • "tenderType": 4
              }
            ],
          • "coupons": [
            • {
              • "id": "gc:0100037-00004",
              • "name": "FIJI: $1.00 off",
              • "requirements": null,
              • "description": "$1.00 off select Fiji products",
              • "category": null,
              • "brand": "FIJI",
              • "startDate": "2024-04-05",
              • "endDate": "2034-04-05",
              • "redeemLimit": "1",
              • "requirementUpcs": [
                • "00632565000012"
                ],
              • "rewardUpcs": [ ],
              • "targeted": false,
              • "featured": false,
              • "enabled": false,
              • "sortOrder": 1,
              • "validBanners": null,
              • "validLocations": null,
              • "validForStore": true
              }
            ],
          • "outOfStock": false,
          • "sellOutOfStock": false,
          • "brandId": "1000-12",
          • "brand": "Maria's",
          • "size": "12oz",
          • "shelfSequence": 123,
          • "location": "Aisle 3, Section 5, Shelf 1",
          • "hasModifiers": false,
          • "hasLinkedItems": true,
          • "averageWeight": 0.34,
          • "hasRestriction": false,
          • "hasAgeRestriction": true,
          • "cashierApprovalRequired": true,
          • "hasTimeRestrictions": true,
          • "excludeFromCombos": true,
          • "prohibitedSalesScheduleNames": [
            • "string"
            ],
          • "departmentId": "1000-6",
          • "department": "Grocery",
          • "discountType": "override",
          • "discontinued": true
          },
        • "variation": {
          • "id": "YLMfH9nO9RVY6zpGlSIFlgIrBeMQIh+/skdSdjyKw38=",
          • "priceOfModifiers": 4.55,
          • "modifiers": [
            • {
              • "type": "link",
              • "name": "string",
              • "quantity": 0,
              • "descriptor": "string",
              • "priceOfModifier": 0
              }
            ]
          }
        }
      ],
    • "giftCards": [
      • {
        • "amount": 100,
        • "recipientName": "John Doe",
        • "senderName": "Jane Smith",
        • "sendDate": "2024-05-19T16:00:00Z",
        • "design": {
          • "id": "1000-20",
          • "image": "1000-25"
          },
        • "code": "330",
        • "account": "4322000499",
        • "message": "Happy Birthday!"
        }
      ],
    • "specialOrderItems": [
      • {
        • "name": "Custom Cake",
        • "description": "Please write 'Happy Birthday' on the cake"
        }
      ],
    • "serviceFees": [
      • {
        • "quantity": 1,
        • "amount": 5,
        • "name": "Delivery Fee"
        }
      ],
    • "deliveryId": "1234567890",
    • "shippingMethodPk": 59,
    • "shippingMethodCpk": 1000,
    • "orderTypeId": "1000-3",
    • "historicalEbtInfo": [
      • {
        • "amount": 100,
        • "balance": 400,
        • "lastFour": "1234",
        • "ebtType": "SNAP",
        • "authorizationTime": "2024-05-19T16:00:00Z",
        • "isVoided": false
        }
      ]
    }

    Get Order History

    Retrieves order history for the authenticated customer with optional status filtering and pagination.

    Request Body schema: application/json
    q
    string <= 64 characters
    Deprecated

    The query string to filter results by. Limited to 64 characters. Unused.

    ps
    integer <int32> [ 1 .. 16 ]
    Default: 4

    The number of results to return on the requested page. Limited to 16

    pn
    integer <int32> >= 1
    Default: 1

    The page number to return. 1-based index.

    filter
    string
    Default: "IN_PROGRESS"
    Enum: "IN_PROGRESS" "COMPLETED" "CANCELLED"

    Filter for orders based on their status.

    Responses

    Response Schema: application/json
    count
    integer <int32>

    Total number of orders matching the query criteria

    Array of objects (HistoricalOrder)

    List of historical orders

    Request samples

    Content type
    application/json
    {
    • "q": "order123",
    • "ps": 4,
    • "pn": 1,
    • "filter": "IN_PROGRESS"
    }

    Response samples

    Content type
    application/json
    {
    • "count": 6,
    • "orders": [
      • {
        • "id": "1000-60",
        • "endTime": "2025-05-15T16:14:54.765-04:00",
        • "total": 59.99,
        • "scancode": "WB1234567890",
        • "shippingAddress": {
          • "firstName": "ECR",
          • "lastName": "Software",
          • "email": "test@ecrs.com",
          • "phone": "(828) 265-2907",
          • "street1": "277 Howard Street",
          • "street2": "Suite 1",
          • "postal": "28607",
          • "city": "Boone",
          • "country": 15,
          • "state": 34,
          • "latitude": 36.217646,
          • "longitude": -81.684149
          },
        • "source": "Web Cart",
        • "status": {
          • "stage": 3,
          • "label": "Order Complete",
          • "stages": [
            • "Web Order Received",
            • "In Progress",
            • "Ready",
            • "Complete"
            ]
          },
        • "shippingMethodDisplayName": "Pickup",
        • "shippingMinLeadTimeMinutes": 5,
        • "maxPrepTimeMinutes": 30,
        • "reservationStart": "2019-08-24T14:15:22Z",
        • "reservationEnd": "2019-08-24T14:15:22Z",
        • "shortEditThreshold": "2019-08-24T14:15:22Z",
        • "editTimeMinutes": 20,
        • "shortEditTimeMinutes": 10,
        • "editable": true,
        • "lineItems": [
          • {
            • "quantity": 2,
            • "price": 29.99,
            • "weightedItemQuantity": 1,
            • "item": {
              • "id": "INV-1000-12",
              • "image": "1000-345",
              • "scanCode": "123456789012",
              • "name": "Test Item Name",
              • "alternateName": "Alternate Name",
              • "suggestedPrice": 1.99,
              • "actualPriceDivider": 2,
              • "actualPrice": 4,
              • "autoDiscount": "10% Off 3 or more.",
              • "promo": "Sunday Special",
              • "buyDown": "Test Buydown",
              • "weightProfile": {
                • "abbrv": "lb",
                • "decimals": 2,
                • "selectCount": 15,
                • "selectMinimum": 0.5,
                • "selectIncrement": 0.25,
                • "allowWeightedQuantity": false
                },
              • "baseItem": "INV-1000-5",
              • "ascQuantity": 0,
              • "maxQuantity": 50,
              • "maxBaseQuantity": 0,
              • "quantityLimitData": {
                • "vendorGroup": "RJ",
                • "quantityLimit": 20,
                • "comboPackAmount": 3
                },
              • "attributes": [
                • {
                  • "image": "string",
                  • "name": "Organic"
                  }
                ],
              • "itemGroups": [
                • "string"
                ],
              • "specialTenders": [
                • {
                  • "id": "WPM-1000-3",
                  • "name": "EBT SNAP Online",
                  • "tenderType": 4
                  }
                ],
              • "coupons": [
                • {
                  • "id": "gc:0100037-00004",
                  • "name": "FIJI: $1.00 off",
                  • "requirements": null,
                  • "description": "$1.00 off select Fiji products",
                  • "category": null,
                  • "brand": "FIJI",
                  • "startDate": "2024-04-05",
                  • "endDate": "2034-04-05",
                  • "redeemLimit": "1",
                  • "requirementUpcs": [
                    • "00632565000012"
                    ],
                  • "rewardUpcs": [ ],
                  • "targeted": false,
                  • "featured": false,
                  • "enabled": false,
                  • "sortOrder": 1,
                  • "validBanners": null,
                  • "validLocations": null,
                  • "validForStore": true
                  }
                ],
              • "outOfStock": false,
              • "sellOutOfStock": false,
              • "brandId": "1000-12",
              • "brand": "Maria's",
              • "size": "12oz",
              • "shelfSequence": 123,
              • "location": "Aisle 3, Section 5, Shelf 1",
              • "hasModifiers": false,
              • "hasLinkedItems": true,
              • "averageWeight": 0.34,
              • "hasRestriction": false,
              • "hasAgeRestriction": true,
              • "cashierApprovalRequired": true,
              • "hasTimeRestrictions": true,
              • "excludeFromCombos": true,
              • "prohibitedSalesScheduleNames": [
                • "string"
                ],
              • "departmentId": "1000-6",
              • "department": "Grocery",
              • "discountType": "override",
              • "discontinued": true
              },
            • "variation": {
              • "id": "YLMfH9nO9RVY6zpGlSIFlgIrBeMQIh+/skdSdjyKw38=",
              • "priceOfModifiers": 4.55,
              • "modifiers": [
                • {
                  • "type": "link",
                  • "name": "string",
                  • "quantity": 0,
                  • "descriptor": "string",
                  • "priceOfModifier": 0
                  }
                ]
              }
            }
          ],
        • "giftCards": [
          • {
            • "amount": 100,
            • "recipientName": "John Doe",
            • "senderName": "Jane Smith",
            • "sendDate": "2024-05-19T16:00:00Z",
            • "design": {
              • "id": "1000-20",
              • "image": "1000-25"
              },
            • "code": "330",
            • "account": "4322000499",
            • "message": "Happy Birthday!"
            }
          ],
        • "specialOrderItems": [
          • {
            • "name": "Custom Cake",
            • "description": "Please write 'Happy Birthday' on the cake"
            }
          ],
        • "serviceFees": [
          • {
            • "quantity": 1,
            • "amount": 5,
            • "name": "Delivery Fee"
            }
          ],
        • "deliveryId": "1234567890",
        • "shippingMethodPk": 59,
        • "shippingMethodCpk": 1000,
        • "orderTypeId": "1000-3",
        • "historicalEbtInfo": [
          • {
            • "amount": 100,
            • "balance": 400,
            • "lastFour": "1234",
            • "ebtType": "SNAP",
            • "authorizationTime": "2024-05-19T16:00:00Z",
            • "isVoided": false
            }
          ]
        }
      ]
    }

    Get Order Receipt

    Retrieves the HTML receipt for a specific order based on its scan code. Returns the rendered receipt in HTML format that can be displayed to the customer.

    path Parameters
    sc
    required
    string

    The scan code of the order to retrieve the receipt for

    Responses

    Edit Order

    Reopens and prepares an existing order for editing. Returns EBT tender information if applicable. Only available when order editing is enabled.

    path Parameters
    sc
    required
    string

    The scan code of the order to edit

    Responses

    Response Schema: application/json
    isEbtSnap
    boolean

    Indicates if the tender is EBT SNAP.

    isEbtCash
    boolean

    Indicates if the tender is EBT Cash.

    lastFour
    string

    The last four digits of the EBT card number.

    tenderAmount
    number

    The amount of the tender to be used in this action.

    remainingBalance
    number

    The remaining balance on the EBT card.

    Response samples

    Content type
    application/json
    {
    • "isEbtSnap": true,
    • "isEbtCash": true,
    • "lastFour": "1234",
    • "tenderAmount": 100,
    • "remainingBalance": 100
    }

    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.
    -35CODE_OAUTH_ERRORReturned when third party has rejected a login request. See WebCart logs for exact message returned by third party.

    Line Item Types

    TypeName
    1Inventory
    2Tender
    3Tax
    4Discount
    5Item Correct
    6No Sale
    7All Void
    8No Tax
    9Tax Modifier Total
    10Suspend
    11Resume
    12Tax Modifier Indicator
    13Recovered Transaction
    14Totals Entry
    15Return Item
    16Customer Payment
    17Change
    18Receipt Block
    19Tender Correct
    20No Tax Total
    21Reconciliation Action
    22Tender Loan
    23Tender Safe Drop
    24Tender Modifier Indicator
    25Discount Total
    26Discount Total Correct
    27Paid Out
    28Paid In
    29Paid Out Correct
    30Age Verification
    31Vendor Coupon
    32Credit Card Soft Check
    33POS Prompt
    34Salesperson
    35Combo Total
    36Combo Item
    37Combo Removed
    38WIC ID
    39WIC Voucher Number
    40WIC Voucher First Date
    41WIC Voucher Last Date
    42WIC Date Valid
    43WIC Voucher Amount
    44Prescription Info
    45Signature Capture
    46Electronic Gift Card
    47Electronic Gift Card Info
    48Buydown Correct
    49Buydown
    50Safe Drop Warning
    51Loyalty
    52Auto Transaction
    53Paid In Correct
    54Prepaid Card
    55Receipt Plugin
    56Cash Back
    57Fuel Info
    59Excentus Rewards
    60Special Order
    61Transaction Merged
    62Return Limits Info
    63Discount Card