curl --request POST \
--url https://api.collectpure.com/execution/v2/sell/quotes/{quoteId}/execute \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"expectedTotal": 4503599627370495,
"selectedOptionalIds": [
"<string>"
],
"expectedOptionalFees": {},
"adjustListings": true,
"confirmListingMismatch": true,
"promotionCode": "<string>"
}
'import requests
url = "https://api.collectpure.com/execution/v2/sell/quotes/{quoteId}/execute"
payload = {
"expectedTotal": 4503599627370495,
"selectedOptionalIds": ["<string>"],
"expectedOptionalFees": {},
"adjustListings": True,
"confirmListingMismatch": True,
"promotionCode": "<string>"
}
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({
expectedTotal: 4503599627370495,
selectedOptionalIds: ['<string>'],
expectedOptionalFees: {},
adjustListings: true,
confirmListingMismatch: true,
promotionCode: '<string>'
})
};
fetch('https://api.collectpure.com/execution/v2/sell/quotes/{quoteId}/execute', 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/v2/sell/quotes/{quoteId}/execute",
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([
'expectedTotal' => 4503599627370495,
'selectedOptionalIds' => [
'<string>'
],
'expectedOptionalFees' => [
],
'adjustListings' => true,
'confirmListingMismatch' => true,
'promotionCode' => '<string>'
]),
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/v2/sell/quotes/{quoteId}/execute"
payload := strings.NewReader("{\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"expectedOptionalFees\": {},\n \"adjustListings\": true,\n \"confirmListingMismatch\": true,\n \"promotionCode\": \"<string>\"\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/v2/sell/quotes/{quoteId}/execute")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"expectedOptionalFees\": {},\n \"adjustListings\": true,\n \"confirmListingMismatch\": true,\n \"promotionCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.collectpure.com/execution/v2/sell/quotes/{quoteId}/execute")
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 \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"expectedOptionalFees\": {},\n \"adjustListings\": true,\n \"confirmListingMismatch\": true,\n \"promotionCode\": \"<string>\"\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
},
"counterpartyOrderIds": [
123
]
}
}Execute a sell quote
Execute a previously created sell quote. Validates pricing, creates sell orders, and initiates payout.
Requires role: stytch_admin
Rate limit: 120 requests burst, 60 requests/minute sustained.
curl --request POST \
--url https://api.collectpure.com/execution/v2/sell/quotes/{quoteId}/execute \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"expectedTotal": 4503599627370495,
"selectedOptionalIds": [
"<string>"
],
"expectedOptionalFees": {},
"adjustListings": true,
"confirmListingMismatch": true,
"promotionCode": "<string>"
}
'import requests
url = "https://api.collectpure.com/execution/v2/sell/quotes/{quoteId}/execute"
payload = {
"expectedTotal": 4503599627370495,
"selectedOptionalIds": ["<string>"],
"expectedOptionalFees": {},
"adjustListings": True,
"confirmListingMismatch": True,
"promotionCode": "<string>"
}
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({
expectedTotal: 4503599627370495,
selectedOptionalIds: ['<string>'],
expectedOptionalFees: {},
adjustListings: true,
confirmListingMismatch: true,
promotionCode: '<string>'
})
};
fetch('https://api.collectpure.com/execution/v2/sell/quotes/{quoteId}/execute', 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/v2/sell/quotes/{quoteId}/execute",
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([
'expectedTotal' => 4503599627370495,
'selectedOptionalIds' => [
'<string>'
],
'expectedOptionalFees' => [
],
'adjustListings' => true,
'confirmListingMismatch' => true,
'promotionCode' => '<string>'
]),
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/v2/sell/quotes/{quoteId}/execute"
payload := strings.NewReader("{\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"expectedOptionalFees\": {},\n \"adjustListings\": true,\n \"confirmListingMismatch\": true,\n \"promotionCode\": \"<string>\"\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/v2/sell/quotes/{quoteId}/execute")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"expectedOptionalFees\": {},\n \"adjustListings\": true,\n \"confirmListingMismatch\": true,\n \"promotionCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.collectpure.com/execution/v2/sell/quotes/{quoteId}/execute")
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 \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"expectedOptionalFees\": {},\n \"adjustListings\": true,\n \"confirmListingMismatch\": true,\n \"promotionCode\": \"<string>\"\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
},
"counterpartyOrderIds": [
123
]
}
}Authorizations
API key for authentication
Path Parameters
The quote ID (cart ID) to execute
Body
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).
0 <= x <= 9007199254740991Optional IDs to confirm (e.g. instant payout). Must match the selections from the quote.
Expected per-optional fees in cents for reconciliation at confirm time
Show child attributes
Show child attributes
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
Promotion code to apply at checkout
Was this page helpful?