API · Shop settings
The Shop settings endpoint exposes the account’s public-shop content, checkout options, ticket PDF display, social links, and analytics collection switches.
Reading requires a token with Read or Read + Write permission. Updating requires Read + Write. See Authentication.
GET /admin/account_settings/shop
curl \
-H "Authorization: Bearer your-token-here" \
-H "Accept: application/json" \
https://app.usetix.io/admin/account_settings/shop
Response:
{
"data": {
"tagline": "Independent nights, unforgettable rooms.",
"about_html": "<p>We host concerts across Berlin.</p>",
"collect_customer_phone": true,
"offer_business_invoice": true,
"offer_marketing_consent": true,
"show_price_on_ticket": true,
"shop_analytics_enabled": true,
"customer_email_help_text": "We send tickets and event updates here.",
"social_proof_stats": [
{ "value": "12,000+", "label": "Guests" },
{ "value": "48", "label": "Events" }
],
"social_links": {
"instagram_url": "https://instagram.com/example",
"tiktok_url": null,
"youtube_url": null,
"spotify_url": null,
"soundcloud_url": null,
"whatsapp_url": null,
"website_url": "https://example.com"
},
"gallery_image_count": 6
}
}
about_html is the rendered rich-text value. show_price_on_ticket defaults to true; when it is false, newly generated ticket PDFs omit the paid price. Checkout prices, order totals, and invoices are unchanged. gallery_image_count is read-only on this endpoint; manage shop images from the admin dashboard.
PATCH /admin/account_settings/shop
Send only the fields you want to change, directly at the JSON top level. This example hides the paid price on downloaded ticket PDFs:
curl -X PATCH \
-H "Authorization: Bearer your-token-here" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"show_price_on_ticket": false}' \
https://app.usetix.io/admin/account_settings/shop
Writable fields:
| Field | Type | Notes |
|---|---|---|
tagline |
string | Public shop tagline. Maximum 200 characters. Send "" to clear. |
about |
string | Rich-text shop description. Returned as about_html. Send "" to clear. |
collect_customer_phone |
boolean | Whether checkout asks for a phone number. |
offer_business_invoice |
boolean | Whether checkout offers business-invoice fields. |
offer_marketing_consent |
boolean | Whether checkout offers email-marketing consent. |
show_price_on_ticket |
boolean | Whether generated ticket PDFs show the paid price. Defaults to true. |
shop_analytics_enabled |
boolean | false pauses future collection while retaining historical reports. |
customer_email_help_text |
string | Help text below the required checkout email field. Maximum 200 characters; send "" to clear. |
social_proof_stats |
array | Full replacement list of up to 3 { "value", "label" } objects. Send [] to clear. |
instagram_url |
string | Absolute http or https URL; send "" to clear. |
tiktok_url |
string | Absolute http or https URL; send "" to clear. |
youtube_url |
string | Absolute http or https URL; send "" to clear. |
spotify_url |
string | Absolute http or https URL; send "" to clear. |
soundcloud_url |
string | Absolute http or https URL; send "" to clear. |
whatsapp_url |
string | Absolute http or https URL; send "" to clear. |
website_url |
string | Absolute http or https URL; send "" to clear. |
Response: 200 OK with the complete updated data object in the same shape as GET.
Validation failures return 422 Unprocessable Entity:
{
"errors": {
"tagline": ["is too long (maximum is 200 characters)"]
}
}
A Read token attempting PATCH receives 401 Unauthorized and no settings are changed.