Preo
  • Homepage
  • About
Apps
  • Dashboard
  • App Store
  • Google Play
Social
  • LinkedIn

© 2026 Preo ApS

  • Integration
  • API
Information
Auth
    Get user infoget
Editions
    List editionsgetCreate editionpostGet edition detailsgetUpdate editionpatchDuplicate editionpostGet edition field choicesgetRun edition healthcheckget
Orders
    List ordersgetRetrieve order detailsget
Purchases
    Retrieve purchase detailsgetCreate refund request for purchasepost
User
    List usersgetRetrieve usergetPartially update userpatch
Refunds
    Create refund request for purchasepostList refund requestsgetCreate refund requestpostRetrieve refund request detailsgetApprove refund requestpostReject refund requestpost
Files
    List filesgetUpload filepostGet file detailsgetDelete filedeleteUpdate file metadatapatch
Data Imports
    List data importsgetCreate data importpostGet data import detailsgetUpdate data importpatchCancel data importpostList column mappingsgetUpdate column mappingspatchPreview import ordersgetProcess column mappingspostList product mappingsgetUpdate product mappingspatchStart import processpostValidate column mappingspostImport external orderspost
Campaigns
    List campaignsgetCreate campaignpostRetrieve campaigngetDelete campaigndeleteUpdate campaignpatchCancel campaignpostSchedule campaignpostSend campaign nowpostGet campaign statsget
Consents
    List consentsgetCreate consentpostRetrieve consentgetDelete consentdeleteUpdate consentpatch
Email Messages
    List email messagesgetCreate email messagepostGet email message detailsgetDelete email messagedeleteUpdate email messagepatchAdopt template to editionpostDuplicate email messagepostPreview emailpostGet template variablesget
Segments
    List segmentsgetCreate segmentpostRetrieve segmentgetDelete segmentdeleteUpdate segmentpatchExport segment users as CSVgetRecalculate segmentpostReset stuck segment to draftpostGet CEL context schema and dynamic valuesgetValidate CEL expressionpost
Webhooks
    List webhook endpointsgetCreate webhook endpointpostRetrieve webhook endpointgetDelete webhook endpointdeleteUpdate webhook endpointpatchList deliveries for webhook endpointgetGet delivery detailgetRetry a failed deliverypostRotate webhook secretpost
Schemas
Preo API
Preo API

Editions

Endpoint

Edition lifecycle management including creation, configuration, and status transitions.


List editions

GET
https://api.preo.dev
/v1/editions

List all editions the user has access to. Optionally filter by organization_id, status, draft state, or archived state.

List editions › query Parameters

is_archived
​boolean

Filter by archived status (optional)

is_draft
​boolean

Filter by draft status (optional)

ordering
​string[] · style: form

Ordering

  • created - Created
  • -created - Created (descending)
  • modified - Modified
  • -modified - Modified (descending)
  • start_date - Start date
  • -start_date - Start date (descending)
  • end_date - End date
  • -end_date - End date (descending)
  • name - Name
  • -name - Name (descending)
Enum values:
-created
-end_date
-modified
-name
-start_date
created
end_date
modified
organization_id
​string

Filter by specific organization (optional)

page
​integer

A page number within the paginated result set.

page_size
​integer

Number of results to return per page (default: 100).

status
​string · enum

Filter by date-based status: upcoming, current, past, no_dates (optional)

Enum values:
current
no_dates
past
upcoming

List editions › Responses

200
count
​integer · required
​object[] · required
next
​string · uri
previous
​string · uri
GET/v1/editions
curl --request GET \ --url https://api.preo.dev/v1/editions
shell
Example Responses
{ "count": 123, "next": "http://api.example.org/accounts/?page=4", "previous": "http://api.example.org/accounts/?page=2", "results": [ { "id": "id", "name": "name", "full_name": "full_name", "slug": "slug", "start_date": "2024-08-25T15:00:00Z", "end_date": "2024-08-25T15:00:00Z", "timezone": "timezone", "is_draft": true, "is_archived": true, "published_at": "2024-08-25T15:00:00Z", "organization": { "id": "id", "name": "name", "slug": "slug", "avatar": { "thumbnail": "https://www.example.com/path/to/resource", "optimized": "https://www.example.com/path/to/resource", "large": "https://www.example.com/path/to/resource", "original": "https://www.example.com/path/to/resource" } }, "status": "status", "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z" } ] }
json
application/json

Create edition

POST
https://api.preo.dev
/v1/editions

Create a new edition. Requires organization admin or manager role.

Create edition › Request Body

Serializer for creating editions - org admin/manager only.
organization_id
​string · required

Organization ID (org_...)

event_id
​string · required

Event ID (evt_...)

name
​string · maxLength: 200 · required

Edition name

start_date
​string | null · date-time
end_date
​string | null · date-time
timezone
​string
Default: UTC
default_country_code
​string · enum
  • +43 - Austria (+43)
  • +32 - Belgium (+32)
  • +45 - Denmark (+45)
  • +358 - Finland (+358)
  • +33 - France (+33)
  • +49 - Germany (+49)
  • +31 - Netherlands (+31)
  • +47 - Norway (+47)
  • +48 - Poland (+48)
  • +46 - Sweden (+46)
  • +41 - Switzerland (+41)
  • +44 - United Kingdom (+44)
  • +1 - United States (+1)
Enum values:
+43
+32
+45
+358
+33
+49
+31
+47
Default: +45
default_language
​string · enum
  • en - English
  • da - Danish
  • se - Swedish
  • nl - Dutch
  • pl - Polish
Enum values:
en
da
se
nl
pl
Default: en
enabled_languages
​string[]
Enum values:
en
da
se
nl
pl
tax_type
​string · enum
  • none - None
  • vat - VAT
  • sales - Sales tax
Enum values:
none
vat
sales
Default: none

Create edition › Responses

Full edition details for retrieve/update responses.
id
​string · readOnly · required
name
​string · maxLength: 200 · required
full_name
​string · readOnly · required
slug
​string · readOnly · pattern: ^[-a-zA-Z0-9_]+$ · required
​object · readOnly · required
​readOnly · required
timezone
​string · readOnly · required
status
​string · readOnly · required

Date-based status: upcoming, current, past, no_dates

fee_rule_id
​string | null · readOnly · required
merchant_account_id
​string | null · readOnly · required
​object · required
​object · required
​readOnly · required
meta_image_id
​string | null · readOnly · required
transaction_receipt_email_id
​string | null · readOnly · required
refund_confirmation_email_id
​string | null · readOnly · required
created
​string · date-time · readOnly · required
modified
​string · date-time · readOnly · required
start_date
​string | null · date-time

Date of the start of the event

end_date
​string | null · date-time

Date of the end of the event

default_country_code
​string · enum

Default prefix used for phone number logins

  • +43 - Austria (+43)
  • +32 - Belgium (+32)
  • +45 - Denmark (+45)
  • +358 - Finland (+358)
  • +33 - France (+33)
  • +49 - Germany (+49)
  • +31 - Netherlands (+31)
  • +47 - Norway (+47)
  • +48 - Poland (+48)
  • +46 - Sweden (+46)
  • +41 - Switzerland (+41)
  • +44 - United Kingdom (+44)
  • +1 - United States (+1)
Enum values:
+43
+32
+45
+358
+33
+49
+31
+47
is_draft
​boolean

Draft items are not visible to end users

is_archived
​boolean

Archived editions are hidden from admin views and widgets

published_at
​string | null · date-time

Timestamp when first published

​
​array
tax_type
​string · enum
  • none - None
  • vat - VAT
  • sales - Sales tax
Enum values:
none
vat
sales
default_price_tax_rate
​number · double
default_deposit_tax_rate
​number · double
default_packaging_deposit_tax_rate
​number · double
​
merchant_account_extra_parameters
​
merchant_id
​

Overrides Organization.merchant_id for this edition's organization in split payments

metadata
​

Additional metadata in form of JSON object

sms_sender_name
​string · enum
  • Unset - Unset
  • Preo - Preo
  • Store - Store
Enum values:
Unset
Preo
Store
email_sender_name
​string · maxLength: 50

e.g. Sales or Jane Doe

email_sender_address
​string · email · maxLength: 254

Address displayed as the sender of the email

email_reply_to
​string · email · maxLength: 254

Optional reply-to address

POST/v1/editions
curl --request POST \ --url https://api.preo.dev/v1/editions \ --header 'Content-Type: application/json' \ --data ' { "organization_id": "organization_id", "event_id": "event_id", "name": "name", "start_date": "2024-08-25T15:00:00Z", "end_date": "2024-08-25T15:00:00Z", "timezone": "UTC", "default_country_code": "+45", "default_language": "en", "enabled_languages": [ "en" ], "tax_type": "none" } '
shell
Example Request Body
{ "organization_id": "organization_id", "event_id": "event_id", "name": "name", "start_date": "2024-08-25T15:00:00Z", "end_date": "2024-08-25T15:00:00Z", "timezone": "UTC", "default_country_code": "+45", "default_language": "en", "enabled_languages": [ "en" ], "tax_type": "none" }
json
Example Responses
{ "id": "id", "name": "name", "full_name": "full_name", "slug": "slug", "organization": { "id": "id", "name": "name", "slug": "slug", "avatar": { "thumbnail": "https://www.example.com/path/to/resource", "optimized": "https://www.example.com/path/to/resource", "large": "https://www.example.com/path/to/resource", "original": "https://www.example.com/path/to/resource" } }, "event": { "id": "id", "name": "name" }, "start_date": "2024-08-25T15:00:00Z", "end_date": "2024-08-25T15:00:00Z", "timezone": "timezone", "default_country_code": "+43", "is_draft": true, "is_archived": true, "published_at": "2024-08-25T15:00:00Z", "status": "status", "default_language": "en", "enabled_languages": [ "en" ], "tax_type": "none", "default_price_tax_rate": 0, "default_deposit_tax_rate": 0, "default_packaging_deposit_tax_rate": 0, "currency": "eur", "fee_rule_id": "fee_rule_id", "merchant_account_id": "merchant_account_id", "merchant_account_extra_parameters": {}, "merchant_id": {}, "metadata": {}, "sms_sender_name": "Unset", "email_sender_name": "email_sender_name", "email_sender_address": "test@example.com", "email_reply_to": "test@example.com", "meta_title": { "en": "en", "da": "da", "se": "se", "pl": "pl", "nl": "nl" }, "meta_description": { "en": "en", "da": "da", "se": "se", "pl": "pl", "nl": "nl" }, "meta_image": { "thumbnail": "https://www.example.com/path/to/resource", "optimized": "https://www.example.com/path/to/resource", "large": "https://www.example.com/path/to/resource", "original": "https://www.example.com/path/to/resource" }, "meta_image_id": "meta_image_id", "transaction_receipt_email_id": "transaction_receipt_email_id", "refund_confirmation_email_id": "refund_confirmation_email_id", "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z" }
json
application/json

Get edition details

GET
https://api.preo.dev
/v1/editions/{id}

Get full details of an edition including all configuration.

Get edition details › path Parameters

id
​string · required

A unique value identifying this edition.

Get edition details › Responses

200
Full edition details for retrieve/update responses.
id
​string · readOnly · required
name
​string · maxLength: 200 · required
full_name
​string · readOnly · required
slug
​string · readOnly · pattern: ^[-a-zA-Z0-9_]+$ · required
​object · readOnly · required
​readOnly · required
timezone
​string · readOnly · required
status
​string · readOnly · required

Date-based status: upcoming, current, past, no_dates

fee_rule_id
​string | null · readOnly · required
merchant_account_id
​string | null · readOnly · required
​object · required
​object · required
​readOnly · required
meta_image_id
​string | null · readOnly · required
transaction_receipt_email_id
​string | null · readOnly · required
refund_confirmation_email_id
​string | null · readOnly · required
created
​string · date-time · readOnly · required
modified
​string · date-time · readOnly · required
start_date
​string | null · date-time

Date of the start of the event

end_date
​string | null · date-time

Date of the end of the event

default_country_code
​string · enum

Default prefix used for phone number logins

  • +43 - Austria (+43)
  • +32 - Belgium (+32)
  • +45 - Denmark (+45)
  • +358 - Finland (+358)
  • +33 - France (+33)
  • +49 - Germany (+49)
  • +31 - Netherlands (+31)
  • +47 - Norway (+47)
  • +48 - Poland (+48)
  • +46 - Sweden (+46)
  • +41 - Switzerland (+41)
  • +44 - United Kingdom (+44)
  • +1 - United States (+1)
Enum values:
+43
+32
+45
+358
+33
+49
+31
+47
is_draft
​boolean

Draft items are not visible to end users

is_archived
​boolean

Archived editions are hidden from admin views and widgets

published_at
​string | null · date-time

Timestamp when first published

​
​array
tax_type
​string · enum
  • none - None
  • vat - VAT
  • sales - Sales tax
Enum values:
none
vat
sales
default_price_tax_rate
​number · double
default_deposit_tax_rate
​number · double
default_packaging_deposit_tax_rate
​number · double
​
merchant_account_extra_parameters
​
merchant_id
​

Overrides Organization.merchant_id for this edition's organization in split payments

metadata
​

Additional metadata in form of JSON object

sms_sender_name
​string · enum
  • Unset - Unset
  • Preo - Preo
  • Store - Store
Enum values:
Unset
Preo
Store
email_sender_name
​string · maxLength: 50

e.g. Sales or Jane Doe

email_sender_address
​string · email · maxLength: 254

Address displayed as the sender of the email

email_reply_to
​string · email · maxLength: 254

Optional reply-to address

GET/v1/editions/{id}
curl --request GET \ --url https://api.preo.dev/v1/editions/:id
shell
Example Responses
{ "id": "id", "name": "name", "full_name": "full_name", "slug": "slug", "organization": { "id": "id", "name": "name", "slug": "slug", "avatar": { "thumbnail": "https://www.example.com/path/to/resource", "optimized": "https://www.example.com/path/to/resource", "large": "https://www.example.com/path/to/resource", "original": "https://www.example.com/path/to/resource" } }, "event": { "id": "id", "name": "name" }, "start_date": "2024-08-25T15:00:00Z", "end_date": "2024-08-25T15:00:00Z", "timezone": "timezone", "default_country_code": "+43", "is_draft": true, "is_archived": true, "published_at": "2024-08-25T15:00:00Z", "status": "status", "default_language": "en", "enabled_languages": [ "en" ], "tax_type": "none", "default_price_tax_rate": 0, "default_deposit_tax_rate": 0, "default_packaging_deposit_tax_rate": 0, "currency": "eur", "fee_rule_id": "fee_rule_id", "merchant_account_id": "merchant_account_id", "merchant_account_extra_parameters": {}, "merchant_id": {}, "metadata": {}, "sms_sender_name": "Unset", "email_sender_name": "email_sender_name", "email_sender_address": "test@example.com", "email_reply_to": "test@example.com", "meta_title": { "en": "en", "da": "da", "se": "se", "pl": "pl", "nl": "nl" }, "meta_description": { "en": "en", "da": "da", "se": "se", "pl": "pl", "nl": "nl" }, "meta_image": { "thumbnail": "https://www.example.com/path/to/resource", "optimized": "https://www.example.com/path/to/resource", "large": "https://www.example.com/path/to/resource", "original": "https://www.example.com/path/to/resource" }, "meta_image_id": "meta_image_id", "transaction_receipt_email_id": "transaction_receipt_email_id", "refund_confirmation_email_id": "refund_confirmation_email_id", "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z" }
json
application/json

Update edition

PATCH
https://api.preo.dev
/v1/editions/{id}

Update edition configuration. Requires edition admin or manager role.

Update edition › path Parameters

id
​string · required

A unique value identifying this edition.

Update edition › Request Body

Serializer for updating editions - edition admin/manager only.
name
​string · maxLength: 200
start_date
​string | null · date-time
end_date
​string | null · date-time
timezone
​string
default_country_code
​string · enum
  • +43 - Austria (+43)
  • +32 - Belgium (+32)
  • +45 - Denmark (+45)
  • +358 - Finland (+358)
  • +33 - France (+33)
  • +49 - Germany (+49)
  • +31 - Netherlands (+31)
  • +47 - Norway (+47)
  • +48 - Poland (+48)
  • +46 - Sweden (+46)
  • +41 - Switzerland (+41)
  • +44 - United Kingdom (+44)
  • +1 - United States (+1)
Enum values:
+43
+32
+45
+358
+33
+49
+31
+47
is_draft
​boolean
is_archived
​boolean
default_language
​string · enum
  • en - English
  • da - Danish
  • se - Swedish
  • nl - Dutch
  • pl - Polish
Enum values:
en
da
se
nl
pl
enabled_languages
​string[]
Enum values:
en
da
se
nl
pl
tax_type
​string · enum
  • none - None
  • vat - VAT
  • sales - Sales tax
Enum values:
none
vat
sales
default_price_tax_rate
​number · double
default_deposit_tax_rate
​number · double
default_packaging_deposit_tax_rate
​number · double
​
fee_rule_id
​string | null
merchant_account_id
​string | null
​object
​object
metadata
​
sms_sender_name
​string · enum
  • Unset - Unset
  • Preo - Preo
  • Store - Store
Enum values:
Unset
Preo
Store
email_sender_name
​string | null · maxLength: 50
email_sender_address
​string | null · email
email_reply_to
​string | null · email
​object
​object
meta_image_id
​string | null
transaction_receipt_email_id
​string | null
refund_confirmation_email_id
​string | null

Update edition › Responses

200
Full edition details for retrieve/update responses.
id
​string · readOnly · required
name
​string · maxLength: 200 · required
full_name
​string · readOnly · required
slug
​string · readOnly · pattern: ^[-a-zA-Z0-9_]+$ · required
​object · readOnly · required
​readOnly · required
timezone
​string · readOnly · required
status
​string · readOnly · required

Date-based status: upcoming, current, past, no_dates

fee_rule_id
​string | null · readOnly · required
merchant_account_id
​string | null · readOnly · required
​object · required
​object · required
​readOnly · required
meta_image_id
​string | null · readOnly · required
transaction_receipt_email_id
​string | null · readOnly · required
refund_confirmation_email_id
​string | null · readOnly · required
created
​string · date-time · readOnly · required
modified
​string · date-time · readOnly · required
start_date
​string | null · date-time

Date of the start of the event

end_date
​string | null · date-time

Date of the end of the event

default_country_code
​string · enum

Default prefix used for phone number logins

  • +43 - Austria (+43)
  • +32 - Belgium (+32)
  • +45 - Denmark (+45)
  • +358 - Finland (+358)
  • +33 - France (+33)
  • +49 - Germany (+49)
  • +31 - Netherlands (+31)
  • +47 - Norway (+47)
  • +48 - Poland (+48)
  • +46 - Sweden (+46)
  • +41 - Switzerland (+41)
  • +44 - United Kingdom (+44)
  • +1 - United States (+1)
Enum values:
+43
+32
+45
+358
+33
+49
+31
+47
is_draft
​boolean

Draft items are not visible to end users

is_archived
​boolean

Archived editions are hidden from admin views and widgets

published_at
​string | null · date-time

Timestamp when first published

​
​array
tax_type
​string · enum
  • none - None
  • vat - VAT
  • sales - Sales tax
Enum values:
none
vat
sales
default_price_tax_rate
​number · double
default_deposit_tax_rate
​number · double
default_packaging_deposit_tax_rate
​number · double
​
merchant_account_extra_parameters
​
merchant_id
​

Overrides Organization.merchant_id for this edition's organization in split payments

metadata
​

Additional metadata in form of JSON object

sms_sender_name
​string · enum
  • Unset - Unset
  • Preo - Preo
  • Store - Store
Enum values:
Unset
Preo
Store
email_sender_name
​string · maxLength: 50

e.g. Sales or Jane Doe

email_sender_address
​string · email · maxLength: 254

Address displayed as the sender of the email

email_reply_to
​string · email · maxLength: 254

Optional reply-to address

PATCH/v1/editions/{id}
curl --request PATCH \ --url https://api.preo.dev/v1/editions/:id \ --header 'Content-Type: application/json' \ --data ' { "name": "name", "start_date": "2024-08-25T15:00:00Z", "end_date": "2024-08-25T15:00:00Z", "timezone": "timezone", "default_country_code": "+43", "is_draft": true, "is_archived": true, "default_language": "en", "enabled_languages": [ "en" ], "tax_type": "none", "default_price_tax_rate": 0, "default_deposit_tax_rate": 0, "default_packaging_deposit_tax_rate": 0, "currency": "eur", "fee_rule_id": "fee_rule_id", "merchant_account_id": "merchant_account_id", "merchant_account_extra_parameters": { "key": {} }, "merchant_id": { "key": {} }, "metadata": {}, "sms_sender_name": "Unset", "email_sender_name": "email_sender_name", "email_sender_address": "test@example.com", "email_reply_to": "test@example.com", "meta_title": { "key": "string" }, "meta_description": { "key": "string" }, "meta_image_id": "meta_image_id", "transaction_receipt_email_id": "transaction_receipt_email_id", "refund_confirmation_email_id": "refund_confirmation_email_id" } '
shell
Example Request Body
{ "name": "name", "start_date": "2024-08-25T15:00:00Z", "end_date": "2024-08-25T15:00:00Z", "timezone": "timezone", "default_country_code": "+43", "is_draft": true, "is_archived": true, "default_language": "en", "enabled_languages": [ "en" ], "tax_type": "none", "default_price_tax_rate": 0, "default_deposit_tax_rate": 0, "default_packaging_deposit_tax_rate": 0, "currency": "eur", "fee_rule_id": "fee_rule_id", "merchant_account_id": "merchant_account_id", "merchant_account_extra_parameters": { "key": {} }, "merchant_id": { "key": {} }, "metadata": {}, "sms_sender_name": "Unset", "email_sender_name": "email_sender_name", "email_sender_address": "test@example.com", "email_reply_to": "test@example.com", "meta_title": { "key": "string" }, "meta_description": { "key": "string" }, "meta_image_id": "meta_image_id", "transaction_receipt_email_id": "transaction_receipt_email_id", "refund_confirmation_email_id": "refund_confirmation_email_id" }
json
Example Responses
{ "id": "id", "name": "name", "full_name": "full_name", "slug": "slug", "organization": { "id": "id", "name": "name", "slug": "slug", "avatar": { "thumbnail": "https://www.example.com/path/to/resource", "optimized": "https://www.example.com/path/to/resource", "large": "https://www.example.com/path/to/resource", "original": "https://www.example.com/path/to/resource" } }, "event": { "id": "id", "name": "name" }, "start_date": "2024-08-25T15:00:00Z", "end_date": "2024-08-25T15:00:00Z", "timezone": "timezone", "default_country_code": "+43", "is_draft": true, "is_archived": true, "published_at": "2024-08-25T15:00:00Z", "status": "status", "default_language": "en", "enabled_languages": [ "en" ], "tax_type": "none", "default_price_tax_rate": 0, "default_deposit_tax_rate": 0, "default_packaging_deposit_tax_rate": 0, "currency": "eur", "fee_rule_id": "fee_rule_id", "merchant_account_id": "merchant_account_id", "merchant_account_extra_parameters": {}, "merchant_id": {}, "metadata": {}, "sms_sender_name": "Unset", "email_sender_name": "email_sender_name", "email_sender_address": "test@example.com", "email_reply_to": "test@example.com", "meta_title": { "en": "en", "da": "da", "se": "se", "pl": "pl", "nl": "nl" }, "meta_description": { "en": "en", "da": "da", "se": "se", "pl": "pl", "nl": "nl" }, "meta_image": { "thumbnail": "https://www.example.com/path/to/resource", "optimized": "https://www.example.com/path/to/resource", "large": "https://www.example.com/path/to/resource", "original": "https://www.example.com/path/to/resource" }, "meta_image_id": "meta_image_id", "transaction_receipt_email_id": "transaction_receipt_email_id", "refund_confirmation_email_id": "refund_confirmation_email_id", "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z" }
json
application/json

Duplicate edition

POST
https://api.preo.dev
/v1/editions/{id}/duplicate

Duplicate an edition with all its configuration. Creates a copy of the edition including products, categories, pickup points, triggers, consents, and pass designs. Transactional data (carts, orders, transactions) is NOT duplicated.

Duplicate edition › path Parameters

id
​string · required

A unique value identifying this edition.

Duplicate edition › Request Body

Serializer for duplicating an edition.
name
​string · maxLength: 200 · required

Name for the new edition

slug
​string · maxLength: 200

Slug for the new edition (optional, auto-generated from name if not provided)

event_id
​string | null

Event ID to link to (optional). Use same event, different event, or omit to leave blank.

email_template_mode
​string · enum

How to handle email templates: 'copy' duplicates them, 'share' references the same templates

  • copy - Copy templates
  • share - Share templates
Enum values:
copy
share
Default: copy

Duplicate edition › Responses

Full edition details for retrieve/update responses.
id
​string · readOnly · required
name
​string · maxLength: 200 · required
full_name
​string · readOnly · required
slug
​string · readOnly · pattern: ^[-a-zA-Z0-9_]+$ · required
​object · readOnly · required
​readOnly · required
timezone
​string · readOnly · required
status
​string · readOnly · required

Date-based status: upcoming, current, past, no_dates

fee_rule_id
​string | null · readOnly · required
merchant_account_id
​string | null · readOnly · required
​object · required
​object · required
​readOnly · required
meta_image_id
​string | null · readOnly · required
transaction_receipt_email_id
​string | null · readOnly · required
refund_confirmation_email_id
​string | null · readOnly · required
created
​string · date-time · readOnly · required
modified
​string · date-time · readOnly · required
start_date
​string | null · date-time

Date of the start of the event

end_date
​string | null · date-time

Date of the end of the event

default_country_code
​string · enum

Default prefix used for phone number logins

  • +43 - Austria (+43)
  • +32 - Belgium (+32)
  • +45 - Denmark (+45)
  • +358 - Finland (+358)
  • +33 - France (+33)
  • +49 - Germany (+49)
  • +31 - Netherlands (+31)
  • +47 - Norway (+47)
  • +48 - Poland (+48)
  • +46 - Sweden (+46)
  • +41 - Switzerland (+41)
  • +44 - United Kingdom (+44)
  • +1 - United States (+1)
Enum values:
+43
+32
+45
+358
+33
+49
+31
+47
is_draft
​boolean

Draft items are not visible to end users

is_archived
​boolean

Archived editions are hidden from admin views and widgets

published_at
​string | null · date-time

Timestamp when first published

​
​array
tax_type
​string · enum
  • none - None
  • vat - VAT
  • sales - Sales tax
Enum values:
none
vat
sales
default_price_tax_rate
​number · double
default_deposit_tax_rate
​number · double
default_packaging_deposit_tax_rate
​number · double
​
merchant_account_extra_parameters
​
merchant_id
​

Overrides Organization.merchant_id for this edition's organization in split payments

metadata
​

Additional metadata in form of JSON object

sms_sender_name
​string · enum
  • Unset - Unset
  • Preo - Preo
  • Store - Store
Enum values:
Unset
Preo
Store
email_sender_name
​string · maxLength: 50

e.g. Sales or Jane Doe

email_sender_address
​string · email · maxLength: 254

Address displayed as the sender of the email

email_reply_to
​string · email · maxLength: 254

Optional reply-to address

POST/v1/editions/{id}/duplicate
curl --request POST \ --url https://api.preo.dev/v1/editions/:id/duplicate \ --header 'Content-Type: application/json' \ --data ' { "name": "name", "slug": "slug", "event_id": "event_id", "email_template_mode": "copy" } '
shell
Example Request Body
{ "name": "name", "slug": "slug", "event_id": "event_id", "email_template_mode": "copy" }
json
Example Responses
{ "id": "id", "name": "name", "full_name": "full_name", "slug": "slug", "organization": { "id": "id", "name": "name", "slug": "slug", "avatar": { "thumbnail": "https://www.example.com/path/to/resource", "optimized": "https://www.example.com/path/to/resource", "large": "https://www.example.com/path/to/resource", "original": "https://www.example.com/path/to/resource" } }, "event": { "id": "id", "name": "name" }, "start_date": "2024-08-25T15:00:00Z", "end_date": "2024-08-25T15:00:00Z", "timezone": "timezone", "default_country_code": "+43", "is_draft": true, "is_archived": true, "published_at": "2024-08-25T15:00:00Z", "status": "status", "default_language": "en", "enabled_languages": [ "en" ], "tax_type": "none", "default_price_tax_rate": 0, "default_deposit_tax_rate": 0, "default_packaging_deposit_tax_rate": 0, "currency": "eur", "fee_rule_id": "fee_rule_id", "merchant_account_id": "merchant_account_id", "merchant_account_extra_parameters": {}, "merchant_id": {}, "metadata": {}, "sms_sender_name": "Unset", "email_sender_name": "email_sender_name", "email_sender_address": "test@example.com", "email_reply_to": "test@example.com", "meta_title": { "en": "en", "da": "da", "se": "se", "pl": "pl", "nl": "nl" }, "meta_description": { "en": "en", "da": "da", "se": "se", "pl": "pl", "nl": "nl" }, "meta_image": { "thumbnail": "https://www.example.com/path/to/resource", "optimized": "https://www.example.com/path/to/resource", "large": "https://www.example.com/path/to/resource", "original": "https://www.example.com/path/to/resource" }, "meta_image_id": "meta_image_id", "transaction_receipt_email_id": "transaction_receipt_email_id", "refund_confirmation_email_id": "refund_confirmation_email_id", "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z" }
json
application/json

Get edition field choices

GET
https://api.preo.dev
/v1/editions/_meta

Returns field choices for edition creation/editing forms. Dynamic choices (merchant_accounts, fee_rules, emails) are scoped to user's accessible organizations. Pass ?organization_id=... to narrow results to a single organization.

Get edition field choices › query Parameters

organization_id
​string

Narrow dynamic choices to a specific organization (optional)

Get edition field choices › Responses

200
Response structure for _meta endpoint.
​object[] · required
​object[] · required
​object[] · required
​object[] · required
​object[] · required
​object[] · required
​object[] · required
​object[] · required
​object[] · required
​object[] · required
​object[] · required
GET/v1/editions/_meta
curl --request GET \ --url https://api.preo.dev/v1/editions/_meta
shell
Example Responses
{ "timezones": [ { "value": "value", "label": "label", "description": "description" } ], "languages": [ { "value": "value", "label": "label", "description": "description" } ], "country_codes": [ { "value": "value", "label": "label", "description": "description" } ], "currencies": [ { "value": "value", "label": "label", "description": "description" } ], "tax_types": [ { "value": "value", "label": "label", "description": "description" } ], "sms_sender_names": [ { "value": "value", "label": "label", "description": "description" } ], "merchant_accounts": [ { "value": "value", "label": "label", "description": "description", "type": "type", "supported_currencies": [ "string" ] } ], "fee_rules": [ { "value": "value", "label": "label", "description": "description" } ], "receipt_emails": [ { "value": "value", "label": "label", "description": "description" } ], "refund_confirmation_emails": [ { "value": "value", "label": "label", "description": "description" } ], "events": [ { "value": "value", "label": "label", "description": "description" } ] }
json
application/json

Run edition healthcheck

GET
https://api.preo.dev
/v1/editions/{edition_id}/healthcheck

Validates edition configuration and returns a detailed report of issues.

Run edition healthcheck › path Parameters

edition_id
​string · required

Run edition healthcheck › Responses

Serializer for the complete edition healthcheck response.
edition_id
​string · required

API ID of the edition

edition_name
​string · required

Full name of the edition

status
​string · enum · required

Overall health status of the edition

  • healthy - healthy
  • warning - warning
  • critical - critical
Enum values:
healthy
warning
critical
can_publish
​boolean · required

Whether the edition can be published (no critical issues)

​object · required

Summary counts of failed checks by severity

​object[] · required

List of all check results

GET/v1/editions/{edition_id}/healthcheck
curl --request GET \ --url https://api.preo.dev/v1/editions/:edition_id/healthcheck
shell
Example Responses
{ "edition_id": "edition_id", "edition_name": "edition_name", "status": "healthy", "can_publish": true, "summary": { "critical": 0, "warning": 0, "info": 0 }, "checks": [ { "category": "category", "check_id": "check_id", "severity": "critical", "passed": true, "message": "message", "suggestion": "suggestion", "related_objects": [ { "id": "id", "name": "name" } ] } ] }
json
application/json

AuthOrders