Marketplace
Send a Product (variant)
Send a product variant to a recipient.
POST
/
api
/
v3
/
marketplace
/
products
/
send
Send a Product (variant)
curl --request POST \
--url https://app.staging.sendo.so/api/v3/marketplace/products/send \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"variant_ids": [
"<string>"
],
"recipient_email": "<string>",
"recipient_first_name": "<string>",
"recipient_last_name": "<string>",
"sender_first_name": "<string>",
"sender_last_name": "<string>",
"sender_email": "<string>",
"sender_organization_name": "<string>",
"message": "<string>",
"gift_exchange_enabled": true,
"meeting_url": "<string>",
"require_approval": true
}
'import requests
url = "https://app.staging.sendo.so/api/v3/marketplace/products/send"
payload = {
"variant_ids": ["<string>"],
"recipient_email": "<string>",
"recipient_first_name": "<string>",
"recipient_last_name": "<string>",
"sender_first_name": "<string>",
"sender_last_name": "<string>",
"sender_email": "<string>",
"sender_organization_name": "<string>",
"message": "<string>",
"gift_exchange_enabled": True,
"meeting_url": "<string>",
"require_approval": True
}
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({
variant_ids: ['<string>'],
recipient_email: '<string>',
recipient_first_name: '<string>',
recipient_last_name: '<string>',
sender_first_name: '<string>',
sender_last_name: '<string>',
sender_email: '<string>',
sender_organization_name: '<string>',
message: '<string>',
gift_exchange_enabled: true,
meeting_url: '<string>',
require_approval: true
})
};
fetch('https://app.staging.sendo.so/api/v3/marketplace/products/send', 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://app.staging.sendo.so/api/v3/marketplace/products/send",
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([
'variant_ids' => [
'<string>'
],
'recipient_email' => '<string>',
'recipient_first_name' => '<string>',
'recipient_last_name' => '<string>',
'sender_first_name' => '<string>',
'sender_last_name' => '<string>',
'sender_email' => '<string>',
'sender_organization_name' => '<string>',
'message' => '<string>',
'gift_exchange_enabled' => true,
'meeting_url' => '<string>',
'require_approval' => true
]),
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://app.staging.sendo.so/api/v3/marketplace/products/send"
payload := strings.NewReader("{\n \"variant_ids\": [\n \"<string>\"\n ],\n \"recipient_email\": \"<string>\",\n \"recipient_first_name\": \"<string>\",\n \"recipient_last_name\": \"<string>\",\n \"sender_first_name\": \"<string>\",\n \"sender_last_name\": \"<string>\",\n \"sender_email\": \"<string>\",\n \"sender_organization_name\": \"<string>\",\n \"message\": \"<string>\",\n \"gift_exchange_enabled\": true,\n \"meeting_url\": \"<string>\",\n \"require_approval\": true\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://app.staging.sendo.so/api/v3/marketplace/products/send")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"variant_ids\": [\n \"<string>\"\n ],\n \"recipient_email\": \"<string>\",\n \"recipient_first_name\": \"<string>\",\n \"recipient_last_name\": \"<string>\",\n \"sender_first_name\": \"<string>\",\n \"sender_last_name\": \"<string>\",\n \"sender_email\": \"<string>\",\n \"sender_organization_name\": \"<string>\",\n \"message\": \"<string>\",\n \"gift_exchange_enabled\": true,\n \"meeting_url\": \"<string>\",\n \"require_approval\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.staging.sendo.so/api/v3/marketplace/products/send")
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 \"variant_ids\": [\n \"<string>\"\n ],\n \"recipient_email\": \"<string>\",\n \"recipient_first_name\": \"<string>\",\n \"recipient_last_name\": \"<string>\",\n \"sender_first_name\": \"<string>\",\n \"sender_last_name\": \"<string>\",\n \"sender_email\": \"<string>\",\n \"sender_organization_name\": \"<string>\",\n \"message\": \"<string>\",\n \"gift_exchange_enabled\": true,\n \"meeting_url\": \"<string>\",\n \"require_approval\": true\n}"
response = http.request(request)
puts response.read_body{
"products": [
{
"variant_id": "<string>"
}
],
"send": {
"id": "<string>"
}
}Required Auth Scopes
marketplace or smartsend
Body
The catalog product variant ids (fetched from the marketplace) to be sent.
Note that currently only one product variant can be sent at a time. If more
than one product variant is sent, only the first one will be processed.
The email of the recipient.
The first name of the recipient.
The last name of the recipient.
The first name of the sender.
The last name of the sender.
The email of the sender.
The organization name of the sender.
An optional message to include with the product.
Optional parameter. If set to true, recipients will be able to exchange the gift for a similar value or lower value item available in the marketplace.
An optional URL to a meeting.
Optional parameter. If set to true, the send will be placed on hold for a manager to approve it from the send tracker.
Response
Previous
Get Gift RecommendationsRetrieves a list of recommendations for a given recipient email.
Next
⌘I
Send a Product (variant)
curl --request POST \
--url https://app.staging.sendo.so/api/v3/marketplace/products/send \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"variant_ids": [
"<string>"
],
"recipient_email": "<string>",
"recipient_first_name": "<string>",
"recipient_last_name": "<string>",
"sender_first_name": "<string>",
"sender_last_name": "<string>",
"sender_email": "<string>",
"sender_organization_name": "<string>",
"message": "<string>",
"gift_exchange_enabled": true,
"meeting_url": "<string>",
"require_approval": true
}
'import requests
url = "https://app.staging.sendo.so/api/v3/marketplace/products/send"
payload = {
"variant_ids": ["<string>"],
"recipient_email": "<string>",
"recipient_first_name": "<string>",
"recipient_last_name": "<string>",
"sender_first_name": "<string>",
"sender_last_name": "<string>",
"sender_email": "<string>",
"sender_organization_name": "<string>",
"message": "<string>",
"gift_exchange_enabled": True,
"meeting_url": "<string>",
"require_approval": True
}
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({
variant_ids: ['<string>'],
recipient_email: '<string>',
recipient_first_name: '<string>',
recipient_last_name: '<string>',
sender_first_name: '<string>',
sender_last_name: '<string>',
sender_email: '<string>',
sender_organization_name: '<string>',
message: '<string>',
gift_exchange_enabled: true,
meeting_url: '<string>',
require_approval: true
})
};
fetch('https://app.staging.sendo.so/api/v3/marketplace/products/send', 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://app.staging.sendo.so/api/v3/marketplace/products/send",
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([
'variant_ids' => [
'<string>'
],
'recipient_email' => '<string>',
'recipient_first_name' => '<string>',
'recipient_last_name' => '<string>',
'sender_first_name' => '<string>',
'sender_last_name' => '<string>',
'sender_email' => '<string>',
'sender_organization_name' => '<string>',
'message' => '<string>',
'gift_exchange_enabled' => true,
'meeting_url' => '<string>',
'require_approval' => true
]),
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://app.staging.sendo.so/api/v3/marketplace/products/send"
payload := strings.NewReader("{\n \"variant_ids\": [\n \"<string>\"\n ],\n \"recipient_email\": \"<string>\",\n \"recipient_first_name\": \"<string>\",\n \"recipient_last_name\": \"<string>\",\n \"sender_first_name\": \"<string>\",\n \"sender_last_name\": \"<string>\",\n \"sender_email\": \"<string>\",\n \"sender_organization_name\": \"<string>\",\n \"message\": \"<string>\",\n \"gift_exchange_enabled\": true,\n \"meeting_url\": \"<string>\",\n \"require_approval\": true\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://app.staging.sendo.so/api/v3/marketplace/products/send")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"variant_ids\": [\n \"<string>\"\n ],\n \"recipient_email\": \"<string>\",\n \"recipient_first_name\": \"<string>\",\n \"recipient_last_name\": \"<string>\",\n \"sender_first_name\": \"<string>\",\n \"sender_last_name\": \"<string>\",\n \"sender_email\": \"<string>\",\n \"sender_organization_name\": \"<string>\",\n \"message\": \"<string>\",\n \"gift_exchange_enabled\": true,\n \"meeting_url\": \"<string>\",\n \"require_approval\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.staging.sendo.so/api/v3/marketplace/products/send")
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 \"variant_ids\": [\n \"<string>\"\n ],\n \"recipient_email\": \"<string>\",\n \"recipient_first_name\": \"<string>\",\n \"recipient_last_name\": \"<string>\",\n \"sender_first_name\": \"<string>\",\n \"sender_last_name\": \"<string>\",\n \"sender_email\": \"<string>\",\n \"sender_organization_name\": \"<string>\",\n \"message\": \"<string>\",\n \"gift_exchange_enabled\": true,\n \"meeting_url\": \"<string>\",\n \"require_approval\": true\n}"
response = http.request(request)
puts response.read_body{
"products": [
{
"variant_id": "<string>"
}
],
"send": {
"id": "<string>"
}
}