openapi: 3.1.0
info:
  title: 'Admin Management: Abandoned Carts'
  version: 1.0.0
paths:
  /stores/{store_hash}/v3/abandoned-carts/{token}:
    get:
      operationId: getAbandonedCart
      summary: Get Abandoned Cart
      description: >-
        Return the `cart_id` corresponding to the abandoned cart `{token}` passed in.


        **Usage Notes**:

        * `{token}` is the token in the query string of the abandoned cart link found in abandoned cart email
        notifications to shoppers
      tags:
        - abandonedCarts
      parameters:
        - name: token
          in: path
          description: |-
            Unique cart `UUID`.

            Unique cart `UUID` token that is generated for abandoned cart emails.
          required: true
          schema:
            type: string
            format: uuid
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            | Information & Settings  | read-only  | `store_v2_information_read_only`|

            | Information & Settings  | modify     | `store_v2_information`          |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: Returned on `GET` requests to `/abandoned-carts/{token}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Abandoned Carts_getAbandonedCart_Response_200'
        '400':
          description: |-
            Malformed request syntax. Typically need to fix the JSON
            Body to resend successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Full'
        '404':
          description: If the requested account resource is not found for the franchise, return a 404 Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Full'
        '422':
          description: >-
            This occurs when missing or unacceptable data is passed for one or more fields. Please correct the values
            for the fields listed in the errors object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorDetailed_Full'
        '502':
          description: >-
            If something happens during the request that causes it to fail, a 502 response will be returned. A new
            request should be made; however, it could fail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Full'
        '503':
          description: >-
            If this occurs, you should retry the request. If you are unable to successfully make a request, please check
            the BigCommerce system status [here](https://status.bigcommerce.com/). A service is likely down and the
            request will need to be made again when it is back up (in several hours usually)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Full'
        '504':
          description: >-
            If this occurs, you should retry the request. Typically retrying the request several times will result in a
            successful request; However, if you are unable to successfully make a request, please check the BigCommerce
            system status [here](https://status.bigcommerce.com/). A service is likely down and the request will need to
            be made again when it is back up (in several hours usually)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorDetailed_Full'
  /stores/{store_hash}/v3/abandoned-carts/settings:
    get:
      operationId: getGlobalAbandonedCartSettings
      summary: Get Global Abandoned Cart Settings
      description: Return the global abandoned cart settings of a store.
      tags:
        - abandonedCartsSettings
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            | Information & Settings  | read-only  | `store_v2_information_read_only`|

            | Information & Settings  | modify     | `store_v2_information`          |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalAbandonedCartSettingsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    put:
      operationId: updateGlobalAbandonedCartSettings
      summary: Update Global Abandoned Cart Settings
      description: Update the global abandoned cart settings of a store.
      tags:
        - abandonedCartsSettings
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            | Information & Settings  | read-only  | `store_v2_information_read_only`|

            | Information & Settings  | modify     | `store_v2_information`          |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalAbandonedCartSettingsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GlobalAbandonedCartSettingsRequest'
  /stores/{store_hash}/v3/abandoned-carts/settings/channels/{channel_id}:
    get:
      operationId: getChannelAbandonedCartSettings
      summary: Get Channel Abandoned Cart Settings
      description: Return the per-channel overrides for the abandoned cart settings of a store.
      tags:
        - abandonedCartsSettings
      parameters:
        - name: channel_id
          in: path
          description: The channel ID of the settings overrides
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            | Information & Settings  | read-only  | `store_v2_information_read_only`|

            | Information & Settings  | modify     | `store_v2_information`          |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelAbandonedCartSettingsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    put:
      operationId: updateChannelAbandonedCartSettings
      summary: Update Channel Abandoned Cart Settings
      description: |-
        Updates the per-channel overrides for the abandoned cart settings of a store.

        #### OAuth Scopes
        | UI Name                                      | Permission | Parameter                                     |
        |----------------------------------------------|------------|-----------------------------------------------|
        | Information & Settings                       | modify     | `store_v2_information`                        |
      tags:
        - abandonedCartsSettings
      parameters:
        - name: channel_id
          in: path
          description: The channel ID of the settings overrides
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            | Information & Settings  | read-only  | `store_v2_information_read_only`|

            | Information & Settings  | modify     | `store_v2_information`          |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelAbandonedCartSettingsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelAbandonedCartSettingsRequest'
servers:
  - url: https://api.bigcommerce.com
    description: https://api.bigcommerce.com
components:
  schemas:
    abandonedCartInfo_Full:
      type: object
      properties:
        cart_id:
          type: string
          description: >-
            The `cart_id` of the abandoned cart. Can be used to display the abandoned cart to the customer using
            storefront cart or server-to-server cart APIs
      title: abandonedCartInfo_Full
    metaEmpty_Full:
      type: object
      properties: {}
      description: Response metadata
      title: metaEmpty_Full
    Abandoned Carts_getAbandonedCart_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/abandonedCartInfo_Full'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Abandoned Carts_getAbandonedCart_Response_200
    error_Full:
      type: object
      properties:
        status:
          type: integer
          description: |
            The HTTP status code
        title:
          type: string
          description: |
            The error title describing the particular error
        type:
          type: string
      title: error_Full
    ErrorDetailedFullErrors:
      type: object
      properties: {}
      title: ErrorDetailedFullErrors
    errorDetailed_Full:
      type: object
      properties:
        errors:
          $ref: '#/components/schemas/ErrorDetailedFullErrors'
      title: errorDetailed_Full
    AbandonedCartSettingsMerchantAbandonedCartEmailFrequencyType:
      type: string
      enum:
        - digest
        - individual
      description: >-
        Indicates whether to send an email for every abandoned cart, or to send a digest email after X number of
        abandoned carts
      title: AbandonedCartSettingsMerchantAbandonedCartEmailFrequencyType
    AbandonedCartSettings:
      type: object
      properties:
        enable_notification:
          type: boolean
          description: Indicates whether or not abandoned cart notification is on
        email_customer_until_cart_is_recovered:
          type: boolean
          description: >-
            Indicates whether or not a customer should continue to receive abandoned cart emails until their cart is
            recovered
        marketing_emails_require_customer_consent:
          type: boolean
          description: >-
            Indicates whether or not a customer should receive abandoned cart emails based on their consent. By default
            customers will not receive emails
        email_merchant_when_cart_is_converted:
          type: boolean
          description: >-
            Indicates whether or not a merchant should receive a notification email when a cart is converted into an
            order
        email_merchant_when_cart_is_abandoned:
          type: boolean
          description: Indicates whether or not a merchant should receive a notification email when a cart is abandoned
        merchant_email_address:
          type: string
          format: email
          description: The email address for receiving merchant notifications
        merchant_abandoned_cart_email_frequency_type:
          $ref: '#/components/schemas/AbandonedCartSettingsMerchantAbandonedCartEmailFrequencyType'
          description: >-
            Indicates whether to send an email for every abandoned cart, or to send a digest email after X number of
            abandoned carts
        merchant_abandoned_cart_digest_email_frequency:
          type: integer
          description: The number of abandoned carts to accumulate before a digest email is sent to a merchant
      description: Represents all settings related to the abandoned cart functionality of a store
      title: AbandonedCartSettings
    GlobalAbandonedCartSettingsResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/AbandonedCartSettings'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: The response object of abandoned cart settings at the global level
      title: GlobalAbandonedCartSettingsResponse
    ErrorResponseErrors:
      type: object
      properties: {}
      title: ErrorResponseErrors
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
        instance:
          type: string
        errors:
          $ref: '#/components/schemas/ErrorResponseErrors'
      description: The response object containing details of an error
      title: ErrorResponse
    GlobalAbandonedCartSettingsRequestMerchantAbandonedCartEmailFrequencyType:
      type: string
      enum:
        - digest
        - individual
      description: >-
        Indicates whether to send an email for every abandoned cart, or to send a digest email after X number of
        abandoned carts
      title: GlobalAbandonedCartSettingsRequestMerchantAbandonedCartEmailFrequencyType
    GlobalAbandonedCartSettingsRequest:
      type: object
      properties:
        enable_notification:
          type: boolean
          description: Indicates whether or not abandoned cart notification is on
        email_customer_until_cart_is_recovered:
          type: boolean
          description: >-
            Indicates whether or not a customer should continue to receive abandoned cart emails until their cart is
            recovered
        marketing_emails_require_customer_consent:
          type: boolean
          description: >-
            Indicates whether or not a customer should receive abandoned cart emails based on their consent. By default
            customers will not receive emails
        email_merchant_when_cart_is_converted:
          type: boolean
          description: >-
            Indicates whether or not a merchant should receive a notification email when a cart is converted into an
            order
        email_merchant_when_cart_is_abandoned:
          type: boolean
          description: Indicates whether or not a merchant should receive a notification email when a cart is abandoned
        merchant_email_address:
          type: string
          format: email
          description: The email address for receiving merchant notifications
        merchant_abandoned_cart_email_frequency_type:
          $ref: '#/components/schemas/GlobalAbandonedCartSettingsRequestMerchantAbandonedCartEmailFrequencyType'
          description: >-
            Indicates whether to send an email for every abandoned cart, or to send a digest email after X number of
            abandoned carts
        merchant_abandoned_cart_digest_email_frequency:
          type: integer
          description: The number of abandoned carts to accumulate before a digest email is sent to a merchant
      required:
        - email_customer_until_cart_is_recovered
        - marketing_emails_require_customer_consent
        - email_merchant_when_cart_is_converted
        - email_merchant_when_cart_is_abandoned
        - merchant_email_address
        - merchant_abandoned_cart_email_frequency_type
        - merchant_abandoned_cart_digest_email_frequency
      description: The request object for updating the abandoned cart settings of a store at the global level
      title: GlobalAbandonedCartSettingsRequest
    ChannelAbandonedCartSettingsMerchantAbandonedCartEmailFrequencyType:
      type: string
      enum:
        - digest
        - individual
      description: >-
        Indicates whether to send an email for every abandoned cart or to send a digest email after X number of
        abandoned carts. If it is null, it means there is no override for the specified channel.
      title: ChannelAbandonedCartSettingsMerchantAbandonedCartEmailFrequencyType
    ChannelAbandonedCartSettings:
      type: object
      properties:
        enable_notification:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not abandoned cart notification is on. If it is null, it means there is no override for
            the specified channel.
        email_customer_until_cart_is_recovered:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not a customer should continue to receive abandoned cart emails until their cart is
            recovered. If it is null, it means there is no override for the specified channel.
        marketing_emails_require_customer_consent:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not a customer should receive abandoned cart emails based on their consent. If it is
            null, it means there is no override for the specified channel. By default customers will not receive emails.
        email_merchant_when_cart_is_converted:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not a merchant should receive a notification email when a cart is converted into an
            order. If it is null, it means there is no override for the specified channel.
        email_merchant_when_cart_is_abandoned:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not a merchant should receive a notification email when a cart is abandoned. If it is
            null, it means there is no override for the specified channel.
        merchant_email_address:
          type:
            - string
            - 'null'
          format: email
          description: >-
            The email address for receiving merchant notifications. If it is null, it means there is no override for the
            specified channel.
        merchant_abandoned_cart_email_frequency_type:
          oneOf:
            - $ref: '#/components/schemas/ChannelAbandonedCartSettingsMerchantAbandonedCartEmailFrequencyType'
            - type: 'null'
          description: >-
            Indicates whether to send an email for every abandoned cart or to send a digest email after X number of
            abandoned carts. If it is null, it means there is no override for the specified channel.
        merchant_abandoned_cart_digest_email_frequency:
          type:
            - integer
            - 'null'
          description: >-
            The number of abandoned carts to accumulate before a digest email is sent to a merchant. If it is null, it
            means there is no override for the specified channel.
      description: Represents all settings overrides related to the abandoned cart functionality of a store for a channel
      title: ChannelAbandonedCartSettings
    ChannelAbandonedCartSettingsResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ChannelAbandonedCartSettings'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: The response object of abandoned cart settings overrides for a channel
      title: ChannelAbandonedCartSettingsResponse
    ChannelAbandonedCartSettingsRequestMerchantAbandonedCartEmailFrequencyType:
      type: string
      enum:
        - digest
        - individual
      description: >-
        Indicates whether to send an email for every abandoned cart or to send a digest email after X number of
        abandoned carts. If it is null, it means there is no override for the specified channel.
      title: ChannelAbandonedCartSettingsRequestMerchantAbandonedCartEmailFrequencyType
    ChannelAbandonedCartSettingsRequest:
      type: object
      properties:
        enable_notification:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not abandoned cart notification is on. If it is null, it means there is no override for
            the specified channel.
        email_customer_until_cart_is_recovered:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not a customer should continue to receive abandoned cart emails until their cart is
            recovered. If it is null, it means there is no override for the specified channel.
        marketing_emails_require_customer_consent:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not a customer should receive abandoned cart emails based on their consent. If it is
            null, it means there is no override for the specified channel. By default customers will not receive emails.
        email_merchant_when_cart_is_converted:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not a merchant should receive a notification email when a cart is converted into an
            order. If it is null, it means there is no override for the specified channel.
        email_merchant_when_cart_is_abandoned:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether or not a merchant should receive a notification email when a cart is abandoned. If it is
            null, it means there is no override for the specified channel.
        merchant_email_address:
          type:
            - string
            - 'null'
          format: email
          description: >-
            The email address for receiving merchant notifications. If it is null, it means there is no override for the
            specified channel.
        merchant_abandoned_cart_email_frequency_type:
          oneOf:
            - $ref: '#/components/schemas/ChannelAbandonedCartSettingsRequestMerchantAbandonedCartEmailFrequencyType'
            - type: 'null'
          description: >-
            Indicates whether to send an email for every abandoned cart or to send a digest email after X number of
            abandoned carts. If it is null, it means there is no override for the specified channel.
        merchant_abandoned_cart_digest_email_frequency:
          type:
            - integer
            - 'null'
          description: >-
            The number of abandoned carts to accumulate before a digest email is sent to a merchant. If it is null, it
            means there is no override for the specified channel.
      description: The request object for updating the abandoned cart settings overrides of a store for a channel
      title: ChannelAbandonedCartSettingsRequest
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: >-
        ### OAuth scopes


        | UI Name | Permission | Parameter |

        |:--------|:-----------|:----------|

        | Information & Settings  | read-only  | `store_v2_information_read_only`|

        | Information & Settings  | modify     | `store_v2_information`          |


        ### Authentication header


        | Header | Argument | Description |

        |:-------|:---------|:------------|

        | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to
        API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


        ### Further reading


        For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example
        Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


        For more about BigCommerce OAuth scopes, see our [Guide to API
        Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


        For a list of API status codes, see [API Status
        Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
