v52

latestOpenAPI 3.0.0raw.githubusercontent.com2026-08-014683.0 MB
Order placement

Place order from an existing cart

This endpoint places an order from an existing orderForm object, meaning an existing cart.

After the creation of an order with this request, you have five minutes to send payment information and then request payment processing.

Permissions

Any user or API key must have at least one of the appropriate License Manager resources to be able to successfully run this request. Otherwise they will receive a status code 403 error. These are the applicable resources for this endpoint:

ProductCategoryResource
CheckoutCheckoutResourcesRead Shopping Cart

There are no applicable predefined roles for this resource list. You must create a custom role and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see Authentication overview.

❗ To prevent integrations from having excessive permissions, consider the best practices for managing API keys when assigning License Manager roles to integrations.

post/api/checkout/pub/orderForm/{orderFormId}/transaction

Path parameters

orderFormIdstring required
Example:ede846222cd44046ba6c638442c3505a

ID of the orderForm corresponding to the cart from which to place the order.

Query parameters

individualShippingEstimatesboolean
Example:true

Shows the product's estimated shipping date in the shippingEstimate field from the orderForm.

Headers

Content-Typestring required

Type of the content being sent.

Acceptstring required

HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.

Request body

referenceIdstring required

ID of the orderForm corresponding to the cart from which to place the order. This is the same as the orderFormId parameter.

savePersonalDataboolean

true if the shopper's data provided during checkout should be saved for future reference.

optinNewsLetterboolean nullable

True if the shopper opted to receive the newsletter.

valueinteger required

Total value of the order without separating cents. For example, $24.99 is represented 2499.

referenceValueinteger required

Reference value of the order for calculating interest if that is the case. Can be equal to the total value and does not separate cents. For example, $24.99 is represented 2499.

interestValueinteger required

Interest rate to be used in case it applies.

Example request

{
  "referenceId": "41a22925298a4ddca95318131a25b000",
  "value": 6800,
  "referenceValue": 6800
}

Response

OK

orderFormIdstring

ID of the orderForm corresponding to a specific cart.

salesChannelstring

Attribute created by the seller, in their VTEX store configuration.

loggedInboolean

Indicates whether the user is logged into the store.

isCheckedInboolean

Indicates whether order is checked in.

storeIdstring nullable

ID of the store.

allowManualPriceboolean

Permission to modify item price manually.

canEditDataboolean

Data can be edited.

userProfileIdstring nullable

Unique ID associated with the customer profile.

profileProviderstring

Profile provider.

availableAccountsstring[]

Available accounts.

userTypestring nullable

User type.

ignoreProfileDataboolean

Ignore customer profile data.

valueinteger

Total value of the order without separating cents. For example, $24.99 is represented as 2499.

messagesstring[]

Array containing an object for each message generated by our servers while processing the request.

selectableGiftsstring[]

Array containing the data of the item selected as a gift.

totalizersobject[]

Array containing an object for each totalizer for the purchase. Totalizers contain the sum of values for a specific part of the order (e.g. Total item value, Total shipping value).

commercialConditionDataobject nullable

Object containing commercial condition information.

storePreferencesDataobject

Object containing data from the store's configuration (stored in VTEX's License Manager).

giftRegistryDataobject nullable

Gift registry list information.

openTextFieldstring nullable

Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as JSON even if escaped. For that purpose, see Creating customizable fields.

hooksDataobject nullable

Hooks information.

subscriptionDataobject nullable

Subscription information.