orderForm fields reference
Reference of all orderForm fields returned by the Checkout API, organized by section, with descriptions, types, and examples.
The orderForm is the main object processed by VTEX Checkout and one of the most important data structures in every VTEX architecture's store. It represents a shopping cart and stores all the contextual information needed to turn that cart into an order: the items, the customer's profile, delivery and pickup options, payment options, promotions, and custom information.
The Checkout API is the main interface for reading and changing the orderForm. Most of its endpoints return the complete orderForm in the response body.
This guide describes every field of the orderForm, grouped by section. Each section includes a description of its purpose, a JSON example, and a table with the type, description, and an example value of each field.
Conventions used in this guide
| Convention | Description | Example |
|---|---|---|
| Monetary values | Fields that represent monetary values are integers in cents, without a decimal separator. | 10390 represents R$ 103.90 in a Brazilian store, and 2499 represents $24.99 in a US store. |
| Nested fields | Field names use dot notation relative to the section. [] indicates that the field belongs to each object in an array. | logisticsInfo[].slas[].price refers to the price field of each SLA in each logisticsInfo array item. |
| Nullable fields | When a field can return null, the type column indicates this. Customer-related fields, such as addresses and profile data, are often null until the customer identifies themselves. | String or null |
| Masked data | When the customer isn't authenticated, personal data, such as names, documents, phone numbers, and addresses, is partially masked with asterisks to protect the shopper's privacy. | "Cla** ***t" |
orderForm structure
The orderForm is composed of root fields, which describe the cart as a whole, and sections, which are objects or arrays that group related information.
_37{_37 "orderFormId": "9ceee0fde6db489fbc682a0e2ab13a86",_37 "salesChannel": "1",_37 "loggedIn": false,_37 "isCheckedIn": false,_37 "storeId": null,_37 "allowManualPrice": false,_37 "canEditData": true,_37 "userProfileId": null,_37 "profileProvider": "Vtex",_37 "availableAccounts": [],_37 "availableAddresses": [],_37 "userType": null,_37 "ignoreProfileData": false,_37 "value": 16500,_37 "messages": [],_37 "items": [],_37 "selectableGifts": [],_37 "totalizers": [],_37 "shippingData": {},_37 "clientProfileData": {},_37 "paymentData": {},_37 "marketingData": {},_37 "sellers": [],_37 "clientPreferencesData": {},_37 "commercialConditionData": null,_37 "storePreferencesData": {},_37 "giftRegistryData": null,_37 "openTextField": null,_37 "invoiceData": null,_37 "customData": null,_37 "itemMetadata": {},_37 "hooksData": null,_37 "ratesAndBenefitsData": {},_37 "subscriptionData": null,_37 "itemsOrdination": null_37}
The sections are organized in this guide by subject:
Root fields
Root fields are located directly in the orderForm object and describe the cart as a whole: its identification, the sales channel, the shopper's session state, and the total order value.
| Field | Type | Description | Example |
|---|---|---|---|
orderFormId | String | ID of the orderForm corresponding to a specific cart. Use this ID in the path of the Checkout API endpoints to read or change the cart. | "9ceee0fde6db489fbc682a0e2ab13a86" |
salesChannel | String | ID of the sales channel (trade policy) associated with the cart, as configured in the store. It defines the prices, promotions, and catalog available to the shopper. | "1" |
loggedIn | Boolean | Indicates whether the user is logged into the store. | false |
isCheckedIn | Boolean | Indicates whether the cart is checked in to a physical store, which is used in in-store sales scenarios. | false |
storeId | String or null | ID of the physical store where the cart is checked in, when isCheckedIn is true. | "1" |
allowManualPrice | Boolean | Indicates whether the user has permission to change item prices manually in this cart. | false |
canEditData | Boolean | Indicates whether the customer's data in the cart can be edited. | true |
userProfileId | String or null | Unique ID associated with the customer profile. | "fb542e51-5488-4c34-8d17-ed8fcf597a94" |
profileProvider | String | Provider of the customer profile. | "VTEX" |
availableAccounts | Array of strings | Available accounts. | [] |
availableAddresses | Array of objects | Addresses available for the customer. Each object has the same fields as the address object. | See shippingData. |
userType | String or null | User type. Example: "callCenterOperator" when the cart is being handled by a call center operator on behalf of a customer. | "callCenterOperator" |
ignoreProfileData | Boolean | Indicates whether the customer profile data should be ignored in this cart. | false |
value | Integer | Total value of the order in cents. For example, $24.99 is represented as 2499. | 16500 |
messages | Array of objects | Messages generated by the server while processing the request. See messages. | [] |
items | Array of objects | Information on each item in the cart. See items. | [] |
selectableGifts | Array | Gifts that the customer can select. See selectableGifts. | [] |
totalizers | Array of objects | Totals of the order by category. See totalizers. | [] |
shippingData | Object or null | Shipping information. See shippingData. | {} |
clientProfileData | Object or null | Customer profile information. See clientProfileData. | {} |
paymentData | Object | Payment information. See paymentData. | {} |
marketingData | Object or null | Promotion and campaign tracking data. See marketingData. | {} |
sellers | Array of objects | Sellers of the items in the cart. See sellers. | [] |
clientPreferencesData | Object | Customer preferences. See clientPreferencesData. | {} |
commercialConditionData | Object or null | Commercial condition information. See commercialConditionData. | null |
storePreferencesData | Object | Store configuration data. See storePreferencesData. | {} |
giftRegistryData | Object or null | Gift registry (gift list) information. See giftRegistryData. | null |
openTextField | Object or null | Free text information about the order. See openTextField. | null |
invoiceData | Object or null | Invoice data, including the billing address. See invoiceData. | null |
customData | Object or null | Custom information added by the store. See customData. | null |
itemMetadata | Object | Metadata of the items in the cart. See itemMetadata. | {} |
hooksData | Object or null | Hooks information. See hooksData. | null |
ratesAndBenefitsData | Object | Promotions and taxes that apply to the order. See ratesAndBenefitsData. | {} |
subscriptionData | Object or null | Subscription information. See subscriptionData. | null |
itemsOrdination | Object or null | Sorting criteria of the items in the cart. See itemsOrdination. | null |
Cart and items
The sections in this group describe what is in the cart: the items and their prices, the sellers that fulfill them, the gifts available, and the order totals.
items
Array containing one object for each item (SKU) in the cart, with identification, catalog, price, quantity, and seller information. Items are identified in other sections, such as shippingData.logisticsInfo, by their position in this array (itemIndex), starting at 0.
If you use integrations that consume price data, such as checkout or order integrations, the
sellingPricefield may be subject to rounding discrepancies. We recommend retrieving price data from thepriceDefinitionobject instead.
Example:
_62"items": [_62 {_62 "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C",_62 "id": "1",_62 "productId": "1",_62 "productRefId": "1",_62 "refId": "0001",_62 "ean": "123456789",_62 "name": "Royal Canin Feline Urinary 500g",_62 "skuName": "Royal Canin Feline Urinary 500g",_62 "modalType": null,_62 "parentItemIndex": null,_62 "parentAssemblyBinding": null,_62 "priceValidUntil": "2026-11-02T14:59:00Z",_62 "tax": 0,_62 "taxCode": "54WC8ZN6K8",_62 "price": 15000,_62 "listPrice": 30000,_62 "manualPrice": null,_62 "manualPriceAppliedBy": null,_62 "sellingPrice": 15000,_62 "rewardValue": 0,_62 "isGift": false,_62 "additionalInfo": {_62 "dimension": null,_62 "brandName": "Royal Canin",_62 "brandId": "2000000",_62 "offeringInfo": null,_62 "offeringType": null,_62 "offeringTypeId": null_62 },_62 "preSaleDate": null,_62 "productCategoryIds": "/1/10/",_62 "productCategories": {_62 "1": "Food",_62 "10": "Dry food"_62 },_62 "quantity": 1,_62 "seller": "1",_62 "sellerChain": ["1"],_62 "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155450-55-55/Royal-Canin-Feline-Urinary.jpg?v=637139444438700000",_62 "detailUrl": "/royal-canin-feline-urinary/p",_62 "bundleItems": [],_62 "attachments": [],_62 "offerings": [],_62 "priceTags": [],_62 "availability": "available",_62 "measurementUnit": "un",_62 "unitMultiplier": 1.0,_62 "manufacturerCode": null,_62 "priceDefinition": {_62 "calculatedSellingPrice": 15000,_62 "total": 15000,_62 "sellingPrices": [_62 {_62 "value": 15000,_62 "quantity": 1_62 }_62 ]_62 }_62 }_62]
| Field | Type | Description | Example |
|---|---|---|---|
uniqueId | String | Unique identifier of the item in the cart. Two lines of the same SKU in the cart, for example, with different attachments, have different uniqueId values. | "E0F2B7AF5CD74D668F1E27537206912C" |
id | String | SKU ID. | "1" |
productId | String | ID of the product to which the SKU belongs. | "1" |
productRefId | String | Product reference ID. | "1" |
refId | String or null | SKU reference ID. | "0001" |
ean | String or null | European Article Number (EAN), the SKU barcode, as registered in the SKU registration. | "123456789" |
name | String | Product name. | "Royal Canin Feline Urinary 500g" |
skuName | String | SKU name. | "Royal Canin Feline Urinary 500g" |
modalType | String or null | Modal type of the SKU, used to define specific carriers for products that require special transportation, such as furniture or chemicals. | "FURNITURE" |
parentItemIndex | Integer or null | Index of the parent item in the items array, when this item is part of an assembly (for example, an engraving added to a product). | 0 |
parentAssemblyBinding | String or null | ID of the assembly option that binds this item to its parent item. | "vtex.subscription.weekly" |
priceValidUntil | String | Date and time until which the item price is valid, in UTC ISO 8601 format. | "2026-11-02T14:59:00Z" |
tax | Integer | Tax value in cents. | 0 |
taxCode | String | Unique identifier code assigned to a tax within the VTEX Admin. | "54WC8ZN6K8" |
price | Integer | Unit price of the SKU in cents, before promotions are applied. | 15000 |
listPrice | Integer | Unit list price ("from" price) in cents. | 30000 |
manualPrice | Integer or null | Unit price manually set for the item in cents, when it applies. See Change price. | 10000 |
manualPriceAppliedBy | String or null | ID of the user who applied the manual price, when it applies. | "fb542e51-5863-4c34-8d17-ed8fcf597a09" |
sellingPrice | Integer | Unit selling price in cents, with promotions applied. This field may be subject to rounding discrepancies. We recommend using priceDefinition instead. | 15000 |
rewardValue | Integer | Reward value in cents. | 0 |
isGift | Boolean | Indicates whether the item is a gift. | false |
additionalInfo | Object | Additional information about the item. | See the following rows. |
additionalInfo.dimension | String or null | Dimension. | null |
additionalInfo.brandName | String | Brand name. | "Royal Canin" |
additionalInfo.brandId | String | Brand ID. | "2000000" |
additionalInfo.offeringInfo | String or null | Offering information. | null |
additionalInfo.offeringType | String or null | Offering type. | null |
additionalInfo.offeringTypeId | String or null | Offering type ID. | null |
preSaleDate | String or null | Presale date, when the item is sold in presale. | "2026-12-01T00:00:00Z" |
productCategoryIds | String | Path of category IDs of the product, from the department to the deepest category, separated by /. | "/1/10/" |
productCategories | Object | Object in which each key is a category ID from productCategoryIds. | {"1": "Food", "10": "Dry food"} |
productCategories.{ID} | String | Name of the category corresponding to the ID in the key. | "Dry food" |
quantity | Integer | Quantity of units of the item in the cart. | 1 |
seller | String | ID of the seller that sells the item. | "1" |
sellerChain | Array of strings | Sellers involved in the chain. The list should contain only one seller, unless it is a Multilevel Omnichannel Inventory order. | ["1"] |
imageUrl | String | URL of the SKU image. | "http://mystore.vteximg.com.br/arquivos/ids/155450-55-55/Royal-Canin-Feline-Urinary.jpg" |
detailUrl | String | Relative URL of the product page. | "/royal-canin-feline-urinary/p" |
bundleItems | Array of objects | Services sold along with the SKU, such as a gift wrap. | See the following rows. |
bundleItems[].type | String | Service type. | "Gift wrap" |
bundleItems[].id | Integer | Service ID. | 5 |
bundleItems[].name | String | Service name. | "Gift wrap" |
bundleItems[].price | Integer | Service price in cents. | 500 |
attachments | Array of objects | Attachments added to the item, such as a customization or a subscription. | See the following rows. |
attachments[].name | String | Attachment name. | "vtex.subscription.weekly" |
attachments[].content | Object | Attachment content as key-value pairs. | {"vtex.subscription.key.frequency": "1 week"} |
offerings | Array of objects | Services available for the SKU, which the customer can add to the item, such as a gift wrap or a warranty. | See the following rows. |
offerings[].type | String | Service type. | "Warranty" |
offerings[].id | String | Service type ID. | "5" |
offerings[].name | String | Name of the service type. | "Extended warranty" |
offerings[].allowGiftMessage | Boolean | Indicates whether the service type can be displayed on the gift card. | false |
offerings[].price | Integer | Service type price in cents. | 1500 |
offerings[].attachmentOfferings | Array of objects | Attachments available for the service. | See the following rows. |
offerings[].attachmentOfferings[].name | String | Name of the attachment. | "message" |
offerings[].attachmentOfferings[].required | Boolean | Indicates whether the attachment is required (true) or not (false). | false |
offerings[].attachmentOfferings[].schema | Object | Custom values created into the attachment. | {"text": {"maximumNumberOfCharacters": 100, "domain": []}} |
priceTags | Array of objects | Price tags, each of which modifies the item price, such as discounts or taxes that apply to the item in the context of the order. | See the following rows. |
priceTags[].name | String | Price tag name in the format {type}@{where}-{identifier}#{calculationId}, where:
| "DISCOUNT@MANUALPRICE" |
priceTags[].value | Integer | Price tag value in cents. Negative values represent a promotion (value decrease) and positive values represent a tax (value increase). | -5000 |
priceTags[].rawValue | Number | Raw price tag value with up to five decimals, sourced from the promotion configuration. This value is informational only and is not used in checkout calculations. | -50.0 |
priceTags[].isPercentual | Boolean | Indicates whether value and rawValue represent a percentage to be applied during checkout calculation. The default value is false. | false |
priceTags[].identifier | String or null | Promotion unique identifier. | "1234abc-5678b-1234c" |
availability | String | SKU availability. Possible values are available, withoutStock, and cannotBeDelivered. Only SKUs with the available value can be sold and delivered. | "available" |
measurementUnit | String | Measurement unit of the SKU. | "un" |
unitMultiplier | Number | Unit multiplier of the SKU. The quantity added to the cart is multiplied by this value. For example, a product sold by kilogram with unitMultiplier of 0.3 is sold in 300 g units. | 1.0 |
manufacturerCode | String or null | Manufacturer code of the SKU. | "MC-12345" |
priceDefinition | Object | Price information for all units of the item. See items[].priceDefinition. | See the following rows. |
priceDefinition.calculatedSellingPrice | Integer | Calculated unit selling price of the item in cents. | 15000 |
priceDefinition.total | Integer | Total value for all units of the item in cents. | 15000 |
priceDefinition.sellingPrices | Array of objects | Objects, each containing value and quantity, for the different rounding instances that can be combined to form the correctly rounded total. | See the following rows. |
priceDefinition.sellingPrices[].value | Integer | Value in cents for that specific rounding. | 15000 |
priceDefinition.sellingPrices[].quantity | Integer | Rounding quantity, meaning how many units are rounded to this value. | 1 |
items[].priceDefinition
The priceDefinition object provides the correctly rounded prices of an item. When the unit selling price can't be divided evenly among all units, for example because of a percentage discount or a unit multiplier, sellingPrices lists each rounding instance so that the sum of value × quantity matches total.
In the following example, an item sold by weight (unitMultiplier of 0.3 kg) has a unit price of 199 per kg and a quantity of 3. The total of 179 is reached by charging 60 for two units and 59 for one unit:
_26{_26 "items": [_26 {_26 "id": "1001669",_26 "price": 199,_26 "quantity": 3,_26 "unitMultiplier": 0.3,_26 "measurementUnit": "kg",_26 "sellingPrice": 59,_26 "priceDefinition": {_26 "calculatedSellingPrice": 59,_26 "total": 179,_26 "sellingPrices": [_26 {_26 "value": 60,_26 "quantity": 2_26 },_26 {_26 "value": 59,_26 "quantity": 1_26 }_26 ]_26 }_26 }_26 ]_26}
itemMetadata
Object containing catalog metadata of each item in the cart, such as name, image, and product page URL. It is used to display items consistently, including items that aren't part of items, such as gifts and assembly options.
Example:
_15"itemMetadata": {_15 "items": [_15 {_15 "id": "1",_15 "seller": "1",_15 "name": "Royal Canin Feline Urinary 500g",_15 "skuName": "Royal Canin Feline Urinary 500g",_15 "productId": "1",_15 "refId": "0001",_15 "ean": "123456789",_15 "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155450-55-55/Royal-Canin-Feline-Urinary.jpg?v=637139444438700000",_15 "detailUrl": "/royal-canin-feline-urinary/p"_15 }_15 ]_15}
| Field | Type | Description | Example |
|---|---|---|---|
items | Array of objects | Metadata of each item in the order. | See the following rows. |
items[].id | String | SKU ID. | "1" |
items[].seller | String | Seller ID. | "1" |
items[].name | String | Product name. | "Royal Canin Feline Urinary 500g" |
items[].skuName | String | SKU name. | "Royal Canin Feline Urinary 500g" |
items[].productId | String | Product ID. | "1" |
items[].refId | String or null | SKU reference ID. | "0001" |
items[].ean | String or null | European Article Number (EAN) of the SKU. | "123456789" |
items[].imageUrl | String | URL of the SKU image. | "http://mystore.vteximg.com.br/arquivos/ids/155450-55-55/Royal-Canin-Feline-Urinary.jpg" |
items[].detailUrl | String | Relative URL of the product page. | "/royal-canin-feline-urinary/p" |
itemsOrdination
Object containing the criteria used to sort the items in the items array. Returns null when no sorting is applied.
Example:
_10"itemsOrdination": {_10 "criteria": "NAME",_10 "ascending": true_10}
| Field | Type | Description | Example |
|---|---|---|---|
criteria | String | Criteria adopted to sort the items. Possible values are:
| "NAME" |
ascending | Boolean | Indicates whether the sorting is ascending (true) or descending (false). | true |
selectableGifts
Array containing the gifts that the customer can choose from, based on Buy One Get One promotions that offer a gift. Each object represents a list of gift options.
Example:
_13"selectableGifts": [_13 {_13 "id": "a1b2c3d4-1234-5678-9abc-def012345678",_13 "availableQuantity": 1,_13 "availableGifts": [_13 {_13 "id": "15",_13 "name": "Cat toy",_13 "isSelected": true_13 }_13 ]_13 }_13]
| Field | Type | Description | Example |
|---|---|---|---|
id | String | ID of the selectable gifts list. | "a1b2c3d4-1234-5678-9abc-def012345678" |
availableQuantity | Integer | Number of gifts the customer can select from this list. | 1 |
availableGifts | Array of objects | Items that can be selected as gifts. Each object has the same fields as the items array, in addition to isSelected. | See the following row. |
availableGifts[].isSelected | Boolean | Indicates whether the item was selected as a gift. | true |
sellers
Array containing one object for each seller responsible for items in the cart.
Example:
_10"sellers": [_10 {_10 "id": "1",_10 "name": "mystore",_10 "logo": "https://mystore.vteximg.com.br/arquivos/logo.jpg",_10 "minimumOrderValue": 0_10 }_10]
| Field | Type | Description | Example |
|---|---|---|---|
id | String | Seller ID. | "1" |
name | String | Seller name. | "mystore" |
logo | String or null | URL of the seller logo. | "https://mystore.vteximg.com.br/arquivos/logo.jpg" |
minimumOrderValue | Integer or null | Minimum order value configured for the seller in cents. | 5000 |
totalizers
Array containing one object for each totalizer of the order. Totalizers contain the sum of values for a specific part of the order, such as the total value of the items, discounts, shipping, and taxes.
Example:
_17"totalizers": [_17 {_17 "id": "Items",_17 "name": "Items Total",_17 "value": 15000_17 },_17 {_17 "id": "Discounts",_17 "name": "Discounts Total",_17 "value": -5000_17 },_17 {_17 "id": "Shipping",_17 "name": "Shipping Total",_17 "value": 1500_17 }_17]
| Field | Type | Description | Example |
|---|---|---|---|
id | String | Totalizer ID. Common values are Items, Discounts, Shipping, Tax, and CustomTax. | "Items" |
name | String | Totalizer name, according to the cart locale. | "Items Total" |
value | Integer | Totalizer value in cents. Discounts are represented as negative values. | 15000 |
Customer
The sections in this group describe who is placing the order and their preferences.
clientProfileData
Object containing the profile data of the customer who is placing the order. Returns null until the customer informs their email.
If the customer's identity hasn't been confirmed, some personal data is masked with asterisks to protect the shopper's privacy.
Example:
_17"clientProfileData": {_17 "email": "clark.kent@examplemail.com",_17 "firstName": "Clark",_17 "lastName": "Kent",_17 "documentType": "cpf",_17 "document": "12345678900",_17 "phone": "+5521999999999",_17 "corporateName": null,_17 "tradeName": null,_17 "corporateDocument": null,_17 "stateInscription": null,_17 "corporatePhone": null,_17 "isCorporate": false,_17 "profileCompleteOnLoading": false,_17 "profileErrorOnLoading": false,_17 "customerClass": null_17}
| Field | Type | Description | Example |
|---|---|---|---|
email | String or null | Customer's email address. | "clark.kent@examplemail.com" |
firstName | String or null | Customer's first name. | "Clark" |
lastName | String | Customer's last name. | "Kent" |
documentType | String | Type of the document informed by the customer. | "cpf" |
document | String | Document number informed by the customer. | "12345678900" |
phone | String | Customer's phone number. | "+5521999999999" |
corporateName | String or null | Company name, if the customer is a legal entity. | "Daily Planet Ltd." |
tradeName | String or null | Trade name, if the customer is a legal entity. | "Daily Planet" |
corporateDocument | String or null | Corporate document, if the customer is a legal entity. | "12345678000100" |
stateInscription | String or null | State inscription, if the customer is a legal entity. | "12345678" |
corporatePhone | String or null | Corporate phone number, if the customer is a legal entity. | "+551100988887777" |
isCorporate | Boolean | Indicates whether the customer is a legal entity. | false |
profileCompleteOnLoading | Boolean | Indicates whether the customer profile was complete when it was loaded into the cart. | false |
profileErrorOnLoading | Boolean or null | Indicates whether an error occurred when loading the customer profile into the cart. | false |
customerClass | String or null | Customer class, used to segment customers in promotions and B2B scenarios. | "gold" |
clientPreferencesData
Object containing the preferences of the customer who is placing the order.
Example:
_10"clientPreferencesData": {_10 "locale": "pt-BR",_10 "optinNewsLetter": true_10}
| Field | Type | Description | Example |
|---|---|---|---|
locale | String | Customer's locale. The sendLocale() method from vtex.js changes the value of this field. | "pt-BR" |
optinNewsLetter | Boolean or null | Indicates whether the customer opted to receive newsletters from the store. | true |
giftRegistryData
Object containing information about the gift list associated with the cart, when the customer is buying items from a gift list. Returns null when the cart isn't associated with a gift list.
Example:
_10"giftRegistryData": {_10 "giftRegistryId": "22222",_10 "giftRegistryType": "1",_10 "giftRegistryTypeName": "Wedding",_10 "addressId": "-1617303424547",_10 "description": "Lois and Clark's wedding"_10}
| Field | Type | Description | Example |
|---|---|---|---|
giftRegistryId | String | Gift list ID. | "22222" |
giftRegistryType | String or null | Gift list type ID. | "1" |
giftRegistryTypeName | String or null | Gift list type name. | "Wedding" |
addressId | String or null | ID of the delivery address of the gift list. | "-1617303424547" |
description | String | Gift list description. | "Lois and Clark's wedding" |
Shipping
shippingData
Object containing the shipping information of the order: the delivery address, the addresses available to the customer, and the logistics information of each item, including the available shipping options (SLAs) and the option selected by the customer. Returns null until shipping information is available.
Example:
_103"shippingData": {_103 "address": {_103 "addressType": "residential",_103 "receiverName": "Clark Kent",_103 "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2",_103 "isDisposable": true,_103 "postalCode": "22250040",_103 "city": "Rio de Janeiro",_103 "state": "RJ",_103 "country": "BRA",_103 "street": "Praia de Botafogo",_103 "number": "300",_103 "neighborhood": "Botafogo",_103 "complement": "3rd floor",_103 "reference": null,_103 "geoCoordinates": [-43.18218231201172, -22.94549560546875]_103 },_103 "logisticsInfo": [_103 {_103 "itemIndex": 0,_103 "selectedSla": "Normal",_103 "selectedDeliveryChannel": "delivery",_103 "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2",_103 "slas": [_103 {_103 "id": "Normal",_103 "deliveryChannel": "delivery",_103 "name": "Normal",_103 "deliveryIds": [_103 {_103 "courierId": "1",_103 "warehouseId": "1_1",_103 "dockId": "1",_103 "courierName": "Carrier",_103 "quantity": 1_103 }_103 ],_103 "shippingEstimate": "3bd",_103 "shippingEstimateDate": null,_103 "lockTTL": "10d",_103 "availableDeliveryWindows": [],_103 "deliveryWindow": null,_103 "price": 1500,_103 "listPrice": 1500,_103 "tax": 0,_103 "pickupStoreInfo": {_103 "isPickupStore": false,_103 "friendlyName": null,_103 "address": null,_103 "additionalInfo": null,_103 "dockId": null_103 },_103 "pickupPointId": null,_103 "pickupDistance": 0,_103 "polygonName": null,_103 "transitTime": "3bd"_103 }_103 ],_103 "shipsTo": ["BRA"],_103 "itemId": "1",_103 "deliveryChannels": [_103 { "id": "delivery" },_103 { "id": "pickup-in-point" }_103 ]_103 }_103 ],_103 "selectedAddresses": [_103 {_103 "addressType": "residential",_103 "receiverName": "Clark Kent",_103 "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2",_103 "isDisposable": true,_103 "postalCode": "22250040",_103 "city": "Rio de Janeiro",_103 "state": "RJ",_103 "country": "BRA",_103 "street": "Praia de Botafogo",_103 "number": "300",_103 "neighborhood": "Botafogo",_103 "complement": "3rd floor",_103 "reference": null,_103 "geoCoordinates": [-43.18218231201172, -22.94549560546875]_103 }_103 ],_103 "availableAddresses": [_103 {_103 "addressType": "residential",_103 "receiverName": "Clark Kent",_103 "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2",_103 "isDisposable": true,_103 "postalCode": "22250040",_103 "city": "Rio de Janeiro",_103 "state": "RJ",_103 "country": "BRA",_103 "street": "Praia de Botafogo",_103 "number": "300",_103 "neighborhood": "Botafogo",_103 "complement": "3rd floor",_103 "reference": null,_103 "geoCoordinates": [-43.18218231201172, -22.94549560546875]_103 }_103 ]_103}
| Field | Type | Description | Example |
|---|---|---|---|
address | Object or null | Main delivery address of the order. See Address object. | See the example above. |
logisticsInfo | Array of objects | Logistics information. Each object corresponds to an object in the items array, based on the respective itemIndex. | See the following rows. |
logisticsInfo[].itemIndex | Integer | Index of the corresponding item in the items array, starting at 0. | 0 |
logisticsInfo[].selectedSla | String or null | ID of the SLA (shipping option) selected by the customer. If the store uses the Delivery Options feature, this field returns the delivery option ID selected for this SLA. | "Normal" |
logisticsInfo[].selectedDeliveryChannel | String or null | Delivery channel selected by the customer. Possible values are delivery and pickup-in-point. | "delivery" |
logisticsInfo[].addressId | String or null | ID of the address to which the item will be delivered. | "666c2e830bd9474ab6f6cc53fb6dd2d2" |
logisticsInfo[].slas | Array of objects | SLAs (shipping options) available for the item. | See the following rows. |
logisticsInfo[].slas[].id | String | SLA ID. If the store uses the Delivery Options feature, this field returns the delivery option ID, as in 1223d5b4-52a4-442f-ab23-01345b60be48. | "Normal" |
logisticsInfo[].slas[].deliveryChannel | String | Delivery channel of the SLA. Possible values are delivery and pickup-in-point. | "delivery" |
logisticsInfo[].slas[].name | String | SLA name. If the store uses the Delivery Options feature, this field displays the delivery option name, as in Delivery | BRA | Up to 30 hours. | "Normal" |
logisticsInfo[].slas[].deliveryIds | Array of objects | Information on each delivery that composes the SLA. | See the following rows. |
logisticsInfo[].slas[].deliveryIds[].courierId | String | Carrier ID. | "1" |
logisticsInfo[].slas[].deliveryIds[].warehouseId | String | Warehouse ID. | "1_1" |
logisticsInfo[].slas[].deliveryIds[].dockId | String | Loading dock ID. | "1" |
logisticsInfo[].slas[].deliveryIds[].courierName | String | Carrier name. | "Carrier" |
logisticsInfo[].slas[].deliveryIds[].quantity | Integer | Quantity of units of the item delivered by this carrier. | 1 |
logisticsInfo[].slas[].attachmentOfferings | Array of objects or null | Attachments available for the SLA. | See the following rows. |
logisticsInfo[].slas[].attachmentOfferings[].name | String or null | Name of the attachment. | "delivery-instructions" |
logisticsInfo[].slas[].attachmentOfferings[].required | Boolean or null | Indicates whether the attachment is required (true) or not (false). | false |
logisticsInfo[].slas[].attachmentOfferings[].schema | Object or null | Custom values created into the attachment. | {"note": {"maximumNumberOfCharacters": 100, "domain": []}} |
logisticsInfo[].slas[].shippingEstimate | String | Total shipping estimate time, represented by a number followed by a time unit. The unit can be bd (business days), d (days), h (hours), or m (minutes). For example, three business days is represented as 3bd. | "3bd" |
logisticsInfo[].slas[].shippingEstimateDate | String or null | Estimated shipping date. Contains a value only when the query parameter individualShippingEstimates=true is used. Otherwise, it's null. | "2026-10-07T17:35:00-03:00" |
logisticsInfo[].slas[].useIndividualShippingEstimates | Boolean | Indicates whether the product's individual estimated shipping date is displayed in the shippingEstimate field. | false |
logisticsInfo[].slas[].lockTTL | String or null | Time during which the item inventory is reserved after the order is placed, using the same format as shippingEstimate. | "10d" |
logisticsInfo[].slas[].availableDeliveryWindows | Array of objects | Scheduled delivery windows available for the SLA. | See the following rows. |
logisticsInfo[].slas[].availableDeliveryWindows[].startDateUtc | String | Delivery window start date and time in UTC. | "2026-10-05T09:00:00+00:00" |
logisticsInfo[].slas[].availableDeliveryWindows[].endDateUtc | String | Delivery window end date and time in UTC. | "2026-10-05T12:00:00+00:00" |
logisticsInfo[].slas[].availableDeliveryWindows[].price | Integer | Delivery window price in cents. | 1000 |
logisticsInfo[].slas[].availableDeliveryWindows[].lisPrice | Integer | Delivery window list price in cents. The field name is lisPrice in the API response. | 1000 |
logisticsInfo[].slas[].availableDeliveryWindows[].tax | Integer | Delivery window tax in cents. | 0 |
logisticsInfo[].slas[].deliveryWindow | Object or null | Delivery window selected by the customer, in case of scheduled delivery. It has the same fields as the objects in availableDeliveryWindows. | {"startDateUtc": "2026-10-05T09:00:00+00:00", "endDateUtc": "2026-10-05T12:00:00+00:00", "price": 1000, "lisPrice": 1000, "tax": 0} |
logisticsInfo[].slas[].price | Integer | SLA price in cents. | 1500 |
logisticsInfo[].slas[].listPrice | Integer | SLA list price in cents. | 1500 |
logisticsInfo[].slas[].tax | Integer | SLA tax in cents. | 0 |
logisticsInfo[].slas[].pickupStoreInfo | Object | Information on the pickup point, when the SLA is a pickup option. | See the following rows. |
logisticsInfo[].slas[].pickupStoreInfo.isPickupStore | Boolean | Indicates whether the SLA is a pickup point. | true |
logisticsInfo[].slas[].pickupStoreInfo.friendlyName | String or null | Name of the pickup point displayed to customers. | "VTEX SP" |
logisticsInfo[].slas[].pickupStoreInfo.address | Object or null | Pickup point address. See Address object. | {"addressType": "pickup", "postalCode": "04538-132", "city": "São Paulo", ...} |
logisticsInfo[].slas[].pickupStoreInfo.additionalInfo | String or null | Additional information about the pickup point, such as opening hours. | "Open from 9 a.m. to 6 p.m." |
logisticsInfo[].slas[].pickupStoreInfo.dockId | String or null | ID of the loading dock associated with the pickup point. | "1" |
logisticsInfo[].slas[].pickupPointId | String or null | Pickup point ID. | "1_VTEXSP" |
logisticsInfo[].slas[].pickupDistance | Number | Distance between the customer's address and the pickup point, in kilometers. | 2.5 |
logisticsInfo[].slas[].polygonName | String or null | Name of the geolocation polygon that matched the delivery address. | "rio-south-zone" |
logisticsInfo[].slas[].transitTime | String | Transit time of the carrier, using the same format as shippingEstimate. | "3bd" |
logisticsInfo[].shipsTo | Array of strings | Three-letter ISO codes of the countries to which the item can be shipped. | ["BRA"] |
logisticsInfo[].itemId | String | SKU ID of the item. | "1" |
logisticsInfo[].deliveryChannels | Array of objects | Delivery channels available for the item. | See the following row. |
logisticsInfo[].deliveryChannels[].id | String | Delivery channel ID. Possible values are delivery and pickup-in-point. | "pickup-in-point" |
selectedAddresses | Array of objects | Addresses selected for the order. See Address object. | See the example above. |
availableAddresses | Array of objects | Addresses available for the order. See Address object. | See the example above. |
Address object
The address object is used in shippingData.address, shippingData.selectedAddresses, shippingData.availableAddresses, shippingData.logisticsInfo[].slas[].pickupStoreInfo.address, and in the root availableAddresses field.
| Field | Type | Description | Example |
|---|---|---|---|
addressType | String | Type of address. Possible values are residential, commercial, pickup, inStore, giftRegistry, search, and invoice. | "residential" |
receiverName | String or null | Name of the person who will receive the order. | "Clark Kent" |
addressId | String or null | Address ID. | "666c2e830bd9474ab6f6cc53fb6dd2d2" |
isDisposable | Boolean | Indicates whether the address is disposable. Addresses with isDisposable set to true aren't saved to the shopper's profile when the order is completed, while addresses with isDisposable set to false belong to the shopper's profile. See Disposable addresses. | true |
postalCode | String | Postal code. | "22250040" |
city | String | City. | "Rio de Janeiro" |
state | String | State. | "RJ" |
country | String | Three-letter ISO code of the country. | "BRA" |
street | String | Street name. | "Praia de Botafogo" |
number | String | Number of the building, house, or apartment. | "300" |
neighborhood | String | Neighborhood. | "Botafogo" |
complement | String or null | Complement to the address, when it applies. | "3rd floor" |
reference | String or null | Reference that helps locate the address more precisely for delivery. | "Next to the subway station" |
geoCoordinates | Array of numbers | Geographic coordinates of the address: longitude first, then latitude. | [-43.18218231201172, -22.94549560546875] |
Disposable addresses
The isDisposable behavior depends on the address type:
giftRegistry,pickup,search, andinStore: always disposable, as they don't belong to the shopper navigating the cart.residential: may be disposable. Addresses from a complete shopper profile, or entered by an authenticated shopper with a complete profile, aren't disposable. All other residential addresses are disposable, including those from first-time purchases, since no complete profile exists yet.commercial: corresponds to company addresses used in B2B contexts and follows the same logic as residential addresses.invoice: doesn't have theisDisposableflag. In practice, only authenticated shoppers can add invoice data to the cart, so these addresses are never treated as disposable.
When a residential address is marked as disposable and the profile is complete, authentication is required to complete the order. Additionally, when a disposable residential address is used to complete a purchase, saved cards can't be used.
Payment and invoice
paymentData
Object containing the payment information of the order: the payment methods available, the installment options, the payments selected by the customer, gift cards, and transactions.
For accurate information on installment options and values, we recommend using the Cart installments endpoint instead of the
installmentOptionsfield.
Example:
_103"paymentData": {_103 "updateStatus": "updated",_103 "installmentOptions": [_103 {_103 "paymentSystem": 2,_103 "bin": null,_103 "paymentName": null,_103 "paymentGroupName": null,_103 "value": 16500,_103 "installments": [_103 {_103 "count": 1,_103 "hasInterestRate": false,_103 "interestRate": 0,_103 "value": 16500,_103 "total": 16500,_103 "sellerMerchantInstallments": [_103 {_103 "id": "MYSTORE",_103 "count": 1,_103 "hasInterestRate": false,_103 "interestRate": 0,_103 "value": 16500,_103 "total": 16500_103 }_103 ]_103 }_103 ]_103 }_103 ],_103 "paymentSystems": [_103 {_103 "id": 2,_103 "name": "Visa",_103 "groupName": "creditCardPaymentGroup",_103 "validator": {_103 "regex": "^4",_103 "mask": "9999 9999 9999 9999",_103 "cardCodeRegex": "^[0-9]{3}$",_103 "cardCodeMask": "999",_103 "weights": [2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1]_103 },_103 "stringId": "2",_103 "template": "creditCardPaymentGroup-template",_103 "requiresDocument": false,_103 "displayDocument": false,_103 "isCustom": false,_103 "description": null,_103 "requiresAuthentication": false,_103 "dueDate": "2026-10-09T14:59:00Z",_103 "availablePayments": null,_103 "selected": false_103 }_103 ],_103 "payments": [_103 {_103 "paymentSystem": 2,_103 "paymentSystemName": "Visa",_103 "group": "creditCardPaymentGroup",_103 "bin": null,_103 "accountId": null,_103 "installments": 1,_103 "installmentsInterestRate": 0,_103 "installmentsValue": 16500,_103 "value": 16500,_103 "referenceValue": 16500,_103 "hasDefaultBillingAddress": true_103 }_103 ],_103 "giftCards": [_103 {_103 "redemptionCode": "HYUO-TEZZ-QFFT-HTFR",_103 "value": 500,_103 "balance": 500,_103 "name": null,_103 "id": "-1390324156495k195pmab4rall3di",_103 "inUse": true,_103 "isSpecialCard": false_103 }_103 ],_103 "giftCardMessages": [],_103 "availableAccounts": [],_103 "availableTokens": [],_103 "availableAssociations": {},_103 "transactions": [_103 {_103 "isActive": true,_103 "transactionId": "296D6D245C17437E823EB77E403FC88D",_103 "merchantName": "MYSTORE",_103 "payments": [_103 {_103 "paymentSystem": "2",_103 "bin": null,_103 "accountId": null,_103 "installments": 1,_103 "value": 16500,_103 "referenceValue": 16500_103 }_103 ],_103 "sharedTransaction": false_103 }_103 ]_103}
| Field | Type | Description | Example |
|---|---|---|---|
updateStatus | String | Indicates whether the payment information is up to date according to the order's items. The order can't be placed if the value is outdated. | "updated" |
installmentOptions | Array of objects | Installment options available for each payment system. | See the following rows. |
installmentOptions[].paymentSystem | Integer | Payment system ID. | 2 |
installmentOptions[].bin | String or null | Card BIN (first digits of the card number). | "411111" |
installmentOptions[].paymentName | String or null | Payment name. | "Visa" |
installmentOptions[].paymentGroupName | String or null | Payment group name. | "creditCardPaymentGroup" |
installmentOptions[].value | Integer | Total value assigned to this payment in cents. | 16500 |
installmentOptions[].installments | Array of objects | Available installment options. | See the following rows. |
installmentOptions[].installments[].count | Integer | Number of installments. | 2 |
installmentOptions[].installments[].hasInterestRate | Boolean | Indicates whether the installment option has interest. | false |
installmentOptions[].installments[].interestRate | Integer | Interest rate. | 0 |
installmentOptions[].installments[].value | Integer | Value of each installment in cents. | 8250 |
installmentOptions[].installments[].total | Integer | Total value of all installments in cents, including interest. | 16500 |
installmentOptions[].installments[].sellerMerchantInstallments | Array of objects | Installment information for each seller merchant. Each object has the fields id (merchant ID), count, hasInterestRate, interestRate, value, and total. | [{"id": "MYSTORE", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 8250, "total": 16500}] |
paymentSystems | Array of objects | Payment systems available for the order. | See the following rows. |
paymentSystems[].id | Integer | Payment system ID. | 2 |
paymentSystems[].name | String | Payment system name. | "Visa" |
paymentSystems[].groupName | String | Payment group name. | "creditCardPaymentGroup" |
paymentSystems[].validator | Object | Rules used to validate the card data of the payment system. | See the following rows. |
paymentSystems[].validator.regex | String | Regular expression used to validate the card number. | "^4" |
paymentSystems[].validator.mask | String | Card number mask. | "9999 9999 9999 9999" |
paymentSystems[].validator.cardCodeRegex | String | Regular expression used to validate the card security code. | "^[0-9]{3}$" |
paymentSystems[].validator.cardCodeMask | String | Card security code mask. | "999" |
paymentSystems[].validator.weights | Array of integers | Weights used to validate the card number check digit. | [2, 1, 2, 1] |
paymentSystems[].stringId | String | Payment system ID as a string. | "2" |
paymentSystems[].template | String | Name of the template used to render the payment system at checkout. | "creditCardPaymentGroup-template" |
paymentSystems[].requiresDocument | Boolean | Indicates whether a document is required. | false |
paymentSystems[].displayDocument | Boolean | Indicates whether a document is displayed. | false |
paymentSystems[].isCustom | Boolean | Indicates whether it's a custom payment system. | false |
paymentSystems[].description | String or null | Payment system description. | "Pay with your Visa card" |
paymentSystems[].requiresAuthentication | Boolean | Indicates whether authentication is required. | false |
paymentSystems[].dueDate | String | Payment due date. | "2026-10-09T14:59:00Z" |
paymentSystems[].availablePayments | String or null | Availability of payment. | null |
paymentSystems[].selected | Boolean | Indicates whether this payment system has been selected. | false |
payments | Array of objects | Payments chosen by the customer. | See the following rows. |
payments[].paymentSystem | Integer | Payment system ID. | 2 |
payments[].paymentSystemName | String | Payment system name. | "Visa" |
payments[].group | String | Payment system group. | "creditCardPaymentGroup" |
payments[].bin | String or null | Card BIN. | null |
payments[].accountId | String or null | ID of the saved card account used in the payment. | "71F2775D46BF44B1BF217F828F4E6131" |
payments[].installments | Integer | Selected number of installments. | 1 |
payments[].installmentsInterestRate | Number | Interest rate of the installments. | 0 |
payments[].installmentsValue | Integer | Value of each installment in cents. | 16500 |
payments[].value | Integer | Total value assigned to this payment in cents, including interest. | 16500 |
payments[].referenceValue | Integer | Reference value in cents used to calculate the total order value with interest. | 16500 |
payments[].hasDefaultBillingAddress | Boolean | Indicates whether the billing address for this payment is the default address. | true |
giftCards | Array of objects | Gift cards applied to or available for the order. | See the following rows. |
giftCards[].redemptionCode | String | Gift card redemption code. | "HYUO-TEZZ-QFFT-HTFR" |
giftCards[].value | Integer | Value of the gift card used in the order, in cents. | 500 |
giftCards[].balance | Integer | Gift card balance in cents. | 500 |
giftCards[].name | String | Gift card name. | "loyalty-program" |
giftCards[].id | String | Gift card ID. | "-1390324156495k195pmab4rall3di" |
giftCards[].inUse | Boolean | Indicates whether the gift card is being used in the order. | true |
giftCards[].isSpecialCard | Boolean | Indicates whether the gift card is special, such as a loyalty program card. | false |
giftCardMessages | Array of strings | Messages related to the gift cards. | [] |
availableAccounts | Array | Saved cards available for the customer. | [] |
availableTokens | Array | Payment tokens available for the customer. | [] |
availableAssociations | Object | Available associations. | {} |
transactions | Array of objects | Transactions related to the order. | See the following rows. |
transactions[].isActive | Boolean | Indicates whether the transaction is active. | true |
transactions[].transactionId | String | Transaction ID. | "296D6D245C17437E823EB77E403FC88D" |
transactions[].merchantName | String | Merchant name. | "MYSTORE" |
transactions[].payments | Array of objects | Payments of the transaction. | See the following rows. |
transactions[].payments[].accountId | String | Account ID. | "12" |
transactions[].payments[].bin | String or null | Card BIN. | null |
transactions[].payments[].installments | Integer | Number of installments. | 1 |
transactions[].payments[].paymentSystem | String | Payment system ID. | "2" |
transactions[].payments[].referenceValue | Integer | Reference value in cents used to calculate interest, when it applies. | 16500 |
transactions[].payments[].value | Integer | Payment value in cents, including interest, when it applies. | 16500 |
transactions[].sharedTransaction | Boolean | Indicates whether the transaction is shared. | false |
invoiceData
Object containing information about the order invoice, including the billing address. Returns null when no invoice data was added to the cart. Use the Add invoice data endpoint to add this information.
Example:
_14"invoiceData": {_14 "address": {_14 "postalCode": "10019",_14 "city": "New York",_14 "state": "NY",_14 "country": "USA",_14 "street": "North 110th Street",_14 "number": "52",_14 "neighborhood": "Manhattan",_14 "complement": "101",_14 "reference": "Between the Upper West Side and Upper East Side",_14 "geoCoordinates": [-73.9534529, 40.7986877]_14 }_14}
| Field | Type | Description | Example |
|---|---|---|---|
address | Object | Billing address. | See the following rows. |
address.postalCode | String | Postal code. | "10019" |
address.city | String | City. | "New York" |
address.state | String | State. | "NY" |
address.country | String | Three-letter ISO code of the country. | "USA" |
address.street | String | Street name. | "North 110th Street" |
address.number | String | Street number. | "52" |
address.neighborhood | String | Neighborhood. | "Manhattan" |
address.complement | String | Address complement. | "101" |
address.reference | String | Reference that helps locate the address. | "Between the Upper West Side and Upper East Side" |
address.geoCoordinates | Array of numbers | Geographic coordinates of the address: longitude first, then latitude. | [-73.9534529, 40.7986877] |
Promotions and marketing
marketingData
Object containing promotion and campaign data, such as the coupon applied to the cart and the external and internal UTM parameters. Returns null when no marketing data was added. Use the Add marketing data endpoint to add this information.
Example:
_10"marketingData": {_10 "coupon": "free-shipping",_10 "marketingTags": ["black-friday", "newsletter"],_10 "utmSource": "app",_10 "utmMedium": "CPC",_10 "utmCampaign": "Black friday",_10 "utmiPage": "home",_10 "utmiPart": "banner-top",_10 "utmiCampaign": "black-friday-banner"_10}
| Field | Type | Description | Example |
|---|---|---|---|
coupon | String | Coupon code applied to the cart. Sending an existing coupon code in this field returns the corresponding discount in the purchase. Use the cart simulation request to check which coupons might apply before placing the order. | "free-shipping" |
marketingTags | Array of strings | Marketing tags, used to register campaign data or informative tags regarding promotions. Limited to a maximum of 50 items. | ["black-friday", "newsletter"] |
utmSource | String | Value of the utm_source parameter of the URL that led to the store. | "app" |
utmMedium | String | Value of the utm_medium parameter of the URL that led to the store. | "CPC" |
utmCampaign | String | Value of the utm_campaign parameter of the URL that led to the store. | "Black friday" |
utmiPage | String or null | Value of the internal UTM utmi_p (page). | "home" |
utmiPart | String or null | Value of the internal UTM utmi_pc (part). | "banner-top" |
utmiCampaign | String or null | Value of the internal UTM utmi_cp (campaign). | "black-friday-banner" |
ratesAndBenefitsData
Object containing the promotions (benefits) and taxes (rates) that apply to the order, and the teasers of promotions the customer can still qualify for.
Example:
_13"ratesAndBenefitsData": {_13 "rateAndBenefitsIdentifiers": [_13 {_13 "id": "d3b6a5f3-1e2c-4b5a-9c8d-7e6f5a4b3c2d",_13 "name": "10% off on pet food",_13 "featured": false,_13 "description": "Get 10% off on all dry food",_13 "matchedParameters": {},_13 "additionalInfo": null_13 }_13 ],_13 "teaser": []_13}
| Field | Type | Description | Example |
|---|---|---|---|
rateAndBenefitsIdentifiers | Array | Identifiers of the promotions and taxes applied to the order. | See the example above. |
teaser | Array | Teasers of promotions and taxes that may apply to the order. | [] |
Custom information
The sections in this group store information that isn't part of the standard orderForm structure.
customData
Object containing custom information added to the cart by the store. Returns null when no custom data was added.
It supports two structures:
customApps: custom fields grouped by app. See Add and handle custom information in the order and the Set multiple custom field values endpoint.customFields: custom fields linked to the order, to an item, or to an address. See Customizable fields with Checkout API.
Example:
_27"customData": {_27 "customApps": [_27 {_27 "id": "deliveryinfo",_27 "major": 1,_27 "fields": {_27 "deliveryEstimate": "30",_27 "deliveryInstructions": "Leave at the front door"_27 }_27 }_27 ],_27 "customFields": [_27 {_27 "linkedEntity": {_27 "type": "address",_27 "id": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd"_27 },_27 "fields": [_27 {_27 "name": "desktop",_27 "value": "DK1",_27 "refId": "DK1"_27 }_27 ]_27 }_27 ]_27}
| Field | Type | Description | Example |
|---|---|---|---|
customApps | Array of objects or null | Custom apps created by the store. | See the following rows. |
customApps[].id | String | App ID. | "deliveryinfo" |
customApps[].major | Integer | App major version. | 1 |
customApps[].fields | Object | Fields created by the store for the app, as key-value pairs. | {"deliveryEstimate": "30"} |
customFields | Array of objects or null | Customizable fields created by the store. | See the following rows. |
customFields[].linkedEntity | Object | Entity to which the custom fields are linked. | See the following rows. |
customFields[].linkedEntity.type | String | Type of the linked entity. Possible values are order, item, and address. | "address" |
customFields[].linkedEntity.id | String | ID of the linked entity. For item, it's the item uniqueId; for address, it's the addressId. Not used for order. | "7dfd4580-6340-437d-a8c8-c6c1f690c4fd" |
customFields[].fields | Array of objects | Custom fields. | See the following rows. |
customFields[].fields[].name | String | Custom field name. | "desktop" |
customFields[].fields[].value | String | Custom field value. | "DK1" |
customFields[].fields[].refId | String | Custom field reference ID. | "DK1" |
openTextField
Optional field meant to hold free text information about the order, such as delivery notes. Returns null when empty.
We recommend using this field for text, not data formats such as JSON, even if escaped. To store structured data, see Add and handle custom information in the order.
Example:
_10"openTextField": {_10 "value": "Please ring the bell twice."_10}
| Field | Type | Description | Example |
|---|---|---|---|
value | String | Additional information about the order. | "Please ring the bell twice." |
hooksData
Object containing hooks information of the cart. Returns null when no hook applies.
Example:
_10"hooksData": null
Store and commercial context
storePreferencesData
Object containing data from the store configuration, stored in VTEX License Manager, such as country, currency, and time zone.
Example:
_15"storePreferencesData": {_15 "countryCode": "BRA",_15 "saveUserData": true,_15 "timeZone": "E. South America Standard Time",_15 "currencyCode": "BRL",_15 "currencyLocale": 1046,_15 "currencySymbol": "R$",_15 "currencyFormatInfo": {_15 "currencyDecimalDigits": 2,_15 "currencyDecimalSeparator": ",",_15 "currencyGroupSeparator": ".",_15 "currencyGroupSize": 3,_15 "startsWithCurrencySymbol": true_15 }_15}
| Field | Type | Description | Example |
|---|---|---|---|
countryCode | String | Three-letter ISO code of the store country. | "BRA" |
saveUserData | Boolean | Indicates whether the store saves the customer data. | true |
timeZone | String | Store time zone. | "E. South America Standard Time" |
currencyCode | String | ISO 4217 code of the store currency. | "BRL" |
currencyLocale | Integer | Locale ID (LCID) of the currency. | 1046 |
currencySymbol | String | Currency symbol. | "R$" |
currencyFormatInfo | Object | Currency formatting information. | See the following rows. |
currencyFormatInfo.currencyDecimalDigits | Integer | Number of decimal digits. | 2 |
currencyFormatInfo.currencyDecimalSeparator | String | Decimal separator. | "," |
currencyFormatInfo.currencyGroupSeparator | String | Thousands separator. | "." |
currencyFormatInfo.currencyGroupSize | Integer | Number of digits in each group of thousands. | 3 |
currencyFormatInfo.startsWithCurrencySymbol | Boolean | Indicates whether the currency symbol is displayed before the value. | true |
commercialConditionData
Object containing information about the commercial conditions that apply to the order. Returns null when no commercial condition applies.
Example:
_10"commercialConditionData": null
subscriptionData
Object containing the subscription information of the items in the cart. Returns null if the cart has no subscriptions. Use the Add subscription data endpoint to add this information.
Example:
_18"subscriptionData": {_18 "subscriptions": [_18 {_18 "itemIndex": 0,_18 "plan": {_18 "type": "RECURRING_PAYMENT",_18 "frequency": {_18 "periodicity": "MONTH",_18 "interval": 1_18 },_18 "validity": {_18 "begin": "2026-10-02",_18 "end": "2027-10-02"_18 }_18 }_18 }_18 ]_18}
| Field | Type | Description | Example |
|---|---|---|---|
subscriptions | Array of objects | Subscriptions of the cart items. | See the following rows. |
subscriptions[].itemIndex | Integer | Index of the cart item the subscription refers to, starting at 0. | 0 |
subscriptions[].plan | Object | Subscription plan information. | See the following rows. |
subscriptions[].plan.type | String | Type of the subscription plan. | "RECURRING_PAYMENT" |
subscriptions[].plan.frequency | Object | Frequency in which the subscription order will be placed. | See the following rows. |
subscriptions[].plan.frequency.periodicity | String | Time unit of the subscription frequency. Possible values are DAY, WEEK, MONTH, and YEAR. | "MONTH" |
subscriptions[].plan.frequency.interval | Integer | Number of periodicity units between each subscription order. | 1 |
subscriptions[].plan.validity | Object | Period in which the subscription is valid. | See the following rows. |
subscriptions[].plan.validity.begin | String | Date when the subscription becomes valid, in the YYYY-MM-DD format. | "2026-10-02" |
subscriptions[].plan.validity.end | String | Date when the subscription expires, in the YYYY-MM-DD format. | "2027-10-02" |
Server messages
messages
Array containing one object for each message generated by the server while processing the request, such as errors, warnings, and information about changes in the cart (for example, a price change or an unavailable item). Use the Clear orderForm messages endpoint to remove them. See the possible messages in Checkout error codes.
Example:
_10"messages": [_10 {_10 "code": null,_10 "status": "error",_10 "text": "Voucher code AAAA-BBBB-CCCC-DDDD was not found in the system"_10 }_10]
| Field | Type | Description | Example |
|---|---|---|---|
code | String or null | Message code. | null |
status | String | Message severity. Possible values are error, warning, and info. | "error" |
text | String | Message text, according to the cart locale. | "Voucher code AAAA-BBBB-CCCC-DDDD was not found in the system" |