API · Shop settings
The Shop settings endpoint exposes the account’s public-shop content, social links, and event-directory embed URL. Checkout fields and ticket PDF display remain in its JSON contract for backwards compatibility; new integrations should use the dedicated Checkout settings API.
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": {
"shop_url": "https://your-subdomain.usetix.io",
"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,
"marketing_tracking": {
"google_analytics_id": "G-ABCDE12345",
"google_ads_id": "AW-123456789",
"google_ads_purchase_label": "AbCdEfGhIj",
"meta_pixel_id": "123456789012345",
"tiktok_pixel_id": "C1234567890ABCDE"
},
"event_directory_embed_url": "https://your-subdomain.usetix.io/events/embed?ref=embed",
"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
}
}
shop_url is the public shop base URL — the verified custom domain when one is configured, otherwise the default shop subdomain. It is the correct host for the public events feed and is read-only here. event_directory_embed_url is also read-only and can be placed in an iframe as described in Ticket and event-directory embeds.
shop_analytics_enabled and marketing_tracking remain in this response for backwards compatibility. New integrations should read and update them through the dedicated Analytics settings API.
collect_customer_phone, offer_business_invoice, offer_marketing_consent, customer_email_help_text, and show_price_on_ticket also remain for backwards compatibility. New integrations should read and update them through the dedicated Checkout settings API.
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 | Compatibility field. Prefer the Analytics settings API. |
google_analytics_id |
string | Compatibility field. Prefer the Analytics settings API; send "" to clear. |
google_ads_id |
string | Compatibility field. Prefer the Analytics settings API; send "" to clear. |
google_ads_purchase_label |
string | Compatibility field. Prefer the Analytics settings API; send "" to clear. |
meta_pixel_id |
string | Compatibility field. Prefer the Analytics settings API; send "" to clear. |
tiktok_pixel_id |
string | Compatibility field. Prefer the Analytics settings API; send "" to clear. |
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.
Example: enable phone collection and update the public shop tagline:
curl -X PATCH \
-H "Authorization: Bearer your-token-here" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"collect_customer_phone":true,"tagline":"Independent nights, unforgettable rooms."}' \
https://app.usetix.io/admin/account_settings/shop