Programs
Update program website settings
Requires manage_settings and access to the attached setting. Only supported nested settings keys are accepted. With multiple linked programs, mode defaults to program_copy; mode=direct requires confirm_shared_update=true, otherwise409 returns the linked-program list. No-op writes return200 with save_mode=direct. The response includes fresh launch context. Changing enabled blur configuration queues image regeneration; recipient portal synchronization follows saving. Requires permission: one of manage_programs.
PATCH
/
admin
/
program
/
{program_id}
/
launch-settings
Update program website settings
curl --request PATCH \
--url https://api.gratona.com/v1/admin/program/{program_id}/launch-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"settings": {
"sponsorship_amount_mode": "remaining_balance",
"sponsorship_level_thresholds": "{`25`:10,`50`:20}",
"allow_sponsorship_over_target": true,
"relationship_only_sponsorships": true,
"campaign_theme": "",
"directory_columns": "<string>",
"color_theme": "<string>",
"child_sponsorship_button_text": "Sponsor now",
"campaign_sponsorship_button_text": "Sponsor now",
"disable_program_link": true,
"enable_public_add_entity_search": true,
"display_info": true,
"display_percent": true,
"display_sponsorship_amount": true,
"display_recipients_bio": true,
"display_waiting_time": true,
"display_all": true,
"descending_order": true,
"enable_featured_recipients": true,
"least_funded_first": true,
"hide_noimage_recipients": true,
"blur_recipients": true,
"placeholder": "",
"remove_amounts": true,
"allow_custom_sponsorship_amounts": true,
"designations": true,
"allow_donor_additional_gift_designation_choice": true,
"disable_multiple_designations": true,
"stripe": true,
"checks": true,
"cash": true,
"wire_transfer": true,
"hide_payment_method": "hidden",
"hide_frequency": "hidden",
"processing_fee": true,
"select_processing_fee": true,
"processing_percentage": "3",
"display_in_honor_of": true,
"allow_start_date": true,
"login_box": true,
"recipient_portal_enabled": true,
"recipient_portal_view_donors": true,
"recipient_portal_view_donations": true,
"recipient_portal_view_donation_amounts": true,
"recipient_portal_show_donor_names": "first_name",
"recipient_portal_public_fundraising_page": true,
"recipient_portal_edit_profile": true,
"recipient_portal_message_donors": true,
"recipient_portal_message_requires_approval": true,
"show_donation_amounts": true,
"show_donor_names": "first_name",
"allow_recurring_donations": true,
"completed_accept_donations": true,
"default_amount": "25",
"default_frequency": "one_time",
"show_payment": true
},
"mode": "program_copy",
"confirm_shared_update": false
}
'import requests
url = "https://api.gratona.com/v1/admin/program/{program_id}/launch-settings"
payload = {
"settings": {
"sponsorship_amount_mode": "remaining_balance",
"sponsorship_level_thresholds": "{`25`:10,`50`:20}",
"allow_sponsorship_over_target": True,
"relationship_only_sponsorships": True,
"campaign_theme": "",
"directory_columns": "<string>",
"color_theme": "<string>",
"child_sponsorship_button_text": "Sponsor now",
"campaign_sponsorship_button_text": "Sponsor now",
"disable_program_link": True,
"enable_public_add_entity_search": True,
"display_info": True,
"display_percent": True,
"display_sponsorship_amount": True,
"display_recipients_bio": True,
"display_waiting_time": True,
"display_all": True,
"descending_order": True,
"enable_featured_recipients": True,
"least_funded_first": True,
"hide_noimage_recipients": True,
"blur_recipients": True,
"placeholder": "",
"remove_amounts": True,
"allow_custom_sponsorship_amounts": True,
"designations": True,
"allow_donor_additional_gift_designation_choice": True,
"disable_multiple_designations": True,
"stripe": True,
"checks": True,
"cash": True,
"wire_transfer": True,
"hide_payment_method": "hidden",
"hide_frequency": "hidden",
"processing_fee": True,
"select_processing_fee": True,
"processing_percentage": "3",
"display_in_honor_of": True,
"allow_start_date": True,
"login_box": True,
"recipient_portal_enabled": True,
"recipient_portal_view_donors": True,
"recipient_portal_view_donations": True,
"recipient_portal_view_donation_amounts": True,
"recipient_portal_show_donor_names": "first_name",
"recipient_portal_public_fundraising_page": True,
"recipient_portal_edit_profile": True,
"recipient_portal_message_donors": True,
"recipient_portal_message_requires_approval": True,
"show_donation_amounts": True,
"show_donor_names": "first_name",
"allow_recurring_donations": True,
"completed_accept_donations": True,
"default_amount": "25",
"default_frequency": "one_time",
"show_payment": True
},
"mode": "program_copy",
"confirm_shared_update": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
settings: {
sponsorship_amount_mode: 'remaining_balance',
sponsorship_level_thresholds: '{`25`:10,`50`:20}',
allow_sponsorship_over_target: true,
relationship_only_sponsorships: true,
campaign_theme: '',
directory_columns: '<string>',
color_theme: '<string>',
child_sponsorship_button_text: 'Sponsor now',
campaign_sponsorship_button_text: 'Sponsor now',
disable_program_link: true,
enable_public_add_entity_search: true,
display_info: true,
display_percent: true,
display_sponsorship_amount: true,
display_recipients_bio: true,
display_waiting_time: true,
display_all: true,
descending_order: true,
enable_featured_recipients: true,
least_funded_first: true,
hide_noimage_recipients: true,
blur_recipients: true,
placeholder: '',
remove_amounts: true,
allow_custom_sponsorship_amounts: true,
designations: true,
allow_donor_additional_gift_designation_choice: true,
disable_multiple_designations: true,
stripe: true,
checks: true,
cash: true,
wire_transfer: true,
hide_payment_method: 'hidden',
hide_frequency: 'hidden',
processing_fee: true,
select_processing_fee: true,
processing_percentage: '3',
display_in_honor_of: true,
allow_start_date: true,
login_box: true,
recipient_portal_enabled: true,
recipient_portal_view_donors: true,
recipient_portal_view_donations: true,
recipient_portal_view_donation_amounts: true,
recipient_portal_show_donor_names: 'first_name',
recipient_portal_public_fundraising_page: true,
recipient_portal_edit_profile: true,
recipient_portal_message_donors: true,
recipient_portal_message_requires_approval: true,
show_donation_amounts: true,
show_donor_names: 'first_name',
allow_recurring_donations: true,
completed_accept_donations: true,
default_amount: '25',
default_frequency: 'one_time',
show_payment: true
},
mode: 'program_copy',
confirm_shared_update: false
})
};
fetch('https://api.gratona.com/v1/admin/program/{program_id}/launch-settings', 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.gratona.com/v1/admin/program/{program_id}/launch-settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'settings' => [
'sponsorship_amount_mode' => 'remaining_balance',
'sponsorship_level_thresholds' => '{`25`:10,`50`:20}',
'allow_sponsorship_over_target' => true,
'relationship_only_sponsorships' => true,
'campaign_theme' => '',
'directory_columns' => '<string>',
'color_theme' => '<string>',
'child_sponsorship_button_text' => 'Sponsor now',
'campaign_sponsorship_button_text' => 'Sponsor now',
'disable_program_link' => true,
'enable_public_add_entity_search' => true,
'display_info' => true,
'display_percent' => true,
'display_sponsorship_amount' => true,
'display_recipients_bio' => true,
'display_waiting_time' => true,
'display_all' => true,
'descending_order' => true,
'enable_featured_recipients' => true,
'least_funded_first' => true,
'hide_noimage_recipients' => true,
'blur_recipients' => true,
'placeholder' => '',
'remove_amounts' => true,
'allow_custom_sponsorship_amounts' => true,
'designations' => true,
'allow_donor_additional_gift_designation_choice' => true,
'disable_multiple_designations' => true,
'stripe' => true,
'checks' => true,
'cash' => true,
'wire_transfer' => true,
'hide_payment_method' => 'hidden',
'hide_frequency' => 'hidden',
'processing_fee' => true,
'select_processing_fee' => true,
'processing_percentage' => '3',
'display_in_honor_of' => true,
'allow_start_date' => true,
'login_box' => true,
'recipient_portal_enabled' => true,
'recipient_portal_view_donors' => true,
'recipient_portal_view_donations' => true,
'recipient_portal_view_donation_amounts' => true,
'recipient_portal_show_donor_names' => 'first_name',
'recipient_portal_public_fundraising_page' => true,
'recipient_portal_edit_profile' => true,
'recipient_portal_message_donors' => true,
'recipient_portal_message_requires_approval' => true,
'show_donation_amounts' => true,
'show_donor_names' => 'first_name',
'allow_recurring_donations' => true,
'completed_accept_donations' => true,
'default_amount' => '25',
'default_frequency' => 'one_time',
'show_payment' => true
],
'mode' => 'program_copy',
'confirm_shared_update' => false
]),
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://api.gratona.com/v1/admin/program/{program_id}/launch-settings"
payload := strings.NewReader("{\n \"settings\": {\n \"sponsorship_amount_mode\": \"remaining_balance\",\n \"sponsorship_level_thresholds\": \"{`25`:10,`50`:20}\",\n \"allow_sponsorship_over_target\": true,\n \"relationship_only_sponsorships\": true,\n \"campaign_theme\": \"\",\n \"directory_columns\": \"<string>\",\n \"color_theme\": \"<string>\",\n \"child_sponsorship_button_text\": \"Sponsor now\",\n \"campaign_sponsorship_button_text\": \"Sponsor now\",\n \"disable_program_link\": true,\n \"enable_public_add_entity_search\": true,\n \"display_info\": true,\n \"display_percent\": true,\n \"display_sponsorship_amount\": true,\n \"display_recipients_bio\": true,\n \"display_waiting_time\": true,\n \"display_all\": true,\n \"descending_order\": true,\n \"enable_featured_recipients\": true,\n \"least_funded_first\": true,\n \"hide_noimage_recipients\": true,\n \"blur_recipients\": true,\n \"placeholder\": \"\",\n \"remove_amounts\": true,\n \"allow_custom_sponsorship_amounts\": true,\n \"designations\": true,\n \"allow_donor_additional_gift_designation_choice\": true,\n \"disable_multiple_designations\": true,\n \"stripe\": true,\n \"checks\": true,\n \"cash\": true,\n \"wire_transfer\": true,\n \"hide_payment_method\": \"hidden\",\n \"hide_frequency\": \"hidden\",\n \"processing_fee\": true,\n \"select_processing_fee\": true,\n \"processing_percentage\": \"3\",\n \"display_in_honor_of\": true,\n \"allow_start_date\": true,\n \"login_box\": true,\n \"recipient_portal_enabled\": true,\n \"recipient_portal_view_donors\": true,\n \"recipient_portal_view_donations\": true,\n \"recipient_portal_view_donation_amounts\": true,\n \"recipient_portal_show_donor_names\": \"first_name\",\n \"recipient_portal_public_fundraising_page\": true,\n \"recipient_portal_edit_profile\": true,\n \"recipient_portal_message_donors\": true,\n \"recipient_portal_message_requires_approval\": true,\n \"show_donation_amounts\": true,\n \"show_donor_names\": \"first_name\",\n \"allow_recurring_donations\": true,\n \"completed_accept_donations\": true,\n \"default_amount\": \"25\",\n \"default_frequency\": \"one_time\",\n \"show_payment\": true\n },\n \"mode\": \"program_copy\",\n \"confirm_shared_update\": false\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.gratona.com/v1/admin/program/{program_id}/launch-settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"settings\": {\n \"sponsorship_amount_mode\": \"remaining_balance\",\n \"sponsorship_level_thresholds\": \"{`25`:10,`50`:20}\",\n \"allow_sponsorship_over_target\": true,\n \"relationship_only_sponsorships\": true,\n \"campaign_theme\": \"\",\n \"directory_columns\": \"<string>\",\n \"color_theme\": \"<string>\",\n \"child_sponsorship_button_text\": \"Sponsor now\",\n \"campaign_sponsorship_button_text\": \"Sponsor now\",\n \"disable_program_link\": true,\n \"enable_public_add_entity_search\": true,\n \"display_info\": true,\n \"display_percent\": true,\n \"display_sponsorship_amount\": true,\n \"display_recipients_bio\": true,\n \"display_waiting_time\": true,\n \"display_all\": true,\n \"descending_order\": true,\n \"enable_featured_recipients\": true,\n \"least_funded_first\": true,\n \"hide_noimage_recipients\": true,\n \"blur_recipients\": true,\n \"placeholder\": \"\",\n \"remove_amounts\": true,\n \"allow_custom_sponsorship_amounts\": true,\n \"designations\": true,\n \"allow_donor_additional_gift_designation_choice\": true,\n \"disable_multiple_designations\": true,\n \"stripe\": true,\n \"checks\": true,\n \"cash\": true,\n \"wire_transfer\": true,\n \"hide_payment_method\": \"hidden\",\n \"hide_frequency\": \"hidden\",\n \"processing_fee\": true,\n \"select_processing_fee\": true,\n \"processing_percentage\": \"3\",\n \"display_in_honor_of\": true,\n \"allow_start_date\": true,\n \"login_box\": true,\n \"recipient_portal_enabled\": true,\n \"recipient_portal_view_donors\": true,\n \"recipient_portal_view_donations\": true,\n \"recipient_portal_view_donation_amounts\": true,\n \"recipient_portal_show_donor_names\": \"first_name\",\n \"recipient_portal_public_fundraising_page\": true,\n \"recipient_portal_edit_profile\": true,\n \"recipient_portal_message_donors\": true,\n \"recipient_portal_message_requires_approval\": true,\n \"show_donation_amounts\": true,\n \"show_donor_names\": \"first_name\",\n \"allow_recurring_donations\": true,\n \"completed_accept_donations\": true,\n \"default_amount\": \"25\",\n \"default_frequency\": \"one_time\",\n \"show_payment\": true\n },\n \"mode\": \"program_copy\",\n \"confirm_shared_update\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/program/{program_id}/launch-settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"settings\": {\n \"sponsorship_amount_mode\": \"remaining_balance\",\n \"sponsorship_level_thresholds\": \"{`25`:10,`50`:20}\",\n \"allow_sponsorship_over_target\": true,\n \"relationship_only_sponsorships\": true,\n \"campaign_theme\": \"\",\n \"directory_columns\": \"<string>\",\n \"color_theme\": \"<string>\",\n \"child_sponsorship_button_text\": \"Sponsor now\",\n \"campaign_sponsorship_button_text\": \"Sponsor now\",\n \"disable_program_link\": true,\n \"enable_public_add_entity_search\": true,\n \"display_info\": true,\n \"display_percent\": true,\n \"display_sponsorship_amount\": true,\n \"display_recipients_bio\": true,\n \"display_waiting_time\": true,\n \"display_all\": true,\n \"descending_order\": true,\n \"enable_featured_recipients\": true,\n \"least_funded_first\": true,\n \"hide_noimage_recipients\": true,\n \"blur_recipients\": true,\n \"placeholder\": \"\",\n \"remove_amounts\": true,\n \"allow_custom_sponsorship_amounts\": true,\n \"designations\": true,\n \"allow_donor_additional_gift_designation_choice\": true,\n \"disable_multiple_designations\": true,\n \"stripe\": true,\n \"checks\": true,\n \"cash\": true,\n \"wire_transfer\": true,\n \"hide_payment_method\": \"hidden\",\n \"hide_frequency\": \"hidden\",\n \"processing_fee\": true,\n \"select_processing_fee\": true,\n \"processing_percentage\": \"3\",\n \"display_in_honor_of\": true,\n \"allow_start_date\": true,\n \"login_box\": true,\n \"recipient_portal_enabled\": true,\n \"recipient_portal_view_donors\": true,\n \"recipient_portal_view_donations\": true,\n \"recipient_portal_view_donation_amounts\": true,\n \"recipient_portal_show_donor_names\": \"first_name\",\n \"recipient_portal_public_fundraising_page\": true,\n \"recipient_portal_edit_profile\": true,\n \"recipient_portal_message_donors\": true,\n \"recipient_portal_message_requires_approval\": true,\n \"show_donation_amounts\": true,\n \"show_donor_names\": \"first_name\",\n \"allow_recurring_donations\": true,\n \"completed_accept_donations\": true,\n \"default_amount\": \"25\",\n \"default_frequency\": \"one_time\",\n \"show_payment\": true\n },\n \"mode\": \"program_copy\",\n \"confirm_shared_update\": false\n}"
response = http.request(request)
puts response.read_body{
"message": "Website settings updated.",
"save_mode": "direct",
"context": {
"program": {
"id": 42,
"client_id": 12,
"name": "Education",
"prefix": "<string>",
"setting_id": 123,
"program_type": "<string>",
"program_type_label": "Number of Sponsors"
},
"readiness": {
"program_id": 42,
"program_name": "Education",
"program_type": "number",
"program_type_label": "Number of Sponsors",
"attached_modules": {
"settings_id": 42,
"donor_hysform_id": 42,
"hysform_id": 42,
"emailset_id": 42,
"smsset_id": 42
},
"email_required": true,
"steps": [
{
"key": "donor_form",
"label": "Donor form",
"state": "complete",
"next_action": "Attach a donor form"
}
],
"next_step_key": "entity_form",
"is_launch_ready": false,
"completion": {
"complete": 5,
"required": 7
}
},
"setting": {
"id": 123,
"name": "<string>",
"linked_programs_count": 1,
"linked_programs": [
{
"id": 42,
"name": "Education",
"prefix": "EDU"
}
],
"is_shared": false,
"can_manage": true,
"advanced_url": "/app/program-settings",
"copy_on_save_default": false
},
"branding": {
"attribution_removed": false
},
"visual_settings": {},
"preview": {
"color_theme": {
"color": "indigo",
"color_level": 600
},
"organization_color_theme": {
"color": "indigo",
"color_level": 600
},
"check_payment_instructions": "Mail checks to the organization."
},
"additional_gift_routing": {
"allow_donor_choice": true,
"available_gifts": [
{
"id": 42,
"name": "School supplies",
"code": "SUPPLIES"
}
],
"target_entities": [
{
"id": 42,
"name": "Education fund",
"program_id": 12
}
],
"target_entities_exist": true,
"routes": {}
},
"public_links": {
"base_url": "https://app.gratona.com",
"primary_url": "<string>",
"items": [
{
"key": "donation_page",
"label": "Donation Page",
"url": "<string>",
"description": "<string>"
}
],
"donor_login": "<string>",
"program_login": "<string>",
"recipient_portal_login": "<string>"
},
"embed": {
"smart": {
"recommended": true,
"config": {
"type": "sponsorship",
"clientId": "12",
"programId": "42",
"programSlug": "<string>",
"tripSlug": "<string>",
"baseUrl": "https://app.gratona.com",
"defaultAmount": null,
"defaultFrequency": "<string>"
},
"preview_url": "<string>"
}
}
}
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Not Found",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}Authorizations
bearerAuthapiKeyAuth
Passport bearer token authentication for legacy admin sessions.
Path Parameters
Program id in the current organization.
Body
application/json
Validated request fields for this operation.
⌘I
Update program website settings
curl --request PATCH \
--url https://api.gratona.com/v1/admin/program/{program_id}/launch-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"settings": {
"sponsorship_amount_mode": "remaining_balance",
"sponsorship_level_thresholds": "{`25`:10,`50`:20}",
"allow_sponsorship_over_target": true,
"relationship_only_sponsorships": true,
"campaign_theme": "",
"directory_columns": "<string>",
"color_theme": "<string>",
"child_sponsorship_button_text": "Sponsor now",
"campaign_sponsorship_button_text": "Sponsor now",
"disable_program_link": true,
"enable_public_add_entity_search": true,
"display_info": true,
"display_percent": true,
"display_sponsorship_amount": true,
"display_recipients_bio": true,
"display_waiting_time": true,
"display_all": true,
"descending_order": true,
"enable_featured_recipients": true,
"least_funded_first": true,
"hide_noimage_recipients": true,
"blur_recipients": true,
"placeholder": "",
"remove_amounts": true,
"allow_custom_sponsorship_amounts": true,
"designations": true,
"allow_donor_additional_gift_designation_choice": true,
"disable_multiple_designations": true,
"stripe": true,
"checks": true,
"cash": true,
"wire_transfer": true,
"hide_payment_method": "hidden",
"hide_frequency": "hidden",
"processing_fee": true,
"select_processing_fee": true,
"processing_percentage": "3",
"display_in_honor_of": true,
"allow_start_date": true,
"login_box": true,
"recipient_portal_enabled": true,
"recipient_portal_view_donors": true,
"recipient_portal_view_donations": true,
"recipient_portal_view_donation_amounts": true,
"recipient_portal_show_donor_names": "first_name",
"recipient_portal_public_fundraising_page": true,
"recipient_portal_edit_profile": true,
"recipient_portal_message_donors": true,
"recipient_portal_message_requires_approval": true,
"show_donation_amounts": true,
"show_donor_names": "first_name",
"allow_recurring_donations": true,
"completed_accept_donations": true,
"default_amount": "25",
"default_frequency": "one_time",
"show_payment": true
},
"mode": "program_copy",
"confirm_shared_update": false
}
'import requests
url = "https://api.gratona.com/v1/admin/program/{program_id}/launch-settings"
payload = {
"settings": {
"sponsorship_amount_mode": "remaining_balance",
"sponsorship_level_thresholds": "{`25`:10,`50`:20}",
"allow_sponsorship_over_target": True,
"relationship_only_sponsorships": True,
"campaign_theme": "",
"directory_columns": "<string>",
"color_theme": "<string>",
"child_sponsorship_button_text": "Sponsor now",
"campaign_sponsorship_button_text": "Sponsor now",
"disable_program_link": True,
"enable_public_add_entity_search": True,
"display_info": True,
"display_percent": True,
"display_sponsorship_amount": True,
"display_recipients_bio": True,
"display_waiting_time": True,
"display_all": True,
"descending_order": True,
"enable_featured_recipients": True,
"least_funded_first": True,
"hide_noimage_recipients": True,
"blur_recipients": True,
"placeholder": "",
"remove_amounts": True,
"allow_custom_sponsorship_amounts": True,
"designations": True,
"allow_donor_additional_gift_designation_choice": True,
"disable_multiple_designations": True,
"stripe": True,
"checks": True,
"cash": True,
"wire_transfer": True,
"hide_payment_method": "hidden",
"hide_frequency": "hidden",
"processing_fee": True,
"select_processing_fee": True,
"processing_percentage": "3",
"display_in_honor_of": True,
"allow_start_date": True,
"login_box": True,
"recipient_portal_enabled": True,
"recipient_portal_view_donors": True,
"recipient_portal_view_donations": True,
"recipient_portal_view_donation_amounts": True,
"recipient_portal_show_donor_names": "first_name",
"recipient_portal_public_fundraising_page": True,
"recipient_portal_edit_profile": True,
"recipient_portal_message_donors": True,
"recipient_portal_message_requires_approval": True,
"show_donation_amounts": True,
"show_donor_names": "first_name",
"allow_recurring_donations": True,
"completed_accept_donations": True,
"default_amount": "25",
"default_frequency": "one_time",
"show_payment": True
},
"mode": "program_copy",
"confirm_shared_update": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
settings: {
sponsorship_amount_mode: 'remaining_balance',
sponsorship_level_thresholds: '{`25`:10,`50`:20}',
allow_sponsorship_over_target: true,
relationship_only_sponsorships: true,
campaign_theme: '',
directory_columns: '<string>',
color_theme: '<string>',
child_sponsorship_button_text: 'Sponsor now',
campaign_sponsorship_button_text: 'Sponsor now',
disable_program_link: true,
enable_public_add_entity_search: true,
display_info: true,
display_percent: true,
display_sponsorship_amount: true,
display_recipients_bio: true,
display_waiting_time: true,
display_all: true,
descending_order: true,
enable_featured_recipients: true,
least_funded_first: true,
hide_noimage_recipients: true,
blur_recipients: true,
placeholder: '',
remove_amounts: true,
allow_custom_sponsorship_amounts: true,
designations: true,
allow_donor_additional_gift_designation_choice: true,
disable_multiple_designations: true,
stripe: true,
checks: true,
cash: true,
wire_transfer: true,
hide_payment_method: 'hidden',
hide_frequency: 'hidden',
processing_fee: true,
select_processing_fee: true,
processing_percentage: '3',
display_in_honor_of: true,
allow_start_date: true,
login_box: true,
recipient_portal_enabled: true,
recipient_portal_view_donors: true,
recipient_portal_view_donations: true,
recipient_portal_view_donation_amounts: true,
recipient_portal_show_donor_names: 'first_name',
recipient_portal_public_fundraising_page: true,
recipient_portal_edit_profile: true,
recipient_portal_message_donors: true,
recipient_portal_message_requires_approval: true,
show_donation_amounts: true,
show_donor_names: 'first_name',
allow_recurring_donations: true,
completed_accept_donations: true,
default_amount: '25',
default_frequency: 'one_time',
show_payment: true
},
mode: 'program_copy',
confirm_shared_update: false
})
};
fetch('https://api.gratona.com/v1/admin/program/{program_id}/launch-settings', 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.gratona.com/v1/admin/program/{program_id}/launch-settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'settings' => [
'sponsorship_amount_mode' => 'remaining_balance',
'sponsorship_level_thresholds' => '{`25`:10,`50`:20}',
'allow_sponsorship_over_target' => true,
'relationship_only_sponsorships' => true,
'campaign_theme' => '',
'directory_columns' => '<string>',
'color_theme' => '<string>',
'child_sponsorship_button_text' => 'Sponsor now',
'campaign_sponsorship_button_text' => 'Sponsor now',
'disable_program_link' => true,
'enable_public_add_entity_search' => true,
'display_info' => true,
'display_percent' => true,
'display_sponsorship_amount' => true,
'display_recipients_bio' => true,
'display_waiting_time' => true,
'display_all' => true,
'descending_order' => true,
'enable_featured_recipients' => true,
'least_funded_first' => true,
'hide_noimage_recipients' => true,
'blur_recipients' => true,
'placeholder' => '',
'remove_amounts' => true,
'allow_custom_sponsorship_amounts' => true,
'designations' => true,
'allow_donor_additional_gift_designation_choice' => true,
'disable_multiple_designations' => true,
'stripe' => true,
'checks' => true,
'cash' => true,
'wire_transfer' => true,
'hide_payment_method' => 'hidden',
'hide_frequency' => 'hidden',
'processing_fee' => true,
'select_processing_fee' => true,
'processing_percentage' => '3',
'display_in_honor_of' => true,
'allow_start_date' => true,
'login_box' => true,
'recipient_portal_enabled' => true,
'recipient_portal_view_donors' => true,
'recipient_portal_view_donations' => true,
'recipient_portal_view_donation_amounts' => true,
'recipient_portal_show_donor_names' => 'first_name',
'recipient_portal_public_fundraising_page' => true,
'recipient_portal_edit_profile' => true,
'recipient_portal_message_donors' => true,
'recipient_portal_message_requires_approval' => true,
'show_donation_amounts' => true,
'show_donor_names' => 'first_name',
'allow_recurring_donations' => true,
'completed_accept_donations' => true,
'default_amount' => '25',
'default_frequency' => 'one_time',
'show_payment' => true
],
'mode' => 'program_copy',
'confirm_shared_update' => false
]),
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://api.gratona.com/v1/admin/program/{program_id}/launch-settings"
payload := strings.NewReader("{\n \"settings\": {\n \"sponsorship_amount_mode\": \"remaining_balance\",\n \"sponsorship_level_thresholds\": \"{`25`:10,`50`:20}\",\n \"allow_sponsorship_over_target\": true,\n \"relationship_only_sponsorships\": true,\n \"campaign_theme\": \"\",\n \"directory_columns\": \"<string>\",\n \"color_theme\": \"<string>\",\n \"child_sponsorship_button_text\": \"Sponsor now\",\n \"campaign_sponsorship_button_text\": \"Sponsor now\",\n \"disable_program_link\": true,\n \"enable_public_add_entity_search\": true,\n \"display_info\": true,\n \"display_percent\": true,\n \"display_sponsorship_amount\": true,\n \"display_recipients_bio\": true,\n \"display_waiting_time\": true,\n \"display_all\": true,\n \"descending_order\": true,\n \"enable_featured_recipients\": true,\n \"least_funded_first\": true,\n \"hide_noimage_recipients\": true,\n \"blur_recipients\": true,\n \"placeholder\": \"\",\n \"remove_amounts\": true,\n \"allow_custom_sponsorship_amounts\": true,\n \"designations\": true,\n \"allow_donor_additional_gift_designation_choice\": true,\n \"disable_multiple_designations\": true,\n \"stripe\": true,\n \"checks\": true,\n \"cash\": true,\n \"wire_transfer\": true,\n \"hide_payment_method\": \"hidden\",\n \"hide_frequency\": \"hidden\",\n \"processing_fee\": true,\n \"select_processing_fee\": true,\n \"processing_percentage\": \"3\",\n \"display_in_honor_of\": true,\n \"allow_start_date\": true,\n \"login_box\": true,\n \"recipient_portal_enabled\": true,\n \"recipient_portal_view_donors\": true,\n \"recipient_portal_view_donations\": true,\n \"recipient_portal_view_donation_amounts\": true,\n \"recipient_portal_show_donor_names\": \"first_name\",\n \"recipient_portal_public_fundraising_page\": true,\n \"recipient_portal_edit_profile\": true,\n \"recipient_portal_message_donors\": true,\n \"recipient_portal_message_requires_approval\": true,\n \"show_donation_amounts\": true,\n \"show_donor_names\": \"first_name\",\n \"allow_recurring_donations\": true,\n \"completed_accept_donations\": true,\n \"default_amount\": \"25\",\n \"default_frequency\": \"one_time\",\n \"show_payment\": true\n },\n \"mode\": \"program_copy\",\n \"confirm_shared_update\": false\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.gratona.com/v1/admin/program/{program_id}/launch-settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"settings\": {\n \"sponsorship_amount_mode\": \"remaining_balance\",\n \"sponsorship_level_thresholds\": \"{`25`:10,`50`:20}\",\n \"allow_sponsorship_over_target\": true,\n \"relationship_only_sponsorships\": true,\n \"campaign_theme\": \"\",\n \"directory_columns\": \"<string>\",\n \"color_theme\": \"<string>\",\n \"child_sponsorship_button_text\": \"Sponsor now\",\n \"campaign_sponsorship_button_text\": \"Sponsor now\",\n \"disable_program_link\": true,\n \"enable_public_add_entity_search\": true,\n \"display_info\": true,\n \"display_percent\": true,\n \"display_sponsorship_amount\": true,\n \"display_recipients_bio\": true,\n \"display_waiting_time\": true,\n \"display_all\": true,\n \"descending_order\": true,\n \"enable_featured_recipients\": true,\n \"least_funded_first\": true,\n \"hide_noimage_recipients\": true,\n \"blur_recipients\": true,\n \"placeholder\": \"\",\n \"remove_amounts\": true,\n \"allow_custom_sponsorship_amounts\": true,\n \"designations\": true,\n \"allow_donor_additional_gift_designation_choice\": true,\n \"disable_multiple_designations\": true,\n \"stripe\": true,\n \"checks\": true,\n \"cash\": true,\n \"wire_transfer\": true,\n \"hide_payment_method\": \"hidden\",\n \"hide_frequency\": \"hidden\",\n \"processing_fee\": true,\n \"select_processing_fee\": true,\n \"processing_percentage\": \"3\",\n \"display_in_honor_of\": true,\n \"allow_start_date\": true,\n \"login_box\": true,\n \"recipient_portal_enabled\": true,\n \"recipient_portal_view_donors\": true,\n \"recipient_portal_view_donations\": true,\n \"recipient_portal_view_donation_amounts\": true,\n \"recipient_portal_show_donor_names\": \"first_name\",\n \"recipient_portal_public_fundraising_page\": true,\n \"recipient_portal_edit_profile\": true,\n \"recipient_portal_message_donors\": true,\n \"recipient_portal_message_requires_approval\": true,\n \"show_donation_amounts\": true,\n \"show_donor_names\": \"first_name\",\n \"allow_recurring_donations\": true,\n \"completed_accept_donations\": true,\n \"default_amount\": \"25\",\n \"default_frequency\": \"one_time\",\n \"show_payment\": true\n },\n \"mode\": \"program_copy\",\n \"confirm_shared_update\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/program/{program_id}/launch-settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"settings\": {\n \"sponsorship_amount_mode\": \"remaining_balance\",\n \"sponsorship_level_thresholds\": \"{`25`:10,`50`:20}\",\n \"allow_sponsorship_over_target\": true,\n \"relationship_only_sponsorships\": true,\n \"campaign_theme\": \"\",\n \"directory_columns\": \"<string>\",\n \"color_theme\": \"<string>\",\n \"child_sponsorship_button_text\": \"Sponsor now\",\n \"campaign_sponsorship_button_text\": \"Sponsor now\",\n \"disable_program_link\": true,\n \"enable_public_add_entity_search\": true,\n \"display_info\": true,\n \"display_percent\": true,\n \"display_sponsorship_amount\": true,\n \"display_recipients_bio\": true,\n \"display_waiting_time\": true,\n \"display_all\": true,\n \"descending_order\": true,\n \"enable_featured_recipients\": true,\n \"least_funded_first\": true,\n \"hide_noimage_recipients\": true,\n \"blur_recipients\": true,\n \"placeholder\": \"\",\n \"remove_amounts\": true,\n \"allow_custom_sponsorship_amounts\": true,\n \"designations\": true,\n \"allow_donor_additional_gift_designation_choice\": true,\n \"disable_multiple_designations\": true,\n \"stripe\": true,\n \"checks\": true,\n \"cash\": true,\n \"wire_transfer\": true,\n \"hide_payment_method\": \"hidden\",\n \"hide_frequency\": \"hidden\",\n \"processing_fee\": true,\n \"select_processing_fee\": true,\n \"processing_percentage\": \"3\",\n \"display_in_honor_of\": true,\n \"allow_start_date\": true,\n \"login_box\": true,\n \"recipient_portal_enabled\": true,\n \"recipient_portal_view_donors\": true,\n \"recipient_portal_view_donations\": true,\n \"recipient_portal_view_donation_amounts\": true,\n \"recipient_portal_show_donor_names\": \"first_name\",\n \"recipient_portal_public_fundraising_page\": true,\n \"recipient_portal_edit_profile\": true,\n \"recipient_portal_message_donors\": true,\n \"recipient_portal_message_requires_approval\": true,\n \"show_donation_amounts\": true,\n \"show_donor_names\": \"first_name\",\n \"allow_recurring_donations\": true,\n \"completed_accept_donations\": true,\n \"default_amount\": \"25\",\n \"default_frequency\": \"one_time\",\n \"show_payment\": true\n },\n \"mode\": \"program_copy\",\n \"confirm_shared_update\": false\n}"
response = http.request(request)
puts response.read_body{
"message": "Website settings updated.",
"save_mode": "direct",
"context": {
"program": {
"id": 42,
"client_id": 12,
"name": "Education",
"prefix": "<string>",
"setting_id": 123,
"program_type": "<string>",
"program_type_label": "Number of Sponsors"
},
"readiness": {
"program_id": 42,
"program_name": "Education",
"program_type": "number",
"program_type_label": "Number of Sponsors",
"attached_modules": {
"settings_id": 42,
"donor_hysform_id": 42,
"hysform_id": 42,
"emailset_id": 42,
"smsset_id": 42
},
"email_required": true,
"steps": [
{
"key": "donor_form",
"label": "Donor form",
"state": "complete",
"next_action": "Attach a donor form"
}
],
"next_step_key": "entity_form",
"is_launch_ready": false,
"completion": {
"complete": 5,
"required": 7
}
},
"setting": {
"id": 123,
"name": "<string>",
"linked_programs_count": 1,
"linked_programs": [
{
"id": 42,
"name": "Education",
"prefix": "EDU"
}
],
"is_shared": false,
"can_manage": true,
"advanced_url": "/app/program-settings",
"copy_on_save_default": false
},
"branding": {
"attribution_removed": false
},
"visual_settings": {},
"preview": {
"color_theme": {
"color": "indigo",
"color_level": 600
},
"organization_color_theme": {
"color": "indigo",
"color_level": 600
},
"check_payment_instructions": "Mail checks to the organization."
},
"additional_gift_routing": {
"allow_donor_choice": true,
"available_gifts": [
{
"id": 42,
"name": "School supplies",
"code": "SUPPLIES"
}
],
"target_entities": [
{
"id": 42,
"name": "Education fund",
"program_id": 12
}
],
"target_entities_exist": true,
"routes": {}
},
"public_links": {
"base_url": "https://app.gratona.com",
"primary_url": "<string>",
"items": [
{
"key": "donation_page",
"label": "Donation Page",
"url": "<string>",
"description": "<string>"
}
],
"donor_login": "<string>",
"program_login": "<string>",
"recipient_portal_login": "<string>"
},
"embed": {
"smart": {
"recommended": true,
"config": {
"type": "sponsorship",
"clientId": "12",
"programId": "42",
"programSlug": "<string>",
"tripSlug": "<string>",
"baseUrl": "https://app.gratona.com",
"defaultAmount": null,
"defaultFrequency": "<string>"
},
"preview_url": "<string>"
}
}
}
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Not Found",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}