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

Webhooks

Endpoint

List webhook endpoints

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

Manage webhook endpoints for receiving event notifications.

List webhook endpoints › query Parameters

edition_id
​string
is_active
​boolean
ordering
​string[] · style: form

Ordering

  • created - Created
  • -created - Created (descending)
  • modified - Modified
  • -modified - Modified (descending)
  • name - Name
  • -name - Name (descending)
Enum values:
-created
-modified
-name
created
modified
name
organization_id
​string
page
​integer

A page number within the paginated result set.

page_size
​integer

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

List webhook endpoints › Responses

200
count
​integer · required
​object[] · required
next
​string · uri
previous
​string · uri
GET/v1/webhooks
curl --request GET \ --url https://api.preo.dev/v1/webhooks
shell
Example Responses
{ "count": 123, "next": "http://api.example.org/accounts/?page=4", "previous": "http://api.example.org/accounts/?page=2", "results": [ { "id": "id", "organization_id": "organization_id", "name": "name", "url": "https://www.example.com/path/to/resource", "edition_id": "edition_id", "events": [ "consent.given" ], "is_active": true, "timeout_seconds": 0, "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z" } ] }
json
application/json

Create webhook endpoint

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

Manage webhook endpoints for receiving event notifications.

Create webhook endpoint › Request Body

organization_id
​string · required
name
​string · maxLength: 120 · required

Descriptive name for this webhook

url
​string · uri · maxLength: 200 · required

The endpoint URL to send webhook payloads to

events
​string[] · required

List of events this webhook should receive

Enum values:
consent.given
consent.skipped
consent.withdrawn
consent.expired
purchase.action
wallet.apple.pass-added
wallet.apple.pass-removed
wallet.google.pass-added
edition_id
​string | null
is_active
​boolean
timeout_seconds
​integer · min: 0 · max: 2147483647

Request timeout in seconds

Create webhook endpoint › Responses

id
​string · readOnly · required
organization_id
​string | null · readOnly · required
name
​string · maxLength: 120 · required

Descriptive name for this webhook

url
​string · uri · maxLength: 200 · required

The endpoint URL to send webhook payloads to

edition_id
​string | null · readOnly · required
events
​string[] · required

List of events this webhook should receive

Enum values:
consent.given
consent.skipped
consent.withdrawn
consent.expired
purchase.action
wallet.apple.pass-added
wallet.apple.pass-removed
wallet.google.pass-added
created
​string · date-time · readOnly · required
modified
​string · date-time · readOnly · required
is_active
​boolean
timeout_seconds
​integer · min: 0 · max: 2147483647

Request timeout in seconds

secret
​string · maxLength: 64

Secret key for HMAC signature verification (optional)

POST/v1/webhooks
curl --request POST \ --url https://api.preo.dev/v1/webhooks \ --header 'Content-Type: application/json' \ --data ' { "organization_id": "organization_id", "name": "name", "url": "https://www.example.com/path/to/resource", "edition_id": "edition_id", "events": [ "consent.given" ], "is_active": true, "timeout_seconds": 0 } '
shell
Example Request Body
{ "organization_id": "organization_id", "name": "name", "url": "https://www.example.com/path/to/resource", "edition_id": "edition_id", "events": [ "consent.given" ], "is_active": true, "timeout_seconds": 0 }
json
Example Responses
{ "id": "id", "organization_id": "organization_id", "name": "name", "url": "https://www.example.com/path/to/resource", "edition_id": "edition_id", "events": [ "consent.given" ], "is_active": true, "timeout_seconds": 0, "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z", "secret": "secret" }
json
application/json

Retrieve webhook endpoint

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

Manage webhook endpoints for receiving event notifications.

Retrieve webhook endpoint › path Parameters

id
​string · required

A unique value identifying this Webhook Endpoint.

Retrieve webhook endpoint › Responses

200
id
​string · readOnly · required
organization_id
​string | null · readOnly · required
name
​string · maxLength: 120 · required

Descriptive name for this webhook

url
​string · uri · maxLength: 200 · required

The endpoint URL to send webhook payloads to

edition_id
​string | null · readOnly · required
events
​string[] · required

List of events this webhook should receive

Enum values:
consent.given
consent.skipped
consent.withdrawn
consent.expired
purchase.action
wallet.apple.pass-added
wallet.apple.pass-removed
wallet.google.pass-added
created
​string · date-time · readOnly · required
modified
​string · date-time · readOnly · required
is_active
​boolean
timeout_seconds
​integer · min: 0 · max: 2147483647

Request timeout in seconds

secret
​string · maxLength: 64

Secret key for HMAC signature verification (optional)

GET/v1/webhooks/{id}
curl --request GET \ --url https://api.preo.dev/v1/webhooks/:id
shell
Example Responses
{ "id": "id", "organization_id": "organization_id", "name": "name", "url": "https://www.example.com/path/to/resource", "edition_id": "edition_id", "events": [ "consent.given" ], "is_active": true, "timeout_seconds": 0, "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z", "secret": "secret" }
json
application/json

Delete webhook endpoint

DELETE
https://api.preo.dev
/v1/webhooks/{id}

Manage webhook endpoints for receiving event notifications.

Delete webhook endpoint › path Parameters

id
​string · required

A unique value identifying this Webhook Endpoint.

Delete webhook endpoint › Responses

No response body

No data returned
DELETE/v1/webhooks/{id}
curl --request DELETE \ --url https://api.preo.dev/v1/webhooks/:id
shell
Example Responses
No example specified for this content type

Update webhook endpoint

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

Manage webhook endpoints for receiving event notifications.

Update webhook endpoint › path Parameters

id
​string · required

A unique value identifying this Webhook Endpoint.

Update webhook endpoint › Request Body

name
​string · maxLength: 120

Descriptive name for this webhook

url
​string · uri · maxLength: 200

The endpoint URL to send webhook payloads to

edition_id
​string | null
events
​string[]

List of events this webhook should receive

Enum values:
consent.given
consent.skipped
consent.withdrawn
consent.expired
purchase.action
wallet.apple.pass-added
wallet.apple.pass-removed
wallet.google.pass-added
is_active
​boolean
timeout_seconds
​integer · min: 0 · max: 2147483647

Request timeout in seconds

Update webhook endpoint › Responses

200
id
​string · readOnly · required
organization_id
​string | null · readOnly · required
name
​string · maxLength: 120 · required

Descriptive name for this webhook

url
​string · uri · maxLength: 200 · required

The endpoint URL to send webhook payloads to

edition_id
​string | null · readOnly · required
events
​string[] · required

List of events this webhook should receive

Enum values:
consent.given
consent.skipped
consent.withdrawn
consent.expired
purchase.action
wallet.apple.pass-added
wallet.apple.pass-removed
wallet.google.pass-added
created
​string · date-time · readOnly · required
modified
​string · date-time · readOnly · required
is_active
​boolean
timeout_seconds
​integer · min: 0 · max: 2147483647

Request timeout in seconds

secret
​string · maxLength: 64

Secret key for HMAC signature verification (optional)

PATCH/v1/webhooks/{id}
curl --request PATCH \ --url https://api.preo.dev/v1/webhooks/:id \ --header 'Content-Type: application/json' \ --data ' { "name": "name", "url": "https://www.example.com/path/to/resource", "edition_id": "edition_id", "events": [ "consent.given" ], "is_active": true, "timeout_seconds": 0 } '
shell
Example Request Body
{ "name": "name", "url": "https://www.example.com/path/to/resource", "edition_id": "edition_id", "events": [ "consent.given" ], "is_active": true, "timeout_seconds": 0 }
json
Example Responses
{ "id": "id", "organization_id": "organization_id", "name": "name", "url": "https://www.example.com/path/to/resource", "edition_id": "edition_id", "events": [ "consent.given" ], "is_active": true, "timeout_seconds": 0, "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z", "secret": "secret" }
json
application/json

List deliveries for webhook endpoint

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

Manage webhook endpoints for receiving event notifications.

List deliveries for webhook endpoint › path Parameters

id
​string · required

A unique value identifying this Webhook Endpoint.

List deliveries for webhook endpoint › query Parameters

edition_id
​string
is_active
​boolean
ordering
​string[] · style: form

Ordering

  • created - Created
  • -created - Created (descending)
  • modified - Modified
  • -modified - Modified (descending)
  • name - Name
  • -name - Name (descending)
Enum values:
-created
-modified
-name
created
modified
name
organization_id
​string
page
​integer

A page number within the paginated result set.

page_size
​integer

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

status
​string

Filter by delivery status

List deliveries for webhook endpoint › Responses

200
count
​integer · required
​object[] · required
next
​string · uri
previous
​string · uri
GET/v1/webhooks/{id}/deliveries
curl --request GET \ --url https://api.preo.dev/v1/webhooks/:id/deliveries
shell
Example Responses
{ "count": 123, "next": "http://api.example.org/accounts/?page=4", "previous": "http://api.example.org/accounts/?page=2", "results": [ { "id": "id", "status": "pending", "event": "event", "attempts": 0, "response_status_code": 0, "last_attempt_at": "2024-08-25T15:00:00Z", "next_retry_at": "2024-08-25T15:00:00Z", "created": "2024-08-25T15:00:00Z" } ] }
json
application/json

Get delivery detail

GET
https://api.preo.dev
/v1/webhooks/{id}/deliveries/{delivery_id}

Manage webhook endpoints for receiving event notifications.

Get delivery detail › path Parameters

delivery_id
​string · required
id
​string · required

A unique value identifying this Webhook Endpoint.

Get delivery detail › Responses

200
id
​string · readOnly · required
event
​string · readOnly · required
created
​string · date-time · readOnly · required
endpoint_id
​string · readOnly · required
payload
​string · required

The payload that was/will be sent (JSON string)

status
​string · enum
  • pending - Pending
  • success - Success
  • failed - Failed
  • retrying - Retrying
  • exhausted - Exhausted
Enum values:
pending
success
failed
retrying
exhausted
attempts
​integer · min: 0 · max: 2147483647
response_status_code
​integer | null · min: 0 · max: 2147483647
last_attempt_at
​string | null · date-time
next_retry_at
​string | null · date-time
signature
​string · maxLength: 64

HMAC signature

GET/v1/webhooks/{id}/deliveries/{delivery_id}
curl --request GET \ --url https://api.preo.dev/v1/webhooks/:id/deliveries/:delivery_id
shell
Example Responses
{ "id": "id", "status": "pending", "event": "event", "attempts": 0, "response_status_code": 0, "last_attempt_at": "2024-08-25T15:00:00Z", "next_retry_at": "2024-08-25T15:00:00Z", "created": "2024-08-25T15:00:00Z", "endpoint_id": "endpoint_id", "payload": "payload", "signature": "signature" }
json
application/json

Retry a failed delivery

POST
https://api.preo.dev
/v1/webhooks/{id}/deliveries/{delivery_id}/retry

Manage webhook endpoints for receiving event notifications.

Retry a failed delivery › path Parameters

delivery_id
​string · required
id
​string · required

A unique value identifying this Webhook Endpoint.

Retry a failed delivery › Responses

200
id
​string · readOnly · required
event
​string · readOnly · required
created
​string · date-time · readOnly · required
endpoint_id
​string · readOnly · required
payload
​string · required

The payload that was/will be sent (JSON string)

status
​string · enum
  • pending - Pending
  • success - Success
  • failed - Failed
  • retrying - Retrying
  • exhausted - Exhausted
Enum values:
pending
success
failed
retrying
exhausted
attempts
​integer · min: 0 · max: 2147483647
response_status_code
​integer | null · min: 0 · max: 2147483647
last_attempt_at
​string | null · date-time
next_retry_at
​string | null · date-time
signature
​string · maxLength: 64

HMAC signature

POST/v1/webhooks/{id}/deliveries/{delivery_id}/retry
curl --request POST \ --url https://api.preo.dev/v1/webhooks/:id/deliveries/:delivery_id/retry
shell
Example Responses
{ "id": "id", "status": "pending", "event": "event", "attempts": 0, "response_status_code": 0, "last_attempt_at": "2024-08-25T15:00:00Z", "next_retry_at": "2024-08-25T15:00:00Z", "created": "2024-08-25T15:00:00Z", "endpoint_id": "endpoint_id", "payload": "payload", "signature": "signature" }
json
application/json

Rotate webhook secret

POST
https://api.preo.dev
/v1/webhooks/{id}/rotate-secret

Manage webhook endpoints for receiving event notifications.

Rotate webhook secret › path Parameters

id
​string · required

A unique value identifying this Webhook Endpoint.

Rotate webhook secret › Responses

200
id
​string · readOnly · required
organization_id
​string | null · readOnly · required
name
​string · maxLength: 120 · required

Descriptive name for this webhook

url
​string · uri · maxLength: 200 · required

The endpoint URL to send webhook payloads to

edition_id
​string | null · readOnly · required
events
​string[] · required

List of events this webhook should receive

Enum values:
consent.given
consent.skipped
consent.withdrawn
consent.expired
purchase.action
wallet.apple.pass-added
wallet.apple.pass-removed
wallet.google.pass-added
created
​string · date-time · readOnly · required
modified
​string · date-time · readOnly · required
is_active
​boolean
timeout_seconds
​integer · min: 0 · max: 2147483647

Request timeout in seconds

secret
​string · maxLength: 64

Secret key for HMAC signature verification (optional)

POST/v1/webhooks/{id}/rotate-secret
curl --request POST \ --url https://api.preo.dev/v1/webhooks/:id/rotate-secret
shell
Example Responses
{ "id": "id", "organization_id": "organization_id", "name": "name", "url": "https://www.example.com/path/to/resource", "edition_id": "edition_id", "events": [ "consent.given" ], "is_active": true, "timeout_seconds": 0, "created": "2024-08-25T15:00:00Z", "modified": "2024-08-25T15:00:00Z", "secret": "secret" }
json
application/json

Segments