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.
This should always be
application/jsonVariable containing Thnks id of the item(s) the Customer wants to send
Optional campaign identifier for tracking attribution in non-Thnks managed campaigns
Show properties
Show properties
Variable containing email address of the recipient
Variable containing first name of the recipient (optional)
Variable containing last name of the recipient (optional)
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.
Success message. Returns
"GiftRequest created successfully." when the gift request is created.Show properties
Show properties
The unique ID of the created gift request
Show properties
Show properties
The unique ID of the recipient transaction
Email address of the recipient
Phone number of the recipient. Returns an empty string when not provided.
Unique Thnks Redemption URL for the recipient to accept the Thnks
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