Update cart

The Update Cart PUT request will replace the current cart of the session. To update the Cart while the Checkout is rendered on the screen, a call to the Checkout Client API's suspend() function shall be performed before calling the Checkout Backend API.

Suspend and resume flow

/*
javascript client side flow to update Cart
*/
// Suspend the Checkout, showing a spinner...
window.collector.checkout.api.suspend();
// ... then call the backend API to set the new Cart
yourSetCartRequestFunction();
// ... and finally resume the Checkout after the backend call is completed to update the Checkout
window.collector.checkout.api.resume();

Once in suspend mode, the Checkout cart can be updated by sending in a new cart to the Checkout API from your backend as the following code shows:

Update cart request

/*
PUT /merchants/123/checkouts/1eec44b5-66d3-4058-a31f-3444229fb727/cart HTTP/1.1
Host: checkout-api-uat.collector.se
Content-Type: application/json
Authorization: SharedKey bXlVc2VybmFtZTpmN2E1ODA4MGQzZTk0M2VmNWYyMTZlMDE...
*/
{
"items": [
{
"id": "2",
"description": "Another product",
"unitPrice": 123.45,
"quantity": 1,
"vat": 20,
"requiresElectronicId": true,
"sku": "a unique alphanumeric code for article identification"
}
]
}

Once the backend request has completed, a call to the Checkout Client API's resume() function shall be made to update the state of the Checkout session.

// resume on the client after the backend has updated the cart
window.collector.checkout.api.resume();
Please note

Please note that at least one article have to be present in the cart at any given time.

Also note: This operation cannot be performed if the Checkout session has expired.

Request Properties

Request headers

HeaderRequiredExplanation
AuthorizationYesThe authorization header is generated with the access credentials (username and shared access key) received from Collector Merchant Services. Instructions on how to generate the authorization header value can be found under the authorization section.

Request Body properties

PropertyRequiredExplanation
idYesThe article id or equivalent. Max 50 characters. The combination of id and description (property below) must be unique within the Checkout session including the fees in the cart. Values are trimmed from leading and trailing white-spaces. Shown on the invoice or receipt.
descriptionYesDescriptions longer than 50 characters will be truncated. Description and id (property above) must be unique within the Checkout session including the fees in the cart. Values are trimmed from leading and trailing white-spaces. Shown on the invoice or receipt.
unitPriceYesThe unit price of the article including VAT. Both positive and negative values allowed. Max 2 decimals, i.e. 100.00
quantityYesAllowed values are 1 to 99999999.
vatYesThe VAT of the article in percent. Allowed values are 0 to 100. Max 2 decimals, i.e. 25.00
requiresElectronicIdNoWhen set to true it indicates that a product needs strong identification and the customer will need to strongly identify themselves at the point of purchase using Mobilt BankID. An example would be selling tickets that are delivered electronically. At the moment it is only applicable to B2C on the Swedish market.
skuNoA stock Keeping Unit is a unique alphanumeric code that is used to identify product types and variations. Maximum allowed characters are 1024.
Please note

The combination of id and description is the unique identifier of an article. Multiple articles with the same unique combination will be merged (quantities are summed) as long as all other properties (except quantity) are equal. Note that the uniqueness also spans to fees.

Important error responses

Error codeError ReasonCause
400Duplicate_ArticlesCan't add article/fees since multiple articles/fees with same id and description already exist.
400Validation_ErrorThe request contains properties with invalid values. Details are provided in the response body.
423Resource_LockedAnother modifying request is currently being executed for the Checkout session. Retry by sending the request again.
900Purchase_Commitment_FoundThe customer has clicked the Complete Purchase button and the Checkout is therefore locked for modifications.
900Purchase_CompletedPurchase is already complete.