curl --request POST \
--url https://{defaultHost}/v1/upsells \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"upsell": {
"fee_description": "Awesome Upsell",
"step": "declined",
"amount_off": 500,
"price": "5bdefc77-bdb3-49d6-8c22-b491e06879a0",
"upsell_funnel": "3765793b-0067-406c-a439-d37d01991e4b"
}
}
'import requests
url = "https://{defaultHost}/v1/upsells"
payload = { "upsell": {
"fee_description": "Awesome Upsell",
"step": "declined",
"amount_off": 500,
"price": "5bdefc77-bdb3-49d6-8c22-b491e06879a0",
"upsell_funnel": "3765793b-0067-406c-a439-d37d01991e4b"
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
upsell: {
fee_description: 'Awesome Upsell',
step: 'declined',
amount_off: 500,
price: '5bdefc77-bdb3-49d6-8c22-b491e06879a0',
upsell_funnel: '3765793b-0067-406c-a439-d37d01991e4b'
}
})
};
fetch('https://{defaultHost}/v1/upsells', 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://{defaultHost}/v1/upsells",
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([
'upsell' => [
'fee_description' => 'Awesome Upsell',
'step' => 'declined',
'amount_off' => 500,
'price' => '5bdefc77-bdb3-49d6-8c22-b491e06879a0',
'upsell_funnel' => '3765793b-0067-406c-a439-d37d01991e4b'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{defaultHost}/v1/upsells"
payload := strings.NewReader("{\n \"upsell\": {\n \"fee_description\": \"Awesome Upsell\",\n \"step\": \"declined\",\n \"amount_off\": 500,\n \"price\": \"5bdefc77-bdb3-49d6-8c22-b491e06879a0\",\n \"upsell_funnel\": \"3765793b-0067-406c-a439-d37d01991e4b\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{defaultHost}/v1/upsells")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"upsell\": {\n \"fee_description\": \"Awesome Upsell\",\n \"step\": \"declined\",\n \"amount_off\": 500,\n \"price\": \"5bdefc77-bdb3-49d6-8c22-b491e06879a0\",\n \"upsell_funnel\": \"3765793b-0067-406c-a439-d37d01991e4b\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/v1/upsells")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"upsell\": {\n \"fee_description\": \"Awesome Upsell\",\n \"step\": \"declined\",\n \"amount_off\": 500,\n \"price\": \"5bdefc77-bdb3-49d6-8c22-b491e06879a0\",\n \"upsell_funnel\": \"3765793b-0067-406c-a439-d37d01991e4b\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "413bad95-bf7e-47a6-99ad-d021ade80e45",
"object": "upsell",
"amount_off": 500,
"duplicate_purchase_behavior": "allow",
"fee_description": "Awesome Upsell",
"metadata": {},
"percent_off": null,
"replacement_behavior": "none",
"step": "declined",
"price": "5bdefc77-bdb3-49d6-8c22-b491e06879a0",
"upsell_funnel": "3765793b-0067-406c-a439-d37d01991e4b",
"discarded_at": null,
"created_at": 1789424654,
"updated_at": 1789424654
}Create
Creates a new upsell.
curl --request POST \
--url https://{defaultHost}/v1/upsells \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"upsell": {
"fee_description": "Awesome Upsell",
"step": "declined",
"amount_off": 500,
"price": "5bdefc77-bdb3-49d6-8c22-b491e06879a0",
"upsell_funnel": "3765793b-0067-406c-a439-d37d01991e4b"
}
}
'import requests
url = "https://{defaultHost}/v1/upsells"
payload = { "upsell": {
"fee_description": "Awesome Upsell",
"step": "declined",
"amount_off": 500,
"price": "5bdefc77-bdb3-49d6-8c22-b491e06879a0",
"upsell_funnel": "3765793b-0067-406c-a439-d37d01991e4b"
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
upsell: {
fee_description: 'Awesome Upsell',
step: 'declined',
amount_off: 500,
price: '5bdefc77-bdb3-49d6-8c22-b491e06879a0',
upsell_funnel: '3765793b-0067-406c-a439-d37d01991e4b'
}
})
};
fetch('https://{defaultHost}/v1/upsells', 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://{defaultHost}/v1/upsells",
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([
'upsell' => [
'fee_description' => 'Awesome Upsell',
'step' => 'declined',
'amount_off' => 500,
'price' => '5bdefc77-bdb3-49d6-8c22-b491e06879a0',
'upsell_funnel' => '3765793b-0067-406c-a439-d37d01991e4b'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{defaultHost}/v1/upsells"
payload := strings.NewReader("{\n \"upsell\": {\n \"fee_description\": \"Awesome Upsell\",\n \"step\": \"declined\",\n \"amount_off\": 500,\n \"price\": \"5bdefc77-bdb3-49d6-8c22-b491e06879a0\",\n \"upsell_funnel\": \"3765793b-0067-406c-a439-d37d01991e4b\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{defaultHost}/v1/upsells")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"upsell\": {\n \"fee_description\": \"Awesome Upsell\",\n \"step\": \"declined\",\n \"amount_off\": 500,\n \"price\": \"5bdefc77-bdb3-49d6-8c22-b491e06879a0\",\n \"upsell_funnel\": \"3765793b-0067-406c-a439-d37d01991e4b\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/v1/upsells")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"upsell\": {\n \"fee_description\": \"Awesome Upsell\",\n \"step\": \"declined\",\n \"amount_off\": 500,\n \"price\": \"5bdefc77-bdb3-49d6-8c22-b491e06879a0\",\n \"upsell_funnel\": \"3765793b-0067-406c-a439-d37d01991e4b\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "413bad95-bf7e-47a6-99ad-d021ade80e45",
"object": "upsell",
"amount_off": 500,
"duplicate_purchase_behavior": "allow",
"fee_description": "Awesome Upsell",
"metadata": {},
"percent_off": null,
"replacement_behavior": "none",
"step": "declined",
"price": "5bdefc77-bdb3-49d6-8c22-b491e06879a0",
"upsell_funnel": "3765793b-0067-406c-a439-d37d01991e4b",
"discarded_at": null,
"created_at": 1789424654,
"updated_at": 1789424654
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Show child attributes
Show child attributes
Response
Success
The UUID of the specific object.
A string describing the object type returned.
Amount (in the currency of the price) that will be taken off line items associated with this upsell.
How to handle duplicate purchases of the product – can be one of allow, block_within_checkout, or block.
The description for this upsell which will be visible to customers.
Percent that will be taken off line items associated with this upsell.
Whether or not to replace line items in the associated checkout. Replacement occurs when a line item is upsold. Possible values include:
none(default): No line items will be replaced.all: All line items will be replaced.
Where this upsell falls in position within the upsell funnel – can be one of initial, accepted, or declined.
Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
Expandable – The associated price ID.
Expandable – The associated upsell funnel ID.
Time at which the object was discarded. Measured in seconds since the Unix epoch.
Time at which the object was created. Measured in seconds since the Unix epoch.
Time at which the object was last updated. Measured in seconds since the Unix epoch.
Was this page helpful?