v52

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

Place order

Places order without having any prior cart information. This means all information on items, client, payment and shipping must be sent in the body.

⚠️ The authentication of this endpoint is required if you are creating an order with an item that has an attachment that creates a Subscription. For more information, access Subscriptions API.

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
CheckoutCheckoutResourcesOrders Full Access

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.

put/api/checkout/pub/orders

Query parameters

scinteger
Example:1

Trade Policy (Sales Channel) identification. This query can be used to create an order for a specific sales channel.

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

openTextFieldstring

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.

Example request

{
  "items": [
    {
      "id": "123456789",
      "quantity": 1,
      "seller": "1"
    }
  ],
  "clientProfileData": {
    "email": "customer@examplemail.com",
    "firstName": "first-name",
    "lastName": "last-name",
    "documentType": "cpf",
    "document": "123456789",
    "phone": "+55110988887777",
    "corporateName": "company-name",
    "tradeName": "trade-name",
    "corporateDocument": "12345678000100",
    "stateInscription": "12345678",
    "corporatePhone": "+551100988887777"
  },
  "shippingData": {
    "address": {
      "addressType": "residential",
      "receiverName": "receiver-name",
      "addressId": "Home",
      "postalCode": "12345-000",
      "city": "Rio de Janeiro",
      "state": "Rio de Janeiro",
      "country": "BRA",
      "street": "Praia de Botafogo",
      "number": "300",
      "neighborhood": "Botafogo",
      "complement": "3rd floor",
      "reference": "Grey building",
      "geoCoordinates": [
        -47.924747467041016,
        -15.832582473754883
      ]
    },
    "logisticsInfo": [
      {
        "selectedSla": "Express",
        "selectedDeliveryChannel": "delivery",
        "lockTTL": "8d",
        "shippingEstimate": "7d",
        "price": 1099,
        "deliveryWindow": {
          "startDateUtc": "2021-07-13T00:00:00+00:00",
          "endDateUtc": "2021-07-13T23:59:59+00:00"
        }
      }
    ],
    "updateStatus": "updated"
  },
  "paymentData": {
    "giftCards": [
      {
        "redemptionCode": "HYUO-TEZZ-QFFT-HTFR",
        "value": 500,
        "balance": 500,
        "name": "name-example",
        "id": "1390324156495k195pmab4rall3di",
        "inUse": true
      }
    ],
    "giftCardMessages": [
      "message-example"
    ],
    "paymentSystems": [
      {
        "id": 2,
        "name": "Visa",
        "groupName": "creditCardPaymentGroup",
        "validator": {
          "regex": "^4",
          "mask": "9999 9999 9999 9999",
          "cardCodeRegex": "[^0-9]",
          "cardCodeMask": "999",
          "weights": [
            2,
            1,
            2,
            1,
            2,
            1,
            2,
            1,
            2,
            1,
            2,
            1,
            2,
            1,
            2,
            1,
            2,
            1,
            2
          ]
        },
        "stringId": "12345abc",
        "template": "creditCardPaymentGroup-template",
        "description": "description-example"
      }
    ],
    "payments": [
      {
        "accountId": "accountID-example",
        "bin": "2",
        "installments": 2,
        "paymentSystem": 12,
        "referenceValue": 16175,
        "value": 16175
      }
    ],
    "updateStatus": "updated"
  },
  "marketingData": {
    "coupon": "free-shipping",
    "utmSource": "Facebook",
    "utmMedium": "CPC",
    "utmCampaign": "Black friday",
    "utmiPage": "utmi_page-example",
    "utmiPart": "utmi_part-exmaple",
    "utmiCampaign": "utmi_campaign-exmaple"
  },
  "openTextField": "open-text-example",
  "salesAssociateData": {
    "salesAssociateId": "seller123"
  }
}

Response

OK

orderFormstring nullable

This is null since this request does not depend on any previously existing orderForm information in the platform.