Create a Thnks Redemption URL via Webhook
curl --request POST \
--url https://admin.thnks.com/api/v1/webhooks/gift_requests \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"gift_id": 123,
"utm_campaign_id": "<string>",
"recipients": [
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"message": "<string>"
}
]
}
'import requests
url = "https://admin.thnks.com/api/v1/webhooks/gift_requests"
payload = {
"gift_id": 123,
"utm_campaign_id": "<string>",
"recipients": [
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"message": "<string>"
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
gift_id: 123,
utm_campaign_id: '<string>',
recipients: [
{
email: '<string>',
first_name: '<string>',
last_name: '<string>',
message: '<string>'
}
]
})
};
fetch('https://admin.thnks.com/api/v1/webhooks/gift_requests', 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://admin.thnks.com/api/v1/webhooks/gift_requests",
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([
'gift_id' => 123,
'utm_campaign_id' => '<string>',
'recipients' => [
[
'email' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'message' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://admin.thnks.com/api/v1/webhooks/gift_requests"
payload := strings.NewReader("{\n \"gift_id\": 123,\n \"utm_campaign_id\": \"<string>\",\n \"recipients\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://admin.thnks.com/api/v1/webhooks/gift_requests")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"gift_id\": 123,\n \"utm_campaign_id\": \"<string>\",\n \"recipients\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://admin.thnks.com/api/v1/webhooks/gift_requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"gift_id\": 123,\n \"utm_campaign_id\": \"<string>\",\n \"recipients\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "GiftRequest created successfully.",
"data": {
"id": 123,
"recipients": [
{
"recipient_transaction_id": 456,
"email": "some@test.com",
"phone_number": "",
"gift_redemption_url": "https://...",
"gift_donation_url": "https://..."
}
]
}
}
Thnks Endpoints
Create a Thnks Redemption URL via Webhook
POST
/
webhooks
/
gift_requests
Create a Thnks Redemption URL via Webhook
curl --request POST \
--url https://admin.thnks.com/api/v1/webhooks/gift_requests \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"gift_id": 123,
"utm_campaign_id": "<string>",
"recipients": [
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"message": "<string>"
}
]
}
'import requests
url = "https://admin.thnks.com/api/v1/webhooks/gift_requests"
payload = {
"gift_id": 123,
"utm_campaign_id": "<string>",
"recipients": [
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"message": "<string>"
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
gift_id: 123,
utm_campaign_id: '<string>',
recipients: [
{
email: '<string>',
first_name: '<string>',
last_name: '<string>',
message: '<string>'
}
]
})
};
fetch('https://admin.thnks.com/api/v1/webhooks/gift_requests', 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://admin.thnks.com/api/v1/webhooks/gift_requests",
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([
'gift_id' => 123,
'utm_campaign_id' => '<string>',
'recipients' => [
[
'email' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'message' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://admin.thnks.com/api/v1/webhooks/gift_requests"
payload := strings.NewReader("{\n \"gift_id\": 123,\n \"utm_campaign_id\": \"<string>\",\n \"recipients\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://admin.thnks.com/api/v1/webhooks/gift_requests")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"gift_id\": 123,\n \"utm_campaign_id\": \"<string>\",\n \"recipients\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://admin.thnks.com/api/v1/webhooks/gift_requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"gift_id\": 123,\n \"utm_campaign_id\": \"<string>\",\n \"recipients\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "GiftRequest created successfully.",
"data": {
"id": 123,
"recipients": [
{
"recipient_transaction_id": 456,
"email": "some@test.com",
"phone_number": "",
"gift_redemption_url": "https://...",
"gift_donation_url": "https://..."
}
]
}
}
Use this Thnks webhook to automatically generate a unique Thnks Redemption URL for embedding in non-Thnks managed campaigns.
string
default:"application/json"
This should always be
application/jsoninteger
required
Variable containing Thnks id of the item(s) the Customer wants to send
string
Optional campaign identifier for tracking attribution in non-Thnks managed campaigns
array
Show properties
Show properties
string
required
Variable containing email address of the recipient
string
Variable containing first name of the recipient (optional)
string
Variable containing last name of the recipient (optional)
string
required
Variable containing the Thnks message. Use
"Hello,\nThank you" instead of "Hello, Thank You" for a multiline ThnksResponse
On success, the API returns a200 response with the following JSON body.
string
Success message. Returns
"GiftRequest created successfully." when the gift request is created.object
Show properties
Show properties
integer
The unique ID of the created gift request
array
Show properties
Show properties
integer
The unique ID of the recipient transaction
string
Email address of the recipient
string
Phone number of the recipient. Returns an empty string when not provided.
string
Unique Thnks Redemption URL for the recipient to accept the Thnks
string
URL for the recipient to donate the gift value to charity instead of redeeming it
{
"message": "GiftRequest created successfully.",
"data": {
"id": 123,
"recipients": [
{
"recipient_transaction_id": 456,
"email": "some@test.com",
"phone_number": "",
"gift_redemption_url": "https://...",
"gift_donation_url": "https://..."
}
]
}
}
⌘I