---
title: "Process Cart"
method: POST
path: "/cart/processcart"
tags: ["Cart API"]
---

# Process Cart

`POST /cart/processcart`

Processes an order automatically. The customer does not need to use a browser, interact with Cleverbridge, or enter new payment information. Instead, Cleverbridge uses the customer's most recent payment details to process the order. If the order cannot be processed automatically, the API returns a unique URL that can be sent to the customer in order to complete their transaction on the Cleverbridge-hosted page. To process an order, you have to submit a customer identifier and the cart item(s). The customer identifier can be a former purchase ID of an existing customer with Cleverbridge (<code>LogonPurchaseId</code>), your own client account identifier (<code>CustomerReferenceId</code>), or a subscription ID (<code>SubscriptionId</code>).<br />For more information, see [Process Cart](https://dev.cleverbridge.com/docs/process-cart). For XML examples and schemas, see the [Additional Examples - Process Cart](https://dev.cleverbridge.com/page/additional-examples-process-cart).

## Headers

- `Accept` 'application/json' | 'application/xml'
- `Content-Type` 'application/json' | 'application/xml'

## Request body

- CleverbridgeBackEndRestApiShoppingCartClassesProcessCartRequest
  - `Cart` CleverbridgeBackEndRestApiShoppingCartClassesCart, required — The order to be processed.
    - `AcceptSubscription` boolean — Applies only to orders containing a subscription product. If set to <code>true</code>, an active subscription is created. If set to false, a subscription with status <code>Deactivated</code> and item status <code>Awaiting Reinstate</code> is created.
    - `BillingContact` CleverbridgeBackEndRestApiContactClassesContact — The contact.
      - `City` string — Contact's city.
      - `Company` string — Name of the company (if applicable).
      - `CompanyKatakana` string — Name of the company in Katakana (if applicable).
      - `CompanyRomanized` string — Romanized name of the company (if applicable).
      - `CompanyTypeId` 'COM' | 'GOV' | 'MIS' | 'NPR' | 'UNI' — ID of the company type. Possible values are Company = <code>COM</code>, Governmental = <code>GOV</code>, Miscellaneous = <code>MIS</code>, Non-profit = <code>NPR</code> and School/University = <code>UNI</code>.
      - `CountryId` string, required — Two-character ID of the contact's country. Submit with capital letters, for example <code>US</code>. See [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      - `EMail` string — Contact's email address. Note: Cleverbridge has no pattern checking and does not validate email addresses.
      - `Fax` string — Contact's fax number.
      - `Firstname` string — Contact's first name.
      - `FirstnameKatakana` string — Contact's first name in Katakana.
      - `FirstnameRomanized` string — Contact's romanized first name.
      - `LanguageId` string, required — Two-character ID of the contact's language, see [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1). You must submit this with lower-case letters, for example <code>en</code>.
      - `Lastname` string — Contact's last name.
      - `LastnameKatakana` string — Contact's last name in Katakana.
      - `LastnameRomanized` string — Contact's romanized last name.
      - `Phone1` string — Contact's phone number.
      - `Phone2` string — Contact's additional phone number.
      - `PostalCode` string — Contact's postal code.
      - `SalutationId` 'MR_' | 'MS_' | 'MRS.' | 'MIS' — Contact's salutation. Possible values are Mr. = <code>MR_</code>, Ms. = <code>MS_</code>, Mrs. = <code>MRS</code>, Miss = <code>MIS</code>.
      - `StateId` string — Five- or six-character ID of the customer's country and state based on [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). It is required for Australia, Brazil, Canada, India, Ireland, Japan, the UAE, and the USA. For syntax, see [GraphQL StateEnum](https://docs.cleverbridge.com/api-documentation/graphql-api/doc/schema/stateenum.doc.html).
      - `Street1` string — Contact's street address.
      - `Street2` string — Contact's additional street information.
      - `Title` string — Contact's title.
      - `Url` string — Contact's website URL.
      - `VatId` string — Taxation number of the contact's company. It must be up-to-date, accurate, and correspond with the <code>CountryId</code>.
    - `CartItems` CleverbridgeBackEndRestApiShoppingCartClassesCartItem[], required — List of cart items. <code>ProductId</code> and <code>Quantity</code> are required. For a list of all of the <code>CartItems</code>parameters that are available, see [Additional Cart Parameters](https://dev.cleverbridge.com/page/additional-cart-parameters). To use the 'Try It' function, enter <code>97771</code> as <code>ProductId</code> and any number as the <code>Quantity</code>. After that, click the 'Add Object' button.
      - `AdditionalName` string — Product description. Corresponds to the 'Additional name information' in the Cleverbridge platform.
      - `DynamicDiscount` CleverbridgeBackEndRestApiShoppingCartClassesDynamicDiscount
        - `IncreaseNetPrice` boolean — Applies only if you define gross prices (<code>IsGross=true</code>). If set to <code>true</code>, for customers who don't pay taxes, the net price is increased by the same percentage as customers who do pay taxes. All customers pay the same total price, whether they pay taxes or not. If set to <code>false</code>, for customers who don't pay taxes, the net price is decreased by the same percentage as customers who do pay taxes. Customers pay a different total price.
        - `IsGross` boolean — Set to <code>true</code> if taxes should be included in the item price. Set to <code>false</code> if taxes should be added on top of the item price. Applies only to absolute discounts.
        - `Items` CleverbridgeBackEndRestApiShoppingCartClassesDynamicDiscountItem[] — List of dynamic discount items.
          - `Currency` string — The currency of the defined price.
          - `Price` number, double — Discounted price of the product.
        - `MaxIntervalNo` integer — Applies only to orders containing a subscription product. The subscription interval up to which the dynamic discount is to be applied. Counting of intervals starts at 0. For an unlimited discount, use <code>0</code>.
        - `Percent` number, double — Percentage which is subtracted from the price of the product.
        - `YourCurrency` string — Currency in which prices are fixed for calculating the payout amount for the transaction.
      - `DynamicInternalProductId` string — Overwrites the <code>InternalProductId</code> with a custom ID for the respective transaction.
      - `DynamicPrice` CleverbridgeBackEndRestApiShoppingCartClassesDynamicPrice — Set a special product price for the transaction. Dynamic pricing must be enabled both for the product and your account. For more information, see [Price Options Tab in the Product Portal](https://docs.cleverbridge.com/public/all/using-the-platform/set-up-product-pricing.htm?utm_source=developer-docs&amp;utm_medium=api-reference).
        - `IncreaseNetPrice` boolean — Applies only if you define gross prices (<code>IsGross=true</code>). If set to <code>true</code>, for customers who don't pay taxes, the net price is increased by the same percentage as customers who do pay taxes. All customers pay the same total price, whether they pay taxes or not. If set to <code>false</code>, for customers who don't pay taxes, the net price is decreased by the same percentage as customers who do pay taxes. Customers pay a different total price.
        - `IsGross` boolean — Set to <code>true</code> if taxes should be included in the item price. Set to <code>false</code> if taxes should be added on top of the item price. Applies only to absolute discounts.
        - `Items` CleverbridgeBackEndRestApiShoppingCartClassesDynamicPriceItem[] — List of dynamic discount items.
          - `Currency` string — Currency code in capital letters, see [ISO 4217] (https://en.wikipedia.org/wiki/ISO_4217).
          - `Price` number, double — A special price value.
        - `YourCurrency` string — Currency in which prices are fixed for calculating the payout amount for the transaction.
      - `DynamicSubscription` CleverbridgeBackEndRestApiShoppingCartClassesDynamicSubscription
        - `IntervalCount` integer — Change the length of the first subscription interval.
        - `SubscriptionInterval` 'Days' | 'Months' — Time unit of the subscription interval. For an XML request the data type is string. Use the following values: 0 - Day, 1 - Month.
      - `InternalProductId` string — Your custom unique product ID.
      - `Name` string — Product name used in customer communication.
      - `ProductId` integer — Unique ID of the product. You must submit either <code>ProductID</code> or <code>InternalProductId</code>.
      - `Quantity` integer — Number of items.
      - `ExtraParameters` CleverbridgeBackEndRestApiShoppingCartClassesExtraParameter[] — List of x-parameters for adding additional information to the purchase item. Submit as key-value pairs. All keys must begin with <code>x-</code>. For more information, see [Process Cart &gt; Important Parameters](https://dev.cleverbridge.com/docs/process-cart#important-parameters).
        - `Key` string — Name of the parameter. Key must begin with <code>x-</code>.
        - `Value` string — Value of the parameter.
    - `ConfigurationName` string — The parameter name of a configuration for your checkout process. Configurations ensure that checkout pages fit your branding. They are set up in the Cleverbridge platform.
    - `Coupons` string[] — Coupon code for a promotion. The customer will be given a discount on the next renewal or a future renewal, depending on the configuration of the coupon code.
    - `CustomerIsReseller` boolean — Whether the transaction is saved as a 'reseller order'. This can affect various calculations, including taxes and commissions. If the transaction fails, you get a checkout page with <code>&amp;scope=checkoutres</code>.
    - `CustomerReferenceId` string — Your unique ID for the customer. This value is submitted by you when the customer initially purchases a product and is stored by Cleverbridge. Corresponds to the <b>Internal customer ID</b> in the Cleverbridge platform. It can be used to identify the customer and auto-process the order. If the order contains a subscription product, a new subscription is created. For more information, see [Customer Data](https://docs.cleverbridge.com/public/all/using-the-platform/list-of-checkout-process-parameters.htm#Customer_Data?utm_source=developer-docs&amp;utm_medium=api-reference).
    - `DefaultCountryId` string, required — Two-character ID of country, see [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
    - `DefaultCurrencyId` string — Currency code in capital letters, see [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
    - `DefaultLanguageId` string, required — Two-character ID of the language, see [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1).
    - `DeliveryContact` CleverbridgeBackEndRestApiContactClassesContact — The contact.
      - `City` string — Contact's city.
      - `Company` string — Name of the company (if applicable).
      - `CompanyKatakana` string — Name of the company in Katakana (if applicable).
      - `CompanyRomanized` string — Romanized name of the company (if applicable).
      - `CompanyTypeId` 'COM' | 'GOV' | 'MIS' | 'NPR' | 'UNI' — ID of the company type. Possible values are Company = <code>COM</code>, Governmental = <code>GOV</code>, Miscellaneous = <code>MIS</code>, Non-profit = <code>NPR</code> and School/University = <code>UNI</code>.
      - `CountryId` string, required — Two-character ID of the contact's country. Submit with capital letters, for example <code>US</code>. See [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      - `EMail` string — Contact's email address. Note: Cleverbridge has no pattern checking and does not validate email addresses.
      - `Fax` string — Contact's fax number.
      - `Firstname` string — Contact's first name.
      - `FirstnameKatakana` string — Contact's first name in Katakana.
      - `FirstnameRomanized` string — Contact's romanized first name.
      - `LanguageId` string, required — Two-character ID of the contact's language, see [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1). You must submit this with lower-case letters, for example <code>en</code>.
      - `Lastname` string — Contact's last name.
      - `LastnameKatakana` string — Contact's last name in Katakana.
      - `LastnameRomanized` string — Contact's romanized last name.
      - `Phone1` string — Contact's phone number.
      - `Phone2` string — Contact's additional phone number.
      - `PostalCode` string — Contact's postal code.
      - `SalutationId` 'MR_' | 'MS_' | 'MRS.' | 'MIS' — Contact's salutation. Possible values are Mr. = <code>MR_</code>, Ms. = <code>MS_</code>, Mrs. = <code>MRS</code>, Miss = <code>MIS</code>.
      - `StateId` string — Five- or six-character ID of the customer's country and state based on [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). It is required for Australia, Brazil, Canada, India, Ireland, Japan, the UAE, and the USA. For syntax, see [GraphQL StateEnum](https://docs.cleverbridge.com/api-documentation/graphql-api/doc/schema/stateenum.doc.html).
      - `Street1` string — Contact's street address.
      - `Street2` string — Contact's additional street information.
      - `Title` string — Contact's title.
      - `Url` string — Contact's website URL.
      - `VatId` string — Taxation number of the contact's company. It must be up-to-date, accurate, and correspond with the <code>CountryId</code>.
    - `ExtraParameters` CleverbridgeBackEndRestApiShoppingCartClassesExtraParameter[] — List of x-parameters for adding additional information to the purchase. Submit as key-value pairs. All keys must begin with <code>x-</code>. For more information, see [Process Cart &gt; Important Parameters](https://dev.cleverbridge.com/docs/process-cart#important-parameters).
      - `Key` string — Name of the parameter. Key must begin with <code>x-</code>.
      - `Value` string — Value of the parameter.
    - `LicenseeContact` CleverbridgeBackEndRestApiContactClassesContact — The contact.
      - `City` string — Contact's city.
      - `Company` string — Name of the company (if applicable).
      - `CompanyKatakana` string — Name of the company in Katakana (if applicable).
      - `CompanyRomanized` string — Romanized name of the company (if applicable).
      - `CompanyTypeId` 'COM' | 'GOV' | 'MIS' | 'NPR' | 'UNI' — ID of the company type. Possible values are Company = <code>COM</code>, Governmental = <code>GOV</code>, Miscellaneous = <code>MIS</code>, Non-profit = <code>NPR</code> and School/University = <code>UNI</code>.
      - `CountryId` string, required — Two-character ID of the contact's country. Submit with capital letters, for example <code>US</code>. See [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      - `EMail` string — Contact's email address. Note: Cleverbridge has no pattern checking and does not validate email addresses.
      - `Fax` string — Contact's fax number.
      - `Firstname` string — Contact's first name.
      - `FirstnameKatakana` string — Contact's first name in Katakana.
      - `FirstnameRomanized` string — Contact's romanized first name.
      - `LanguageId` string, required — Two-character ID of the contact's language, see [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1). You must submit this with lower-case letters, for example <code>en</code>.
      - `Lastname` string — Contact's last name.
      - `LastnameKatakana` string — Contact's last name in Katakana.
      - `LastnameRomanized` string — Contact's romanized last name.
      - `Phone1` string — Contact's phone number.
      - `Phone2` string — Contact's additional phone number.
      - `PostalCode` string — Contact's postal code.
      - `SalutationId` 'MR_' | 'MS_' | 'MRS.' | 'MIS' — Contact's salutation. Possible values are Mr. = <code>MR_</code>, Ms. = <code>MS_</code>, Mrs. = <code>MRS</code>, Miss = <code>MIS</code>.
      - `StateId` string — Five- or six-character ID of the customer's country and state based on [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). It is required for Australia, Brazil, Canada, India, Ireland, Japan, the UAE, and the USA. For syntax, see [GraphQL StateEnum](https://docs.cleverbridge.com/api-documentation/graphql-api/doc/schema/stateenum.doc.html).
      - `Street1` string — Contact's street address.
      - `Street2` string — Contact's additional street information.
      - `Title` string — Contact's title.
      - `Url` string — Contact's website URL.
      - `VatId` string — Taxation number of the contact's company. It must be up-to-date, accurate, and correspond with the <code>CountryId</code>.
    - `LogonPurchaseId` integer — Former purchase ID of the customer. It can be used to identify the customer and auto-process the order. If the order contains a subscription product, a new subscription is created.
    - `Pricelistrules` string[] — Price configurations to be applied.
    - `Recommendationsets` string[] — ID of the 'recommendation set' to which the product belongs. Corresponds to the <b>Recommendation ID</b> in the Cleverbridge platform. Used for reporting purposes only.
    - `TrackingParameters` string[] — Parameter names of third-party tracking to be triggered. Third-party tracking is set up in the Cleverbridge platform.
    - `UseInternalContacts` boolean, required — If the value is <code>true</code>, the contact information in the platform is used and any contact information in the request is ignored, unless the field is empty in the platform. If the value is <code>false</code>, the contact information in the platform is overwritten with the contact information in the request.
  - `ExtraParameterMode` 'Default' | 'PurchaseOnly' | 'SubscriptionOnly' — If the order contains a subscription product, you can control how the x-parameters defined in <code>Cart.ExtraParameters</code> are used. If set to <code>PurchaseOnly</code>, the x-parameters are only added to the initial purchase of the subscription. If set to <code>SubscriptionOnly</code>, the x-parameters are only added to subsequent billing events. If set to <code>Default</code>, the x-parameters are added to both the initial purchase of the subscription and subsequent billing events. For a JSON request, the data type is integer. Use the following integers: <br />0 - Default<br />1 - PurchaseOnly<br />2 - SubscriptionOnly<br />For more information, see [Process Cart &gt; Important Parameters](https://dev.cleverbridge.com/docs/process-cart#important-parameters).
  - `FraudProtectionMode` 'Disabled' | 'Enabled' — Enable or disable fraud protection. Fraud protection ensures that suspicious orders are inspected by the Cleverbridge anti-fraud team. Warning: Only deactivate fraud protection if it is important that none of the orders are delayed due to inspection. For a JSON request, the data type is integer. Use the following integers: <br />0 - Disabled<br />1 - Enabled
  - `ProcessCartMode` 'Interactive' | 'NonInteractive' — How the order is processed. With <code>interactive</code> you can interact directly with the customer if any information is outdated or invalid. This method returns a session URL. For a JSON request, the data type is integer. Use the following integers: <br />0 - interactive<br />1 - noninteractive<br />For more information, see [Process Cart &gt; Important Parameters](https://dev.cleverbridge.com/docs/process-cart#important-parameters).
  - `Subscription` CleverbridgeBackEndRestApiShoppingCartClassesSubscription — Use only if the order contains a subscription product and if you handle subscriptions yourself. Assigns the purchase to an existing subscription. The SubscriptionId can be used to identify the customer and auto-process the order.
    - `SubscriptionId` string — Unique ID of the subscription, with or without an initial 'S'.

## Response `200`

OK

- CleverbridgeBackEndRestApiShoppingCartClassesProcessCartResponse
  - `ContinueUrl` string — URL of web page with transaction details or payment instructions.
  - `Error` CleverbridgeBackEndRestApiCommonClassesErrorType — Error information.
    - `Code` string — Error code.
    - `Message` string — Error message.
  - `IsPaymentRetryScheduled` boolean — Indicates whether a payment retry has been scheduled for a subscription because of a failed credit card payment. If you use this field to manage your own subscriptions, see [Process Cart &gt; Important Parameters](https://docs.cleverbridge.com/public/all/integrating-your-system/cart-api.htm#Important_Parameters) for important information about our retry logic. For general information about our retry logic, see [Using IsPaymentRetryScheduled for Subscription Management](https://dev.cleverbridge.com/docs/process-cart#using-ispaymentretryscheduled-for-subscription-management).
  - `PaymentResult` CleverbridgeBackEndRestApiShoppingCartClassesPaymentResult — Information about the result of the payment process.
    - `Code` string — ID for the payment result. For more information, see [Payment Result](https://dev.cleverbridge.com/reference/payment-result).
    - `Message` string — Description of the payment result.
  - `ProcessResult` 'Paid' | 'WaitingForOfflinePayment' | 'TestOrder' | 'Pending' | 'Failed' | 'CustomerActionNeeded' | 'ContactMissing' | 'SubscriptionNotFound' — The result. For a JSON response, the data type is integer. Possible values are:<br />0 - Paid<br />1 - WaitingForOfflinePayment<br />2 - TestOrder<br />3 - Pending<br />4 - Failed<br />5 - CustomerActionNeeded<br />6 - ContactMissing<br />7 - SubscriptionNotFound
  - `PurchaseId` integer — Unique ID of the purchase that was created.
  - `ResultMessage` string — Optional result or error message.

## Other responses

- `400` — Bad Request
- `500` — Internal Server Error

---

[API](https://skmtc.net/cleverbridge/apis/backend-rest-apis.md) · [All operations](https://skmtc.net/cleverbridge/apis/backend-rest-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cleverbridge/backend-rest-apis/revisions/b7007b62f4c0/schema)
