Built-in order page
The order-page endpoints let you read and update your company's order-page configuration. Only fields in the safe field catalog are writable through the API — sensitive settings (raw HTML/CSS/JS, payment amounts, commissions) are intentionally excluded.
Hosted order page as your storefront
The hosted order page is the fastest way to start selling, because there is no frontend to build: Lifepeaks serves the page and keeps checkout, payment and delivery working, and you shape it through these endpoints — branding, colors, copy, links and images. Treat it as the quick-start path.
Build your own storefront when you need a fully custom experience. That path uses the catalog, quote, order, checkout-session, and webhook resources described in Headless checkout. Order-page configuration endpoints apply only to the Lifepeaks-hosted storefront.
Endpoints
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /v2/order-page | orderpage:read | Get current config |
PATCH | /v2/order-page | orderpage:write | Partially update config |
GET | /v2/order-page/schema | orderpage:read | List safe configurable fields |
GET | /v2/order-page/revisions | orderpage:read | List published, archived, and draft revisions |
POST | /v2/order-page/drafts | orderpage:write | Create an isolated draft |
GET, PATCH | /v2/order-page/drafts/{revision_id} | orderpage:read / orderpage:write | Read or edit a draft |
GET | /v2/order-page/drafts/{revision_id}/preview | orderpage:read | Read the exact no-cache preview payload |
POST | /v2/order-page/drafts/{revision_id}/publish | orderpage:write | Publish a reviewed draft |
POST | /v2/order-page/revisions/{revision_id}/restore | orderpage:write | Copy an older revision into a new draft |
Recommended draft workflow
For customer-facing changes, use a draft instead of patching the live page directly:
- Read
GET /v2/order-page/schemaand accept only its safe fields. - Create a draft with a stable
Idempotency-KeyatPOST /v2/order-page/drafts. - Store the returned
opr_…revision ID andETag. - Update
fieldswithPATCH /v2/order-page/drafts/{revision_id}and the currentIf-Matchvalue. - Read the private, no-store preview payload.
- Publish the reviewed draft with the newest
If-Matchand an independentIdempotency-Key.
curl -sS -X POST https://api.lifepeaks.dk/v2/order-page/drafts \
-H "Authorization: Bearer $LIFEPEAKS_API_KEY" \
-H "Idempotency-Key: order_page_draft_018f4f37" \
-H "Content-Type: application/json" \
-d '{"lang":"da-DK","name":"Autumn campaign"}'
If-Match prevents one editor from silently overwriting another. A stale tag returns 412; read the current draft, reconcile the changes, and retry with its new tag. Publishing archives the previous published revision rather than mutating it.
Restoring is also non-destructive. POST /v2/order-page/revisions/{revision_id}/restore copies the selected revision into a new draft for review and publication; it never rewrites history.
GET /v2/order-page
Returns the current order-page configuration, including all safe field values and image URLs.
Query parameters:
| Parameter | Type | Description |
|---|---|---|
lang | string | BCP 47 locale for i18n fields (e.g. da-DK, en-GB). Defaults to en-GB. |
company | string | Slug of an assigned company to read instead of your own. See Endpoints — Conventions. |
Example request:
curl -H "Authorization: Bearer lp_live_..." \
"https://api.lifepeaks.dk/v2/order-page?lang=da-DK"
Response 200:
{
"fields": {
"orderform_company_box_bg": "#1a2b3c",
"orderform_signup_text": "Tilmeld dig eksklusive fordele",
"orderform_unsplash_enabled": 1,
"gtm": "GTM-ABC1234"
},
"images": {
"logo": ["https://cdn.lifepeaks.dk/company/42/logo.png"]
}
}
PATCH /v2/order-page
Partially updates the order-page configuration. Include only the fields you want to change.
Query parameters:
| Parameter | Type | Description |
|---|---|---|
lang | string | BCP 47 locale for i18n fields (overridden by lang in the request body if both are supplied). |
company | string | Slug of an assigned company to update instead of your own. It may also be sent as a company field in the request body, where the query string wins if both carry it. See Endpoints — Conventions. |
Example request — update brand color and Danish signup text:
# Update brand color (not i18n, no lang needed)
curl -X PATCH \
-H "Authorization: Bearer lp_live_..." \
-H "Content-Type: application/json" \
-d '{"orderform_company_box_bg": "#2d3a8c"}' \
https://api.lifepeaks.dk/v2/order-page
# Update Danish copy (i18n field, pass lang)
curl -X PATCH \
-H "Authorization: Bearer lp_live_..." \
-H "Content-Type: application/json" \
-d '{"orderform_signup_text": "Tilmeld dig eksklusive fordele", "lang": "da-DK"}' \
https://api.lifepeaks.dk/v2/order-page
Returns the full updated config (200) on success. Returns 422 if a field is unknown, the wrong type, or exceeds its max length.
GET /v2/order-page/schema
Returns the allow-list of configurable fields with their types, constraints, and grouping.
Example response (abbreviated):
{
"fields": [
{
"field": "orderform_signup_text",
"type": "string",
"max": 2000,
"i18n": true,
"group": "copy",
"table": "company_orderform"
},
{
"field": "orderform_company_box_bg",
"type": "color",
"max": 7,
"i18n": false,
"group": "theme",
"table": "company_orderform"
}
]
}
Safe field catalog
Fields are organized into five groups. Only these fields are accepted in PATCH /v2/order-page.
theme
Color tokens for the order-page UI.
| Field | Type | Max | Notes |
|---|---|---|---|
orderform_company_box_bg | color | 7 | Background color of the company box. Must be #rrggbb. |
copy (i18n-capable)
Text strings displayed on the order page. Pass lang to write or read in a specific locale.
| Field | Type | Max | i18n |
|---|---|---|---|
orderform_text_option | string | — | yes |
orderform_text_value | string | — | yes |
orderform_text_variant | string | — | yes |
orderform_text_event | string | — | yes |
orderform_text_specialoffer | string | — | yes |
orderform_text_ticketcoupon | string | — | yes |
orderform_signup_text | string | 2000 | yes |
tagline | string | — | yes |
payment_terms_all | string | — | yes |
payment_terms_ticket | string | — | yes |
payment_terms_benefitdeal | string | — | yes |
footer_name | string | 4000 | yes |
links
URLs and link-related strings.
| Field | Type | Max |
|---|---|---|
order_link | string | 1000 |
order_link_text | string | 100 |
order_link_subheading | string | 255 |
order_logo_link_url | string | 1000 |
orderform_policy_link | string | 255 |
orderform_policy_link_benefit_deals | string | 255 |
orderform_thankyou_redirect | string | 1000 |
flags
Boolean toggles — integer 0 or 1.
| Field | Meaning when 1 |
|---|---|
orderform_greetings_with_image | Include image in greeting card flow |
orderform_unsplash_enabled | Allow Unsplash images in greetings |
specials_with_greetings | Enable greetings for special offers |
benefitdeals_with_greetings | Enable greetings for benefit deals |
manually_created_personalize | Enable personalization for manually created items |
variants_visible_only_direct | Hide variants from aggregated listing |
tickets_visible_only_direct | Hide tickets from aggregated listing |
specials_visible_only_direct | Hide specials from aggregated listing |
ticketcoupons_visible_only_direct | Hide ticket coupons from aggregated listing |
orderform_gc_phone_required | Require phone number on gift card checkout |
link_priority_order | Show custom link above product list |
custom_mail_sender_enabled | Use company custom mail sender |
variant_images_full | Show variant images full-width |
orderform_logo_full_width | Render logo full-width |
logo_in_menu | Show logo inside navigation menu |
postmail_use_phone | Use phone for postal mail contact |
other
| Field | Type | Max | Notes |
|---|---|---|---|
orderform_languages | csv | 20 | Comma-separated locale codes, e.g. da-DK,en-GB |
preset_buttons | csv | — | Comma-separated preset amount buttons |
gtm | gtm | 20 | Google Tag Manager ID, format GTM-XXXXXXX |
Field type validation
| Type | Accepted values |
|---|---|
string | Any string within the max length limit |
bool | Integer 0 or 1 (or string "0" / "1") |
color | 7-character hex #rrggbb (case-insensitive) |
gtm | GTM- followed by uppercase alphanumeric characters, max 20 chars |
csv | Comma-separated string within the max length limit |
int | Integer value |
i18n (per-locale values)
Fields with i18n: true can be written in any supported locale by passing a lang key alongside the field map:
{
"orderform_signup_text": "Tilmeld dig eksklusive fordele",
"lang": "da-DK"
}
Omitting lang writes to the default locale (en-GB). Supported locales include da-DK and en-GB. To read in a specific locale, pass ?lang=da-DK on GET /v2/order-page.
What is NOT writable
The following categories of fields are intentionally excluded from the safe-field catalog and will be rejected with 422:
- Raw HTML, CSS, or JavaScript (
orderform_css,orderform_code, etc.) - Payment fees and commission rates
- Any field not returned by
GET /v2/order-page/schema