Orders API
vtex · Company
>Check the new [Orders onboarding guide](https://developers.vtex.com/docs/guides/orders-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Orders and is organized by focusing on the developer's journey. Receive, process, and manage every order in your store through our Order Management API.
Authentication
Sample Requests
Retrieve items from [feed](https://developers.vtex.com/docs/guides/orders-feed) queue. The event will be removed if the message `send retry` is equal to, or greater than the maximum retention period. > This API will return `404 Not Found` if there is no [Feed Configuration](https://developers.
Hover any highlighted part to learn what it does
| Accept | application/json |
| Content-Type | application/json |
curl -X GET "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed?maxlot=%7B%7BmaxLot%7D%7D" \ -H "Accept: application/json" \ -H "Content-Type: application/json"
import requests
params = {
"maxlot": "{{maxLot}}"
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.get(
"https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed');
url.searchParams.set('maxlot', '{{maxLot}}');
const response = await fetch(url, {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed")
q := baseURL.Query()
q.Set("maxlot", "{{maxLot}}")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("Accept", "application/json")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed")
uri.query = URI.encode_www_form({
"maxlot" => "{{maxLot}}"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["Accept"] = "application/json"
req["Content-Type"] = "application/json"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed?" . http_build_query([
"maxlot" => "{{maxLot}}"
]);
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"Accept: application/json",
"Content-Type: application/json"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Retrieves a list of orders according to the filters described below. The limit of information retrieval is 30 pages, the default number of orders per page is 15 and it is possible to configure it up to 100 using the `per_page` parameter. Be aware that as of October 3rd, 2018, this endpoint
Hover any highlighted part to learn what it does
| Accept | application/json |
| Content-Type | application/json |
curl -X GET "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders?q=-%20OrderID%3A%20v212333lux-02%20%0D%0A-%20Client%20email%3A%20taylor%40email.com%20%0D%0A-%20Client%20document%3A%2021133355524%20%0D%0A-%20Client%20name%3A%20Taylor&utc=-2000&page=10&f_RnB=Free%2BShipping&orderBy=v502556llux-01%2Casc&f_status=ready-for-handling&per_page=15&f_UtmSource=christmas_campaign&f_isInstore=true&searchField=%0D%0A-%20SKU%20ID%3A%20%6025%60%20%0D%0A-%20Gift%20List%20ID%3A%20%6011223%60%20%0D%0A-%20Transaction%20ID%20(TID)%3A%20%6054546300238810034995829230012%60%20%0D%0A-%20PCI%20Connector's%20Transaction%20ID%20(TID)%3A%20%607032909234899834298423209%60%20%0D%0A-%20Payment%20ID%20(PID)%3A%20%602%60%20%0D%0A-%20Connector's%20NSU%3A%20%602437281%60&f_affiliateId=WLM&f_sellerNames=SellerName&f_creationDate=creationDate%3A%5B2016-01-01T02%3A00%3A00.000Z%20TO%202021-01-01T01%3A59%3A59.999Z%5D&f_invoicedDate=invoicedDate%3A%5B2022-01-01T02%3A00%3A00.000Z%20TO%202022-01-02T01%3A59%3A59.999Z%5D&f_paymentNames=Visa&f_salesChannel=Main&salesChannelId=1&f_authorizedDate=creationDate%3A%5B2022-01-01T02%3A00%3A00.000Z%20TO%202022-01-02T01%3A59%3A59.999Z%5D&incompleteOrders=true&f_hasInputInvoice=false&f_shippingEstimate=0.days&f_callCenterOperatorName=Operator%2520Name" \ -H "Accept: application/json" \ -H "Content-Type: application/json"
import requests
params = {
"q": "- OrderID: v212333lux-02
- Client email: [email protected]
- Client document: 21133355524
- Client name: Taylor",
"utc": "-2000",
"page": "10",
"f_RnB": "Free+Shipping",
"orderBy": "v502556llux-01,asc",
"f_status": "ready-for-handling",
"per_page": "15",
"f_UtmSource": "christmas_campaign",
"f_isInstore": "true",
"searchField": "
- SKU ID: `25`
- Gift List ID: `11223`
- Transaction ID (TID): `54546300238810034995829230012`
- PCI Connector's Transaction ID (TID): `7032909234899834298423209`
- Payment ID (PID): `2`
- Connector's NSU: `2437281`",
"f_affiliateId": "WLM",
"f_sellerNames": "SellerName",
"f_creationDate": "creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]",
"f_invoicedDate": "invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
"f_paymentNames": "Visa",
"f_salesChannel": "Main",
"salesChannelId": "1",
"f_authorizedDate": "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
"incompleteOrders": "true",
"f_hasInputInvoice": "false",
"f_shippingEstimate": "0.days",
"f_callCenterOperatorName": "Operator%20Name"
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.get(
"https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders');
url.searchParams.set('q', '- OrderID: v212333lux-02
- Client email: [email protected]
- Client document: 21133355524
- Client name: Taylor');
url.searchParams.set('utc', '-2000');
url.searchParams.set('page', '10');
url.searchParams.set('f_RnB', 'Free+Shipping');
url.searchParams.set('orderBy', 'v502556llux-01,asc');
url.searchParams.set('f_status', 'ready-for-handling');
url.searchParams.set('per_page', '15');
url.searchParams.set('f_UtmSource', 'christmas_campaign');
url.searchParams.set('f_isInstore', 'true');
url.searchParams.set('searchField', '
- SKU ID: `25`
- Gift List ID: `11223`
- Transaction ID (TID): `54546300238810034995829230012`
- PCI Connector's Transaction ID (TID): `7032909234899834298423209`
- Payment ID (PID): `2`
- Connector's NSU: `2437281`');
url.searchParams.set('f_affiliateId', 'WLM');
url.searchParams.set('f_sellerNames', 'SellerName');
url.searchParams.set('f_creationDate', 'creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]');
url.searchParams.set('f_invoicedDate', 'invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]');
url.searchParams.set('f_paymentNames', 'Visa');
url.searchParams.set('f_salesChannel', 'Main');
url.searchParams.set('salesChannelId', '1');
url.searchParams.set('f_authorizedDate', 'creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]');
url.searchParams.set('incompleteOrders', 'true');
url.searchParams.set('f_hasInputInvoice', 'false');
url.searchParams.set('f_shippingEstimate', '0.days');
url.searchParams.set('f_callCenterOperatorName', 'Operator%20Name');
const response = await fetch(url, {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders")
q := baseURL.Query()
q.Set("q", "- OrderID: v212333lux-02
- Client email: [email protected]
- Client document: 21133355524
- Client name: Taylor")
q.Set("utc", "-2000")
q.Set("page", "10")
q.Set("f_RnB", "Free+Shipping")
q.Set("orderBy", "v502556llux-01,asc")
q.Set("f_status", "ready-for-handling")
q.Set("per_page", "15")
q.Set("f_UtmSource", "christmas_campaign")
q.Set("f_isInstore", "true")
q.Set("searchField", "
- SKU ID: `25`
- Gift List ID: `11223`
- Transaction ID (TID): `54546300238810034995829230012`
- PCI Connector's Transaction ID (TID): `7032909234899834298423209`
- Payment ID (PID): `2`
- Connector's NSU: `2437281`")
q.Set("f_affiliateId", "WLM")
q.Set("f_sellerNames", "SellerName")
q.Set("f_creationDate", "creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]")
q.Set("f_invoicedDate", "invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]")
q.Set("f_paymentNames", "Visa")
q.Set("f_salesChannel", "Main")
q.Set("salesChannelId", "1")
q.Set("f_authorizedDate", "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]")
q.Set("incompleteOrders", "true")
q.Set("f_hasInputInvoice", "false")
q.Set("f_shippingEstimate", "0.days")
q.Set("f_callCenterOperatorName", "Operator%20Name")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("Accept", "application/json")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders")
uri.query = URI.encode_www_form({
"q" => "- OrderID: v212333lux-02
- Client email: [email protected]
- Client document: 21133355524
- Client name: Taylor",
"utc" => "-2000",
"page" => "10",
"f_RnB" => "Free+Shipping",
"orderBy" => "v502556llux-01,asc",
"f_status" => "ready-for-handling",
"per_page" => "15",
"f_UtmSource" => "christmas_campaign",
"f_isInstore" => "true",
"searchField" => "
- SKU ID: `25`
- Gift List ID: `11223`
- Transaction ID (TID): `54546300238810034995829230012`
- PCI Connector's Transaction ID (TID): `7032909234899834298423209`
- Payment ID (PID): `2`
- Connector's NSU: `2437281`",
"f_affiliateId" => "WLM",
"f_sellerNames" => "SellerName",
"f_creationDate" => "creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]",
"f_invoicedDate" => "invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
"f_paymentNames" => "Visa",
"f_salesChannel" => "Main",
"salesChannelId" => "1",
"f_authorizedDate" => "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
"incompleteOrders" => "true",
"f_hasInputInvoice" => "false",
"f_shippingEstimate" => "0.days",
"f_callCenterOperatorName" => "Operator%20Name"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["Accept"] = "application/json"
req["Content-Type"] = "application/json"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders?" . http_build_query([
"q" => "- OrderID: v212333lux-02
- Client email: [email protected]
- Client document: 21133355524
- Client name: Taylor",
"utc" => "-2000",
"page" => "10",
"f_RnB" => "Free+Shipping",
"orderBy" => "v502556llux-01,asc",
"f_status" => "ready-for-handling",
"per_page" => "15",
"f_UtmSource" => "christmas_campaign",
"f_isInstore" => "true",
"searchField" => "
- SKU ID: `25`
- Gift List ID: `11223`
- Transaction ID (TID): `54546300238810034995829230012`
- PCI Connector's Transaction ID (TID): `7032909234899834298423209`
- Payment ID (PID): `2`
- Connector's NSU: `2437281`",
"f_affiliateId" => "WLM",
"f_sellerNames" => "SellerName",
"f_creationDate" => "creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]",
"f_invoicedDate" => "invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
"f_paymentNames" => "Visa",
"f_salesChannel" => "Main",
"salesChannelId" => "1",
"f_authorizedDate" => "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
"incompleteOrders" => "true",
"f_hasInputInvoice" => "false",
"f_shippingEstimate" => "0.days",
"f_callCenterOperatorName" => "Operator%20Name"
]);
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"Accept: application/json",
"Content-Type: application/json"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Lists all orders from a given client, filtering by their email. > Note that these requests are meant to be made by **Call center operator** profiles. Otherwise, they will return only orders from the same email making the request.
Hover any highlighted part to learn what it does
| Accept | application/json |
| Content-Type | application/json |
curl -X GET "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders?page=15&per_page=15&clientEmail=customer%40mail.com" \ -H "Accept: application/json" \ -H "Content-Type: application/json"
import requests
params = {
"page": "15",
"per_page": "15",
"clientEmail": "[email protected]"
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.get(
"https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders');
url.searchParams.set('page', '15');
url.searchParams.set('per_page', '15');
url.searchParams.set('clientEmail', '[email protected]');
const response = await fetch(url, {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders")
q := baseURL.Query()
q.Set("page", "15")
q.Set("per_page", "15")
q.Set("clientEmail", "[email protected]")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("Accept", "application/json")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders")
uri.query = URI.encode_www_form({
"page" => "15",
"per_page" => "15",
"clientEmail" => "[email protected]"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["Accept"] = "application/json"
req["Content-Type"] = "application/json"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders?" . http_build_query([
"page" => "15",
"per_page" => "15",
"clientEmail" => "[email protected]"
]);
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"Accept: application/json",
"Content-Type: application/json"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Orders API?
Orders API is a Company API. Developers commonly use company APIs for:
- enriching CRM records with company firmographics
- building lead-generation and prospecting tools
- verifying business identity and registration details
- monitoring competitors and market intelligence
- powering B2B data enrichment pipelines
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Orders API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?