Execute a sell order
curl --request POST \
--url https://api.collectpure.com/execution/sell/v1 \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"quoteId": "<string>",
"expectedTotal": 4503599627370495,
"selectedOptionalIds": [
"<string>"
],
"adjustListings": true,
"confirmListingMismatch": true
}
'import requests
url = "https://api.collectpure.com/execution/sell/v1"
payload = {
"quoteId": "<string>",
"expectedTotal": 4503599627370495,
"selectedOptionalIds": ["<string>"],
"adjustListings": True,
"confirmListingMismatch": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
quoteId: '<string>',
expectedTotal: 4503599627370495,
selectedOptionalIds: ['<string>'],
adjustListings: true,
confirmListingMismatch: true
})
};
fetch('https://api.collectpure.com/execution/sell/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.collectpure.com/execution/sell/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'quoteId' => '<string>',
'expectedTotal' => 4503599627370495,
'selectedOptionalIds' => [
'<string>'
],
'adjustListings' => true,
'confirmListingMismatch' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.collectpure.com/execution/sell/v1"
payload := strings.NewReader("{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.collectpure.com/execution/sell/v1")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.collectpure.com/execution/sell/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"orderId": 123,
"items": [
{
"lineItemId": "<string>",
"productId": "<string>",
"variantId": "<string>",
"quantity": 123,
"price": 123,
"total": 123,
"success": true
}
],
"checkout": {
"lineItems": [
{
"id": "<string>",
"quantity": 123,
"price": 123,
"status": "<string>",
"disabled": true,
"error": "<string>",
"product": {
"sku": "<string>",
"title": "<string>"
},
"variant": {
"title": "<string>"
}
}
],
"fees": [
{
"id": "<string>",
"label": "<string>",
"amount": 123,
"rate": 123
}
],
"subtotal": 123,
"total": 123
}
}
}Execution - Sell
Execute a sell order
Execute a previously created sell quote. Validates the quote, creates sell orders, and initiates payout. The quote must not be expired.
Rate limit: 120 requests burst, 60 requests/minute sustained.
POST
/
execution
/
sell
/
v1
Execute a sell order
curl --request POST \
--url https://api.collectpure.com/execution/sell/v1 \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"quoteId": "<string>",
"expectedTotal": 4503599627370495,
"selectedOptionalIds": [
"<string>"
],
"adjustListings": true,
"confirmListingMismatch": true
}
'import requests
url = "https://api.collectpure.com/execution/sell/v1"
payload = {
"quoteId": "<string>",
"expectedTotal": 4503599627370495,
"selectedOptionalIds": ["<string>"],
"adjustListings": True,
"confirmListingMismatch": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
quoteId: '<string>',
expectedTotal: 4503599627370495,
selectedOptionalIds: ['<string>'],
adjustListings: true,
confirmListingMismatch: true
})
};
fetch('https://api.collectpure.com/execution/sell/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.collectpure.com/execution/sell/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'quoteId' => '<string>',
'expectedTotal' => 4503599627370495,
'selectedOptionalIds' => [
'<string>'
],
'adjustListings' => true,
'confirmListingMismatch' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.collectpure.com/execution/sell/v1"
payload := strings.NewReader("{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.collectpure.com/execution/sell/v1")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.collectpure.com/execution/sell/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"orderId": 123,
"items": [
{
"lineItemId": "<string>",
"productId": "<string>",
"variantId": "<string>",
"quantity": 123,
"price": 123,
"total": 123,
"success": true
}
],
"checkout": {
"lineItems": [
{
"id": "<string>",
"quantity": 123,
"price": 123,
"status": "<string>",
"disabled": true,
"error": "<string>",
"product": {
"sku": "<string>",
"title": "<string>"
},
"variant": {
"title": "<string>"
}
}
],
"fees": [
{
"id": "<string>",
"label": "<string>",
"amount": 123,
"rate": 123
}
],
"subtotal": 123,
"total": 123
}
}
}Authorizations
API key for authentication
Body
application/json
The quote ID from /execution/sell/quote/v1
The total from the quote response, in cents. The order is rejected if the current total is less than this value (protects against payout decreases).
Required range:
0 <= x <= 9007199254740991Optional IDs to confirm (e.g. instant payout). Must match the selections from the quote.
When true, decrements the seller's active listings for the same products during checkout
When true, skips the error when sell quantity is less than listed quantity
Was this page helpful?
⌘I