Browse API docs
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. The shop’s theme, accent color and fonts live in the Shop look 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,
"require_billing_address": false,
"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. |
require_billing_address |
boolean | Defaults to false. When enabled, every buyer must enter street, postal code, city and country at checkout. Address fields are always visible, the invoice toggle is hidden, and an invoice is issued even for free orders. Company and VAT ID remain optional. Takes precedence over offer_business_invoice; existing orders are unchanged. |
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
Link preview images
Shared shop URLs use the existing shop logo, falling back to the shop banner and then the Usetix logo. Event URLs use the event flyer first, followed by those same fallbacks. Preview metadata is generated automatically from existing artwork; there is no additional API field or upload. Sharing services may retain an earlier preview until their cache refreshes.