Webhooks
Webhooks allow you to subscribe to events from your vivenu account in order to build near-real-time integrations.
In order to integrate an external system with vivenu via webhooks, you need to provide a publicly accessible HTTP POST endpoint for the webhook to call, and set up a webhook configuration in vivenu specifying the endpoint to call and the events to subscribe to.
It's possible to specify hmacKey for webhook and we will add a x-vivenu-signature header in order to enable you to verify that the request is authentic and signed with your webhook secret.
The available events and payload formats are listed below. Note that the payload schema is fixed and not user-configurable on vivenu, so any listeners need to adhere to the same schema.
Creating Webhooks
You can configure webhooks via the API or in the dashboard under "Developer" > "Webhooks". If you do not see the webhooks section in the dashboard, ensure you have the "Developer" or "Admin" user role, and that the "Webhooks" feature has been enabled for your seller account.
A webhook configuration defines the listener URL to call, which events to send to the listener, and an optional hmacKey for signing requests.
You can set up a single configuration to send multiple types of events to the same listener.
Logs and Debugging
For each configured webhook, you can see the following metrics in the dashboard:
- Number of calls in the last 24 hours
- Delivery rate over the last 24 hours
- Average response time over the last 24 hours
Webhook attempts are logged and shown in the dashboard under the respective webhook configuration. For each webhook event triggered, you can see the following information:
- Full JSON payload
- Timestamp, HTTP status, and response body for each attempt
You can trigger a retry for failed webhook attempts manually in the dashboard, however you can't automatically replay a range of events.
There is no option to trigger test events on webhooks.
In order to test a webhook endpoint, the corresponding event must be triggered on the vivenu platform,
e.g. by creating a test booking.
We recommend carrying out tests in our dev environment.
Security
When setting up a webhook, you can provide an hmacKey to sign calls made from vivenu.
The signature is computed by calculating the HMAC of the raw JSON payload with the provided key and the sha256 algorithm, encoded as a hex string.
The signature is added to the request in the x-vivenu-signature header.
We strongly recommend you verify the signature in order to prevent malicious users from sending webhook requests to your listeners.
HTTP endpoints are allowed, for HTTPS endpoints we implement strict certificate validation. Endpoint URLs pointing to internal/development hostnames are rejected. Source IPs for webhook calls are not guaranteed to be stable, and must not be used for verification/access control purposes.
Example Verification Code
const HMAC_KEY = "4f1f83b5-b4..."
const signature = crypto
.createHmac("sha256", HMAC_KEY)
.update(req.rawPayload).digest("hex")
const requestSignature = req.headers["x-vivenu-signature"]
const isValid = signature.toLowerCase() === requestSignature.toLowerCase()
Timing and Rate Limits
Webhook calls are scheduled immediately after the respective event happens on the vivenu platform. While there is no rate limit on outgoing webhooks, calls are made asynchronously and may experience a slight lag under high-load scenarios.
Outgoing webhook calls have a timeout of ten seconds.
Retry Policy
If an outgoing webhook call by vivenu does not receive a 2xx or 3xx response,
it is retried up to six additional times with a progressive backoff delay ranging from 30 seconds to two hours.
The response body is logged in either case, but not evaluated by vivenu.
Failed calls can be inspected and manually re-triggered in the corresponding webhook configuration in the dashboard.
Ordering and Idempotency
Webhooks are not guaranteed to be called in the same order as the events causing them.
Webhook calls are sent following an at-least-once approach,
and can be de-duplicated based on the id field in the payload body.
Create a new webhook
Create a new webhook
Payload
Required attributes
- Name
name- Type
- string
- Description
An internal name to identify the webhook listener
- Name
url- Type
- string
- Description
An HTTPS URL to post the webhook data
Optional attributes
- Name
enabled- Type
- boolean
- Description
Whether this listener should be notified.
- Name
events- Type
- object
- Description
An object with the subscription status to the webhook event types.
Optional nested attributes (45)
- Name
transaction.complete- Type
- boolean
- Description
- Name
transaction.reservedBySystem- Type
- boolean
- Description
- Name
transaction.canceled- Type
- boolean
- Description
- Name
transaction.partiallyCanceled- Type
- boolean
- Description
- Name
checkout.completed- Type
- boolean
- Description
- Name
checkout.aborted- Type
- boolean
- Description
- Name
checkout.detailsSubmitted- Type
- boolean
- Description
- Name
ticket.created- Type
- boolean
- Description
- Name
ticket.updated- Type
- boolean
- Description
- Name
purchaseIntent.created- Type
- boolean
- Description
- Name
purchaseIntent.approved- Type
- boolean
- Description
- Name
purchaseIntent.rejected- Type
- boolean
- Description
- Name
purchaseIntent.updated- Type
- boolean
- Description
- Name
purchaseIntent.expired- Type
- boolean
- Description
- Name
purchaseIntent.completed- Type
- boolean
- Description
- Name
purchaseIntent.cancelled- Type
- boolean
- Description
- Name
customer.created- Type
- boolean
- Description
- Name
customer.updated- Type
- boolean
- Description
- Name
event.created- Type
- boolean
- Description
- Name
event.updated- Type
- boolean
- Description
- Name
event.deleted- Type
- boolean
- Description
- Name
job.started- Type
- boolean
- Description
- Name
job.failed- Type
- boolean
- Description
- Name
job.completed- Type
- boolean
- Description
- Name
support.assignedToSeller- Type
- boolean
- Description
- Name
ticketTransfer.created- Type
- boolean
- Description
- Name
ticketTransfer.rejected- Type
- boolean
- Description
- Name
ticketTransfer.transferred- Type
- boolean
- Description
- Name
ticketTransfer.expired- Type
- boolean
- Description
- Name
scan.created- Type
- boolean
- Description
- Name
bundle.created- Type
- boolean
- Description
- Name
bundle.updated- Type
- boolean
- Description
- Name
product.created- Type
- boolean
- Description
- Name
product.updated- Type
- boolean
- Description
- Name
product.deleted- Type
- boolean
- Description
- Name
subscription.created- Type
- boolean
- Description
- Name
subscription.updated- Type
- boolean
- Description
- Name
subscription.payment.succeeded- Type
- boolean
- Description
- Name
subscription.payment.failed- Type
- boolean
- Description
- Name
fund.created- Type
- boolean
- Description
- Name
fund.updated- Type
- boolean
- Description
- Name
campaign.created- Type
- boolean
- Description
- Name
campaign.updated- Type
- boolean
- Description
- Name
donation.created- Type
- boolean
- Description
- Name
pledge.created- Type
- boolean
- Description
- Name
hmacKey- Type
- string
- Description
The HMAC key used to validate webhooks.
Request
const response = await fetch('https://vivenu.com/api/webhooks', {
method: 'POST',
headers: {
Authorization: 'Bearer {token}',
'Content-Type': 'application/json',
},
body: JSON.stringify( {
"name": "Example Name",
"url": "https://example.com",
"enabled": true,
"events": {
"transaction.complete": true,
"transaction.reservedBySystem": true,
"transaction.canceled": true,
"transaction.partiallyCanceled": true,
"checkout.completed": true,
"checkout.aborted": true,
"checkout.detailsSubmitted": true,
"ticket.created": true,
"ticket.updated": true,
"purchaseIntent.created": true,
"purchaseIntent.approved": true,
"purchaseIntent.rejected": true,
"purchaseIntent.updated": true,
"purchaseIntent.expired": true,
"purchaseIntent.completed": true,
"purchaseIntent.cancelled": true,
"customer.created": true,
"customer.updated": true,
"event.created": true,
"event.updated": true,
"event.deleted": true,
"job.started": true,
"job.failed": true,
"job.completed": true,
"support.assignedToSeller": true,
"ticketTransfer.created": true,
"ticketTransfer.rejected": true,
"ticketTransfer.transferred": true,
"ticketTransfer.expired": true,
"scan.created": true,
"bundle.created": true,
"bundle.updated": true,
"product.created": true,
"product.updated": true,
"product.deleted": true,
"subscription.created": true,
"subscription.updated": true,
"subscription.payment.succeeded": true,
"subscription.payment.failed": true,
"fund.created": true,
"fund.updated": true,
"campaign.created": true,
"campaign.updated": true,
"donation.created": true,
"pledge.created": true
},
"hmacKey": "string"
}),
})
const data = await response.json()Response (201)
{
"_id": "507f191e810c19729de860ea",
"name": "Example Name",
"url": "https://example.com",
"enabled": true,
"events": {
"transaction.complete": true,
"transaction.reservedBySystem": true,
"transaction.canceled": true,
"transaction.partiallyCanceled": true,
"checkout.completed": true,
"checkout.aborted": true,
"checkout.detailsSubmitted": true,
"ticket.created": true,
"ticket.updated": true,
"purchaseIntent.created": true,
"purchaseIntent.approved": true,
"purchaseIntent.rejected": true,
"purchaseIntent.updated": true,
"purchaseIntent.expired": true,
"purchaseIntent.completed": true,
"purchaseIntent.cancelled": true,
"customer.created": true,
"customer.updated": true,
"event.created": true,
"event.updated": true,
"event.deleted": true,
"job.started": true,
"job.failed": true,
"job.completed": true,
"support.assignedToSeller": true,
"ticketTransfer.created": true,
"ticketTransfer.rejected": true,
"ticketTransfer.transferred": true,
"ticketTransfer.expired": true,
"scan.created": true,
"bundle.created": true,
"bundle.updated": true,
"product.created": true,
"product.updated": true,
"product.deleted": true,
"subscription.created": true,
"subscription.updated": true,
"subscription.payment.succeeded": true,
"subscription.payment.failed": true,
"fund.created": true,
"fund.updated": true,
"campaign.created": true,
"campaign.updated": true,
"donation.created": true,
"pledge.created": true
},
"hmacKey": "string",
"createdBy": {
"type": "USER",
"id": "507f191e810c19729de860ea"
}
}Update a webhook
Update a webhook
Payload
Required attributes
- Name
name- Type
- string
- Description
An internal name to identify the webhook listener
- Name
url- Type
- string
- Description
An HTTPS URL to post the webhook data
Optional attributes
- Name
enabled- Type
- boolean
- Description
Whether this listener should be notified.
- Name
events- Type
- object
- Description
An object with the subscription status to the webhook event types.
Optional nested attributes (45)
- Name
transaction.complete- Type
- boolean
- Description
- Name
transaction.reservedBySystem- Type
- boolean
- Description
- Name
transaction.canceled- Type
- boolean
- Description
- Name
transaction.partiallyCanceled- Type
- boolean
- Description
- Name
checkout.completed- Type
- boolean
- Description
- Name
checkout.aborted- Type
- boolean
- Description
- Name
checkout.detailsSubmitted- Type
- boolean
- Description
- Name
ticket.created- Type
- boolean
- Description
- Name
ticket.updated- Type
- boolean
- Description
- Name
purchaseIntent.created- Type
- boolean
- Description
- Name
purchaseIntent.approved- Type
- boolean
- Description
- Name
purchaseIntent.rejected- Type
- boolean
- Description
- Name
purchaseIntent.updated- Type
- boolean
- Description
- Name
purchaseIntent.expired- Type
- boolean
- Description
- Name
purchaseIntent.completed- Type
- boolean
- Description
- Name
purchaseIntent.cancelled- Type
- boolean
- Description
- Name
customer.created- Type
- boolean
- Description
- Name
customer.updated- Type
- boolean
- Description
- Name
event.created- Type
- boolean
- Description
- Name
event.updated- Type
- boolean
- Description
- Name
event.deleted- Type
- boolean
- Description
- Name
job.started- Type
- boolean
- Description
- Name
job.failed- Type
- boolean
- Description
- Name
job.completed- Type
- boolean
- Description
- Name
support.assignedToSeller- Type
- boolean
- Description
- Name
ticketTransfer.created- Type
- boolean
- Description
- Name
ticketTransfer.rejected- Type
- boolean
- Description
- Name
ticketTransfer.transferred- Type
- boolean
- Description
- Name
ticketTransfer.expired- Type
- boolean
- Description
- Name
scan.created- Type
- boolean
- Description
- Name
bundle.created- Type
- boolean
- Description
- Name
bundle.updated- Type
- boolean
- Description
- Name
product.created- Type
- boolean
- Description
- Name
product.updated- Type
- boolean
- Description
- Name
product.deleted- Type
- boolean
- Description
- Name
subscription.created- Type
- boolean
- Description
- Name
subscription.updated- Type
- boolean
- Description
- Name
subscription.payment.succeeded- Type
- boolean
- Description
- Name
subscription.payment.failed- Type
- boolean
- Description
- Name
fund.created- Type
- boolean
- Description
- Name
fund.updated- Type
- boolean
- Description
- Name
campaign.created- Type
- boolean
- Description
- Name
campaign.updated- Type
- boolean
- Description
- Name
donation.created- Type
- boolean
- Description
- Name
pledge.created- Type
- boolean
- Description
- Name
hmacKey- Type
- string
- Description
The HMAC key used to validate webhooks.
Request
const response = await fetch('https://vivenu.com/api/webhook/507f191e810c19729de860ea', {
method: 'PUT',
headers: {
Authorization: 'Bearer {token}',
'Content-Type': 'application/json',
},
body: JSON.stringify( {
"name": "Example Name",
"url": "https://example.com",
"enabled": true,
"events": {
"transaction.complete": true,
"transaction.reservedBySystem": true,
"transaction.canceled": true,
"transaction.partiallyCanceled": true,
"checkout.completed": true,
"checkout.aborted": true,
"checkout.detailsSubmitted": true,
"ticket.created": true,
"ticket.updated": true,
"purchaseIntent.created": true,
"purchaseIntent.approved": true,
"purchaseIntent.rejected": true,
"purchaseIntent.updated": true,
"purchaseIntent.expired": true,
"purchaseIntent.completed": true,
"purchaseIntent.cancelled": true,
"customer.created": true,
"customer.updated": true,
"event.created": true,
"event.updated": true,
"event.deleted": true,
"job.started": true,
"job.failed": true,
"job.completed": true,
"support.assignedToSeller": true,
"ticketTransfer.created": true,
"ticketTransfer.rejected": true,
"ticketTransfer.transferred": true,
"ticketTransfer.expired": true,
"scan.created": true,
"bundle.created": true,
"bundle.updated": true,
"product.created": true,
"product.updated": true,
"product.deleted": true,
"subscription.created": true,
"subscription.updated": true,
"subscription.payment.succeeded": true,
"subscription.payment.failed": true,
"fund.created": true,
"fund.updated": true,
"campaign.created": true,
"campaign.updated": true,
"donation.created": true,
"pledge.created": true
},
"hmacKey": "string"
}),
})
const data = await response.json()Response (201)
{
"_id": "507f191e810c19729de860ea",
"name": "Example Name",
"url": "https://example.com",
"enabled": true,
"events": {
"transaction.complete": true,
"transaction.reservedBySystem": true,
"transaction.canceled": true,
"transaction.partiallyCanceled": true,
"checkout.completed": true,
"checkout.aborted": true,
"checkout.detailsSubmitted": true,
"ticket.created": true,
"ticket.updated": true,
"purchaseIntent.created": true,
"purchaseIntent.approved": true,
"purchaseIntent.rejected": true,
"purchaseIntent.updated": true,
"purchaseIntent.expired": true,
"purchaseIntent.completed": true,
"purchaseIntent.cancelled": true,
"customer.created": true,
"customer.updated": true,
"event.created": true,
"event.updated": true,
"event.deleted": true,
"job.started": true,
"job.failed": true,
"job.completed": true,
"support.assignedToSeller": true,
"ticketTransfer.created": true,
"ticketTransfer.rejected": true,
"ticketTransfer.transferred": true,
"ticketTransfer.expired": true,
"scan.created": true,
"bundle.created": true,
"bundle.updated": true,
"product.created": true,
"product.updated": true,
"product.deleted": true,
"subscription.created": true,
"subscription.updated": true,
"subscription.payment.succeeded": true,
"subscription.payment.failed": true,
"fund.created": true,
"fund.updated": true,
"campaign.created": true,
"campaign.updated": true,
"donation.created": true,
"pledge.created": true
},
"hmacKey": "string",
"createdBy": {
"type": "USER",
"id": "507f191e810c19729de860ea"
}
}Delete a Webhook
Delete a Webhook
Request
const response = await fetch('https://vivenu.com/api/webhook/507f191e810c19729de860ea', {
method: 'DELETE',
headers: {
Authorization: 'Bearer {token}',
},
})
const data = await response.json()Response (200)
{
"_id": "507f191e810c19729de860ea",
"name": "Example Name",
"url": "https://example.com",
"enabled": true,
"events": {
"transaction.complete": true,
"transaction.reservedBySystem": true,
"transaction.canceled": true,
"transaction.partiallyCanceled": true,
"checkout.completed": true,
"checkout.aborted": true,
"checkout.detailsSubmitted": true,
"ticket.created": true,
"ticket.updated": true,
"purchaseIntent.created": true,
"purchaseIntent.approved": true,
"purchaseIntent.rejected": true,
"purchaseIntent.updated": true,
"purchaseIntent.expired": true,
"purchaseIntent.completed": true,
"purchaseIntent.cancelled": true,
"customer.created": true,
"customer.updated": true,
"event.created": true,
"event.updated": true,
"event.deleted": true,
"job.started": true,
"job.failed": true,
"job.completed": true,
"support.assignedToSeller": true,
"ticketTransfer.created": true,
"ticketTransfer.rejected": true,
"ticketTransfer.transferred": true,
"ticketTransfer.expired": true,
"scan.created": true,
"bundle.created": true,
"bundle.updated": true,
"product.created": true,
"product.updated": true,
"product.deleted": true,
"subscription.created": true,
"subscription.updated": true,
"subscription.payment.succeeded": true,
"subscription.payment.failed": true,
"fund.created": true,
"fund.updated": true,
"campaign.created": true,
"campaign.updated": true,
"donation.created": true,
"pledge.created": true
},
"hmacKey": "string",
"createdBy": {
"type": "USER",
"id": "507f191e810c19729de860ea"
}
}Get all webhooks
Get all webhooks
Query parameters
Optional query parameters
- Name
top- Type
- integer
- Description
- Name
skip- Type
- integer
- Description
Request
const response = await fetch('https://vivenu.com/api/webhooks?top=1&skip=1', {
method: 'GET',
headers: {
Authorization: 'Bearer {token}',
},
})
const data = await response.json()Response (200)
{
"docs": [
{
"_id": "507f191e810c19729de860ea",
"name": "Example Name",
"url": "https://example.com",
"enabled": true,
"events": {
"transaction.complete": true,
"transaction.reservedBySystem": true,
"transaction.canceled": true,
"transaction.partiallyCanceled": true,
"checkout.completed": true,
"checkout.aborted": true,
"checkout.detailsSubmitted": true,
"ticket.created": true,
"ticket.updated": true,
"purchaseIntent.created": true,
"purchaseIntent.approved": true,
"purchaseIntent.rejected": true,
"purchaseIntent.updated": true,
"purchaseIntent.expired": true,
"purchaseIntent.completed": true,
"purchaseIntent.cancelled": true,
"customer.created": true,
"customer.updated": true,
"event.created": true,
"event.updated": true,
"event.deleted": true,
"job.started": true,
"job.failed": true,
"job.completed": true,
"support.assignedToSeller": true,
"ticketTransfer.created": true,
"ticketTransfer.rejected": true,
"ticketTransfer.transferred": true,
"ticketTransfer.expired": true,
"scan.created": true,
"bundle.created": true,
"bundle.updated": true,
"product.created": true,
"product.updated": true,
"product.deleted": true,
"subscription.created": true,
"subscription.updated": true,
"subscription.payment.succeeded": true,
"subscription.payment.failed": true,
"fund.created": true,
"fund.updated": true,
"campaign.created": true,
"campaign.updated": true,
"donation.created": true,
"pledge.created": true
},
"hmacKey": "string",
"createdBy": {
"type": "USER",
"id": "507f191e810c19729de860ea"
}
}
],
"total": 1
}Webhook Events
Transaction
| Event | Trigger | Payload |
|---|---|---|
transaction.complete | When a transaction transitions to COMPLETE | Link |
transaction.reservedBySystem | When a transaction is created RESERVED_BY_SYSTEM | Link |
transaction.canceled | When a transaction transitions to CANCELED | Link |
transaction.partiallyCanceled | When a transaction is partially canceled | Link |
Checkout
| Event | Trigger | Payload |
|---|---|---|
checkout.completed | When a checkout transitions to COMPLETE | Link |
checkout.aborted | When a checkout transitions to ABORTED | Link |
checkout.detailsSubmitted | When a checkout receives customer details | Link |
Ticket
| Event | Trigger | Payload |
|---|---|---|
ticket.created | When a ticket is created | Link |
ticket.updated | When a ticket is updated | Link |
Purchase Intent
| Event | Trigger | Payload |
|---|---|---|
purchaseIntent.created | When a purchase intent is created | Link |
purchaseIntent.updated | When a purchase intent is updated | Link |
purchaseIntent.completed | When a purchase intent is completed | Link |
purchaseIntent.approved | When a purchase intent is approved | Link |
purchaseIntent.rejected | When a purchase intent is rejected | Link |
purchaseIntent.expired | When a purchase intent expires | Link |
purchaseIntent.cancelled | When a purchase intent is cancelled | Link |
Customer
| Event | Trigger | Payload |
|---|---|---|
customer.created | When a customer is created | Link |
customer.updated | When a customer is updated | Link |
Event
| Event | Trigger | Payload |
|---|---|---|
event.created | When an event is created | Link |
event.updated | When an event is updated | Link |
event.deleted | When an event is deleted | Link |
Job
| Event | Trigger | Payload |
|---|---|---|
job.started | When a job starts | Link |
job.failed | When a job fails | Link |
job.completed | When a job is completed | Link |
Support
| Event | Trigger | Payload |
|---|---|---|
support.assignedToSeller | When a support ticket is assigned to seller | Link |
Ticket Transfer
| Event | Trigger | Payload |
|---|---|---|
ticketTransfer.created | When a ticket transfer is created | Link |
ticketTransfer.rejected | When a ticket transfer is rejected | Link |
ticketTransfer.transferred | When a ticket transfer is transferred | Link |
ticketTransfer.expired | When a ticket transfer is expired | Link |
Scan
| Event | Trigger | Payload |
|---|---|---|
scan.created | When a scan is created | Link |
Subscription
| Event | Trigger | Payload |
|---|---|---|
subscription.created | When a subscription is created | Link |
subscription.updated | When a subscription is updated | Link |
subscription.payment.succeeded | When a subscription payment succeeded | Link |
subscription.payment.failed | When a subscription payment failed | Link |
Bundle
| Event | Trigger | Payload |
|---|---|---|
bundle.created | When a bundle is created | Link |
bundle.updated | When a bundle is updated | Link |
Product
| Event | Trigger | Payload |
|---|---|---|
product.created | When a product is created | Link |
product.updated | When a product is updated | Link |
product.deleted | When a product is deleted | Link |
Webhook Payload
The object posted to your listener server. Each event has an individual data object. Examples of these data objects are listed below.
Required attributes
- Name
mode- Type
- enum(dev, prod)
- Description
The mode of the service sending this webhook
Optional attributes
- Name
id- Type
- string
- Description
The unique ID of the HTTP transmission.
- Name
type- Type
- enum(transaction.complete, transaction.reservedBySystem, transaction.canceled, transaction.partiallyCanceled, checkout.completed, checkout.aborted, checkout.detailsSubmitted, ticket.created, ticket.updated, purchaseIntent.created, purchaseIntent.approved, purchaseIntent.rejected, purchaseIntent.updated, purchaseIntent.expired, purchaseIntent.completed, purchaseIntent.cancelled, customer.created, customer.updated, event.created, event.updated, event.deleted, job.started, job.failed, job.completed, support.assignedToSeller, ticketTransfer.created, ticketTransfer.rejected, ticketTransfer.transferred, ticketTransfer.expired, scan.created, bundle.created, bundle.updated, product.created, product.updated, product.deleted, subscription.created, subscription.updated, subscription.payment.succeeded, subscription.payment.failed, fund.created, fund.updated, campaign.created, campaign.updated, donation.created, pledge.created)
- Description
The event type of the webhook
- Name
data- Type
- object
- Description
The associated data for this webhook
Example
{
"mode": "dev",
"id": "507f191e810c19729de860ea",
"type": "transaction.complete",
"data": {}
}transaction.complete
The data of the transaction complete webhook event.
Required attributes
- Name
transaction- Type
- object
- Description
- Name
tickets- Type
- array<object>
- Description
An array of the tickets associated to this transaction
Example
{
"tickets": []
}transaction.reservedBySystem
The data of the transaction reserved by system webhook event.
Required attributes
- Name
transaction- Type
- object
- Description
- Name
tickets- Type
- array<object>
- Description
An array of the tickets associated to this transaction
Example
{
"tickets": []
}transaction.canceled
The data of the transaction canceled webhook event.
Required attributes
- Name
transaction- Type
- object
- Description
- Name
tickets- Type
- array<object>
- Description
An array of the tickets associated to this transaction
Example
{
"tickets": []
}transaction.partiallyCanceled
The data of the transaction partially canceled webhook event.
Required attributes
- Name
transaction- Type
- object
- Description
Example
{}checkout.completed
The data of the checkout completed webhook event.
Required attributes
- Name
checkout- Type
- object
- Description
Example
{}checkout.aborted
The data of the checkout aborted webhook event.
Required attributes
- Name
checkout- Type
- object
- Description
Example
{}checkout.detailsSubmitted
The data of the checkout details submitted webhook event.
Required attributes
- Name
checkout- Type
- object
- Description
Example
{}ticket.created
The data of the ticket created webhook event.
Required attributes
- Name
ticket- Type
- object
- Description
Example
{}ticket.updated
The data of the ticket updated webhook event.
Required attributes
- Name
ticket- Type
- object
- Description
Example
{}purchaseIntent.created
The data of the purchase intent created webhook event.
Required attributes
- Name
purchaseIntent- Type
- object
- Description
Example
{}purchaseIntent.updated
The data of the purchase intent updated webhook event.
Required attributes
- Name
purchaseIntent- Type
- object
- Description
Example
{}purchaseIntent.completed
The data of the purchase intent completed webhook event.
Required attributes
- Name
purchaseIntent- Type
- object
- Description
Example
{}purchaseIntent.approved
The data of the purchase intent approved webhook event.
Required attributes
- Name
purchaseIntent- Type
- object
- Description
Example
{}purchaseIntent.rejected
The data of the purchase intent rejected webhook event.
Required attributes
- Name
purchaseIntent- Type
- object
- Description
Example
{}purchaseIntent.expired
The data of the purchase intent expired webhook event.
Required attributes
- Name
purchaseIntent- Type
- object
- Description
Example
{}purchaseIntent.cancelled
The data of the purchase intent cancelled webhook event.
Required attributes
- Name
purchaseIntent- Type
- object
- Description
Example
{}customer.created
The data of the customer created webhook event.
Required attributes
- Name
customer- Type
- object
- Description
Example
{}customer.updated
The data of the customer updated webhook event.
Required attributes
- Name
customer- Type
- object
- Description
Example
{}event.created
The data of the event created webhook event.
Required attributes
- Name
event- Type
- object
- Description
Example
{}event.updated
The data of the event updated webhook event.
Required attributes
- Name
event- Type
- object
- Description
Example
{}event.deleted
The data of the event deleted webhook event.
Required attributes
- Name
event- Type
- object
- Description
Example
{}job.started
The data of the job started webhook event.
Required attributes
- Name
job- Type
- oneOf
- Description
The associated job which has been started
Example
{
"job": {
"_id": "507f191e810c19729de860ea",
"sellerId": "507f191e810c19729de860ea",
"type": "transformJob",
"title": "string",
"status": "SCHEDULED",
"runAfter": "2030-01-23T23:00:00.123Z",
"startedAt": "2030-01-23T23:00:00.123Z",
"finishedAt": "2030-01-23T23:00:00.123Z",
"payload": {
"resource": "ticketRangeInvalidation",
"csv": "string",
"json": "string",
"params": {
"batch": "string",
"groups": [
[
1
]
]
}
}
}
}job.failed
The data of the job failed webhook event.
Required attributes
- Name
job- Type
- oneOf
- Description
The associated job which has been failed
Example
{
"job": {
"_id": "507f191e810c19729de860ea",
"sellerId": "507f191e810c19729de860ea",
"type": "transformJob",
"title": "string",
"status": "SCHEDULED",
"runAfter": "2030-01-23T23:00:00.123Z",
"startedAt": "2030-01-23T23:00:00.123Z",
"finishedAt": "2030-01-23T23:00:00.123Z",
"payload": {
"resource": "ticketRangeInvalidation",
"csv": "string",
"json": "string",
"params": {
"batch": "string",
"groups": [
[
1
]
]
}
}
}
}job.completed
The data of the job completed webhook event.
Required attributes
- Name
job- Type
- oneOf
- Description
The associated job which has been completed
Example
{
"job": {
"_id": "507f191e810c19729de860ea",
"sellerId": "507f191e810c19729de860ea",
"type": "transformJob",
"title": "string",
"status": "SCHEDULED",
"runAfter": "2030-01-23T23:00:00.123Z",
"startedAt": "2030-01-23T23:00:00.123Z",
"finishedAt": "2030-01-23T23:00:00.123Z",
"payload": {
"resource": "ticketRangeInvalidation",
"csv": "string",
"json": "string",
"params": {
"batch": "string",
"groups": [
[
1
]
]
}
}
}
}support.assignedToSeller
The data of the support assigned to seller webhook event.
Required attributes
- Name
support- Type
- object
- Description
The associated support has been assigned
Required nested attributes (9)
- Name
_id- Type
- string
- Description
The ID of the status
- Name
name- Type
- string
- Description
The name of the ticket
- Name
email- Type
- string
- Description
The email of the ticket creator
- Name
status- Type
- enum(NEW, INPROGRESS, RESOLVED)
- Description
The current status of the support ticket
- Name
priority- Type
- enum(LOW, MEDIUM, HIGH)
- Description
The priority of the support tickt
- Name
secret- Type
- string
- Description
The secret of the support ticket
- Name
lastInteraction- Type
- string
- Description
An ISO timestamp indicating the last interaction with the ticket
- Name
createdAt- Type
- string
- Description
An ISO timestamp indicating when the support ticket was created
- Name
updatedAt- Type
- string
- Description
An ISO timestamp indicating when the support ticket was updated
Optional nested attributes (12)
- Name
transactionId- Type
- string
- Description
The ID of the corresponding transaction
- Name
firstname- Type
- string
- Description
The firstname of the ticket creator
- Name
lastname- Type
- string
- Description
The lastname of the ticket creator
- Name
messages- Type
- array<object>
- Description
The sent messages associated with this ticket
Required nested attributes (4)
- Name
_id- Type
- string
- Description
The ID of the support message
- Name
userId- Type
- string
- Description
The ID of the user who sent the message
- Name
senderName- Type
- string
- Description
The name of the message sender
- Name
message- Type
- string
- Description
The text content of the support message
Optional nested attributes (1)
- Name
createdAt- Type
- string
- Description
An ISO timestamp indicating when the message was created
- Name
assignee- Type
- string
- Description
The userId of the assignee
- Name
assignedToSeller- Type
- boolean
- Description
Flag indicating whether the ticket is assigned to the seller
- Name
note- Type
- string
- Description
Some internal notes in this support ticket.
- Name
sellerId- Type
- string
- Description
The ID of the seller of the support ticket
- Name
preferredLanguage- Type
- enum(de, de-CH, en, en-GB, en-AU, fr, es, es-MX, is, it, ru, pt, tr, nb, nl, pl, sv, sl, da, cs, lv, he, ar, th, ko, ja, zh-TW)
- Description
- Name
customerId- Type
- string
- Description
The ID of the customer
- Name
tags- Type
- array<string>
- Description
- Name
context- Type
- object
- Description
Example
{
"support": {
"_id": "507f191e810c19729de860ea",
"name": "Example Name",
"email": "example@vivenu.com",
"status": "NEW",
"priority": "MEDIUM",
"secret": "string",
"lastInteraction": "2030-01-23T23:00:00.123Z",
"createdAt": "2030-01-23T23:00:00.123Z",
"updatedAt": "2030-01-23T23:00:00.123Z",
"transactionId": "507f191e810c19729de860ea",
"firstname": "string",
"lastname": "string",
"messages": [
{
"_id": "507f191e810c19729de860ea",
"userId": "507f191e810c19729de860ea",
"senderName": "string",
"message": "string",
"createdAt": "2030-01-23T23:00:00.123Z"
}
],
"assignee": "string",
"assignedToSeller": true,
"note": "string",
"sellerId": "507f191e810c19729de860ea",
"preferredLanguage": "de",
"customerId": "507f191e810c19729de860ea",
"tags": [
"string"
],
"context": {}
}
}ticketTransfer.created
The data of the ticket transfer created webhook event.
Required attributes
- Name
ticketTransfer- Type
- object
- Description
Example
{}ticketTransfer.rejected
The data of the ticket transfer rejected webhook event.
Required attributes
- Name
ticketTransfer- Type
- object
- Description
Example
{}ticketTransfer.transferred
The data of the ticket transfer transferred webhook event.
Required attributes
- Name
ticketTransfer- Type
- object
- Description
Example
{}ticketTransfer.expired
The data of the ticket transfer expired webhook event.
Required attributes
- Name
ticketTransfer- Type
- object
- Description
Example
{}scan.created
The data of the scan created webhook event.
Required attributes
- Name
scan- Type
- object
- Description
The associated scan which has been created
Required nested attributes (6)
- Name
ticketId- Type
- string
- Description
The ID of the ticket
- Name
eventId- Type
- string
- Description
The ID of the event
- Name
barcode- Type
- string
- Description
The barcode
- Name
ticketTypeId- Type
- string
- Description
The ID of the ticket type
- Name
type- Type
- enum(checkin, checkout)
- Description
The scan type
- Name
scanResult- Type
- enum(approved, declined)
- Description
The scan result
Optional nested attributes (6)
- Name
time- Type
- string
- Description
The date of the scan
- Name
parentEventId- Type
- string
- Description
The ID of parent event
- Name
name- Type
- string
- Description
The name on ticket
- Name
ticketName- Type
- string
- Description
The ticket type name
- Name
deviceId- Type
- string
- Description
The ID of the device
- Name
sellerId- Type
- string
- Description
The ID of the seller
Example
{
"scan": {
"ticketId": "507f191e810c19729de860ea",
"eventId": "507f191e810c19729de860ea",
"barcode": "string",
"ticketTypeId": "507f191e810c19729de860ea",
"type": "checkin",
"scanResult": "approved",
"time": "2030-01-23T23:00:00.123Z",
"parentEventId": "507f191e810c19729de860ea",
"name": "Example Name",
"ticketName": "string",
"deviceId": "507f191e810c19729de860ea",
"sellerId": "507f191e810c19729de860ea"
}
}subscription.created
The data of the subscription created event.
Required attributes
- Name
subscription- Type
- object
- Description
Example
{}subscription.updated
The data of the subscription updated event.
Required attributes
- Name
subscription- Type
- object
- Description
Example
{}subscription.payment.succeeded
The data of the subscription payment succeeded event.
Required attributes
- Name
subscription- Type
- object
- Description
Example
{}subscription.payment.failed
The data of the subscription payment failed event.
Required attributes
- Name
subscription- Type
- object
- Description
Example
{}bundle.created
The data of the bundle created webhook event.
Required attributes
- Name
bundle- Type
- object
- Description
The associated bundle which has been created
Required nested attributes (8)
- Name
_id- Type
- string
- Description
The ID of the bundle
- Name
active- Type
- boolean
- Description
Whether the bundle is active
- Name
name- Type
- string
- Description
The name of the bundle
- Name
description- Type
- string
- Description
The description of the bundle
- Name
components- Type
- array<object>
- Description
The components of the bundle
Required nested attributes (4)
- Name
name- Type
- string
- Description
The ID of the bundle component
- Name
options- Type
- array<oneOf>
- Description
Options for the bundle component
- Name
minQuantity- Type
- number
- Description
Minimum quantity of the bundle component
- Name
maxQuantity- Type
- number
- Description
Maximum quantity of the bundle component
Optional nested attributes (2)
- Name
_id- Type
- string
- Description
The ID of the bundle component
- Name
localization- Type
- object
- Description
Localization of the bundle component for multiple languages
- Name
triggers- Type
- array<object>
- Description
The triggers of the bundle
Optional nested attributes (3)
- Name
_id- Type
- string
- Description
The ID of the bundle component
- Name
type- Type
- string
- Description
- Name
target- Type
- object
- Description
Required nested attributes (1)
- Name
componentId- Type
- string
- Description
The component which should trigger the bundle
- Name
sellerId- Type
- string
- Description
The ID of the seller of the bundle
- Name
showOnlyTotalPrice- Type
- boolean
- Description
Whether to show the total only
Optional nested attributes (4)
- Name
image- Type
- string
- Description
The image of the bundle
- Name
createdAt- Type
- string
- Description
An ISO timestamp indicating when the product was created
- Name
updatedAt- Type
- string
- Description
An ISO timestamp indicating when the product was updated
- Name
localization- Type
- object
- Description
Localization of the bundle for multiple languages
Example
{
"bundle": {
"_id": "507f191e810c19729de860ea",
"active": true,
"name": "Example Name",
"description": "string",
"components": [
{
"name": "Example Name",
"options": [
{
"type": "pricetype",
"priceType": {
"priceTableId": "507f191e810c19729de860ea",
"priceTypeId": "507f191e810c19729de860ea"
},
"_id": "507f191e810c19729de860ea",
"price": 10.5
}
],
"minQuantity": 10.5,
"maxQuantity": 10.5,
"_id": "507f191e810c19729de860ea",
"localization": {}
}
],
"triggers": [
{
"_id": "507f191e810c19729de860ea",
"type": "string",
"target": {
"componentId": "507f191e810c19729de860ea"
}
}
],
"sellerId": "507f191e810c19729de860ea",
"showOnlyTotalPrice": true,
"image": "string",
"createdAt": "2030-01-23T23:00:00.123Z",
"updatedAt": "2030-01-23T23:00:00.123Z",
"localization": {}
}
}bundle.updated
The data of the bundle updated webhook event.
Required attributes
- Name
bundle- Type
- object
- Description
The associated bundle which has been updated
Required nested attributes (8)
- Name
_id- Type
- string
- Description
The ID of the bundle
- Name
active- Type
- boolean
- Description
Whether the bundle is active
- Name
name- Type
- string
- Description
The name of the bundle
- Name
description- Type
- string
- Description
The description of the bundle
- Name
components- Type
- array<object>
- Description
The components of the bundle
Required nested attributes (4)
- Name
name- Type
- string
- Description
The ID of the bundle component
- Name
options- Type
- array<oneOf>
- Description
Options for the bundle component
- Name
minQuantity- Type
- number
- Description
Minimum quantity of the bundle component
- Name
maxQuantity- Type
- number
- Description
Maximum quantity of the bundle component
Optional nested attributes (2)
- Name
_id- Type
- string
- Description
The ID of the bundle component
- Name
localization- Type
- object
- Description
Localization of the bundle component for multiple languages
- Name
triggers- Type
- array<object>
- Description
The triggers of the bundle
Optional nested attributes (3)
- Name
_id- Type
- string
- Description
The ID of the bundle component
- Name
type- Type
- string
- Description
- Name
target- Type
- object
- Description
Required nested attributes (1)
- Name
componentId- Type
- string
- Description
The component which should trigger the bundle
- Name
sellerId- Type
- string
- Description
The ID of the seller of the bundle
- Name
showOnlyTotalPrice- Type
- boolean
- Description
Whether to show the total only
Optional nested attributes (4)
- Name
image- Type
- string
- Description
The image of the bundle
- Name
createdAt- Type
- string
- Description
An ISO timestamp indicating when the product was created
- Name
updatedAt- Type
- string
- Description
An ISO timestamp indicating when the product was updated
- Name
localization- Type
- object
- Description
Localization of the bundle for multiple languages
Example
{
"bundle": {
"_id": "507f191e810c19729de860ea",
"active": true,
"name": "Example Name",
"description": "string",
"components": [
{
"name": "Example Name",
"options": [
{
"type": "pricetype",
"priceType": {
"priceTableId": "507f191e810c19729de860ea",
"priceTypeId": "507f191e810c19729de860ea"
},
"_id": "507f191e810c19729de860ea",
"price": 10.5
}
],
"minQuantity": 10.5,
"maxQuantity": 10.5,
"_id": "507f191e810c19729de860ea",
"localization": {}
}
],
"triggers": [
{
"_id": "507f191e810c19729de860ea",
"type": "string",
"target": {
"componentId": "507f191e810c19729de860ea"
}
}
],
"sellerId": "507f191e810c19729de860ea",
"showOnlyTotalPrice": true,
"image": "string",
"createdAt": "2030-01-23T23:00:00.123Z",
"updatedAt": "2030-01-23T23:00:00.123Z",
"localization": {}
}
}product.created
The data of the product created webhook event.
Required attributes
- Name
product- Type
- object
- Description
Required nested attributes (4)
- Name
_id- Type
- string
- Description
The ID of the product
- Name
name- Type
- string
- Description
The name of the product
- Name
type- Type
- enum(voucher, product, donation, membership, addOn)
- Description
The type of the product
- Name
sellerId- Type
- string
- Description
The ID of the seller of the product
Optional nested attributes (13)
- Name
active- Type
- boolean
- Description
Whether the product is active and can be distributed
- Name
isFulfillable- Type
- boolean
- Description
Whether the product can be delivered
- Name
image- Type
- string
- Description
The image of the product
- Name
description- Type
- string
- Description
The description of the product
- Name
variants- Type
- array<object>
- Description
An array of variants of the product
Required nested attributes (2)
- Name
_id- Type
- string
- Description
The ID of the product variant of the product
- Name
taxable- Type
- boolean
- Description
Whether the product is taxable or not
Optional nested attributes (10)
- Name
name- Type
- string
- Description
The Name of the product variant, defaults to product name if not specified
- Name
description- Type
- string
- Description
A description of the variant
- Name
priceType- Type
- enum(fixed, range)
- Description
- Name
price- Type
- number
- Description
The price of the product
- Name
priceRange- Type
- object
- Description
Optional nested attributes (2)
- Name
min- Type
- number
- Description
The minimum price of the product
- Name
max- Type
- number
- Description
The maximum price of the product
- Name
taxRate- Type
- number
- Description
The tax rate of the product
- Name
compareAtPrice- Type
- number
- Description
The recommended retail price to compare with the actual price.
- Name
taxServiceTypeId- Type
- string
- Description
The ID of the tax service of the product
- Name
gtin- Type
- string
- Description
- Name
localization- Type
- object
- Description
Localization of the product for multiple languages
- Name
categoryIds- Type
- array<string>
- Description
An array of categories to which the product belongs
- Name
voucherSettings- Type
- object
- Description
If the product is of type voucher
Optional nested attributes (5)
- Name
limitedValidityPeriod- Type
- boolean
- Description
Whether the voucher should expire
- Name
validityConfig- Type
- object
- Description
Optional nested attributes (3)
- Name
amount- Type
- number
- Description
- Name
type- Type
- number
- Description
- Name
untilEndOfPeriod- Type
- boolean
- Description
- Name
pdfImage- Type
- string
- Description
A marketing image printed onto voucher pdf
- Name
disclaimer- Type
- string
- Description
A disclaimer text printed onto voucher pdf
- Name
documentTemplateSettings- Type
- object
- Description
Optional nested attributes (1)
- Name
templates- Type
- array<object>
- Description
Required nested attributes (4)
- Name
templateId- Type
- string
- Description
The ID of the document template
- Name
format- Type
- enum(A4, LETTER, LEGAL, BOARDING-PASS, PLASTIC-CARD, CARD, LABEL, CUSTOM, APPLE, GOOGLE)
- Description
The format of document template for the dimensions.
- Name
target- Type
- enum(thermal, digital, wallet)
- Description
The target of document template for which targets it should be used.
- Name
type- Type
- enum(ticket, invoice, voucher, member-card, header-card)
- Description
The type of document template for which document it should be used. ticket = The document template will be used on tickets. invoice = The document template will be used on invoices.
- Name
addOnSettings- Type
- object
- Description
Optional nested attributes (2)
- Name
optOutDescription- Type
- string
- Description
The description that is shown to the user if he decides to not buy the addOn
- Name
localization- Type
- object
- Description
Localization of the addOnSettings for multiple languages
- Name
donationSettings- Type
- object
- Description
Settings for donation products
Required nested attributes (2)
- Name
campaignId- Type
- string
- Description
The ID of the fundraise campaign
- Name
fundId- Type
- string
- Description
The ID of the donation fund
- Name
meta- Type
- object
- Description
Custom key-value data. Metadata is useful for storing additional, structured information on an object.
- Name
localization- Type
- object
- Description
Localization of the product for multiple languages
- Name
createdAt- Type
- string
- Description
An ISO timestamp indicating when the product was created
- Name
updatedAt- Type
- string
- Description
An ISO timestamp indicating when the product was updated
Example
{
"product": {
"_id": "507f191e810c19729de860ea",
"name": "Example Name",
"type": "voucher",
"sellerId": "507f191e810c19729de860ea",
"active": true,
"isFulfillable": true,
"image": "string",
"description": "string",
"variants": [
{
"_id": "507f191e810c19729de860ea",
"taxable": true,
"name": "Example Name",
"description": "string",
"priceType": "fixed",
"price": 10.5,
"priceRange": {
"min": 10.5,
"max": 10.5
},
"taxRate": 10.5,
"compareAtPrice": 10.5,
"taxServiceTypeId": "507f191e810c19729de860ea",
"gtin": "string",
"localization": {}
}
],
"categoryIds": [
"string"
],
"voucherSettings": {
"limitedValidityPeriod": true,
"validityConfig": {
"amount": 10.5,
"type": 10.5,
"untilEndOfPeriod": true
},
"pdfImage": "string",
"disclaimer": "string",
"documentTemplateSettings": {
"templates": [
{
"templateId": "507f191e810c19729de860ea",
"format": "A4",
"target": "thermal",
"type": "ticket"
}
]
}
},
"addOnSettings": {
"optOutDescription": "string",
"localization": {}
},
"donationSettings": {
"campaignId": "507f191e810c19729de860ea",
"fundId": "507f191e810c19729de860ea"
},
"meta": {},
"localization": {},
"createdAt": "2030-01-23T23:00:00.123Z",
"updatedAt": "2030-01-23T23:00:00.123Z"
}
}product.updated
The data of the product updated webhook event.
Required attributes
- Name
product- Type
- object
- Description
Required nested attributes (4)
- Name
_id- Type
- string
- Description
The ID of the product
- Name
name- Type
- string
- Description
The name of the product
- Name
type- Type
- enum(voucher, product, donation, membership, addOn)
- Description
The type of the product
- Name
sellerId- Type
- string
- Description
The ID of the seller of the product
Optional nested attributes (13)
- Name
active- Type
- boolean
- Description
Whether the product is active and can be distributed
- Name
isFulfillable- Type
- boolean
- Description
Whether the product can be delivered
- Name
image- Type
- string
- Description
The image of the product
- Name
description- Type
- string
- Description
The description of the product
- Name
variants- Type
- array<object>
- Description
An array of variants of the product
Required nested attributes (2)
- Name
_id- Type
- string
- Description
The ID of the product variant of the product
- Name
taxable- Type
- boolean
- Description
Whether the product is taxable or not
Optional nested attributes (10)
- Name
name- Type
- string
- Description
The Name of the product variant, defaults to product name if not specified
- Name
description- Type
- string
- Description
A description of the variant
- Name
priceType- Type
- enum(fixed, range)
- Description
- Name
price- Type
- number
- Description
The price of the product
- Name
priceRange- Type
- object
- Description
Optional nested attributes (2)
- Name
min- Type
- number
- Description
The minimum price of the product
- Name
max- Type
- number
- Description
The maximum price of the product
- Name
taxRate- Type
- number
- Description
The tax rate of the product
- Name
compareAtPrice- Type
- number
- Description
The recommended retail price to compare with the actual price.
- Name
taxServiceTypeId- Type
- string
- Description
The ID of the tax service of the product
- Name
gtin- Type
- string
- Description
- Name
localization- Type
- object
- Description
Localization of the product for multiple languages
- Name
categoryIds- Type
- array<string>
- Description
An array of categories to which the product belongs
- Name
voucherSettings- Type
- object
- Description
If the product is of type voucher
Optional nested attributes (5)
- Name
limitedValidityPeriod- Type
- boolean
- Description
Whether the voucher should expire
- Name
validityConfig- Type
- object
- Description
Optional nested attributes (3)
- Name
amount- Type
- number
- Description
- Name
type- Type
- number
- Description
- Name
untilEndOfPeriod- Type
- boolean
- Description
- Name
pdfImage- Type
- string
- Description
A marketing image printed onto voucher pdf
- Name
disclaimer- Type
- string
- Description
A disclaimer text printed onto voucher pdf
- Name
documentTemplateSettings- Type
- object
- Description
Optional nested attributes (1)
- Name
templates- Type
- array<object>
- Description
Required nested attributes (4)
- Name
templateId- Type
- string
- Description
The ID of the document template
- Name
format- Type
- enum(A4, LETTER, LEGAL, BOARDING-PASS, PLASTIC-CARD, CARD, LABEL, CUSTOM, APPLE, GOOGLE)
- Description
The format of document template for the dimensions.
- Name
target- Type
- enum(thermal, digital, wallet)
- Description
The target of document template for which targets it should be used.
- Name
type- Type
- enum(ticket, invoice, voucher, member-card, header-card)
- Description
The type of document template for which document it should be used. ticket = The document template will be used on tickets. invoice = The document template will be used on invoices.
- Name
addOnSettings- Type
- object
- Description
Optional nested attributes (2)
- Name
optOutDescription- Type
- string
- Description
The description that is shown to the user if he decides to not buy the addOn
- Name
localization- Type
- object
- Description
Localization of the addOnSettings for multiple languages
- Name
donationSettings- Type
- object
- Description
Settings for donation products
Required nested attributes (2)
- Name
campaignId- Type
- string
- Description
The ID of the fundraise campaign
- Name
fundId- Type
- string
- Description
The ID of the donation fund
- Name
meta- Type
- object
- Description
Custom key-value data. Metadata is useful for storing additional, structured information on an object.
- Name
localization- Type
- object
- Description
Localization of the product for multiple languages
- Name
createdAt- Type
- string
- Description
An ISO timestamp indicating when the product was created
- Name
updatedAt- Type
- string
- Description
An ISO timestamp indicating when the product was updated
Example
{
"product": {
"_id": "507f191e810c19729de860ea",
"name": "Example Name",
"type": "voucher",
"sellerId": "507f191e810c19729de860ea",
"active": true,
"isFulfillable": true,
"image": "string",
"description": "string",
"variants": [
{
"_id": "507f191e810c19729de860ea",
"taxable": true,
"name": "Example Name",
"description": "string",
"priceType": "fixed",
"price": 10.5,
"priceRange": {
"min": 10.5,
"max": 10.5
},
"taxRate": 10.5,
"compareAtPrice": 10.5,
"taxServiceTypeId": "507f191e810c19729de860ea",
"gtin": "string",
"localization": {}
}
],
"categoryIds": [
"string"
],
"voucherSettings": {
"limitedValidityPeriod": true,
"validityConfig": {
"amount": 10.5,
"type": 10.5,
"untilEndOfPeriod": true
},
"pdfImage": "string",
"disclaimer": "string",
"documentTemplateSettings": {
"templates": [
{
"templateId": "507f191e810c19729de860ea",
"format": "A4",
"target": "thermal",
"type": "ticket"
}
]
}
},
"addOnSettings": {
"optOutDescription": "string",
"localization": {}
},
"donationSettings": {
"campaignId": "507f191e810c19729de860ea",
"fundId": "507f191e810c19729de860ea"
},
"meta": {},
"localization": {},
"createdAt": "2030-01-23T23:00:00.123Z",
"updatedAt": "2030-01-23T23:00:00.123Z"
}
}product.deleted
The data of the product deleted webhook event.
Required attributes
- Name
product- Type
- object
- Description
Required nested attributes (4)
- Name
_id- Type
- string
- Description
The ID of the product
- Name
name- Type
- string
- Description
The name of the product
- Name
type- Type
- enum(voucher, product, donation, membership, addOn)
- Description
The type of the product
- Name
sellerId- Type
- string
- Description
The ID of the seller of the product
Optional nested attributes (13)
- Name
active- Type
- boolean
- Description
Whether the product is active and can be distributed
- Name
isFulfillable- Type
- boolean
- Description
Whether the product can be delivered
- Name
image- Type
- string
- Description
The image of the product
- Name
description- Type
- string
- Description
The description of the product
- Name
variants- Type
- array<object>
- Description
An array of variants of the product
Required nested attributes (2)
- Name
_id- Type
- string
- Description
The ID of the product variant of the product
- Name
taxable- Type
- boolean
- Description
Whether the product is taxable or not
Optional nested attributes (10)
- Name
name- Type
- string
- Description
The Name of the product variant, defaults to product name if not specified
- Name
description- Type
- string
- Description
A description of the variant
- Name
priceType- Type
- enum(fixed, range)
- Description
- Name
price- Type
- number
- Description
The price of the product
- Name
priceRange- Type
- object
- Description
Optional nested attributes (2)
- Name
min- Type
- number
- Description
The minimum price of the product
- Name
max- Type
- number
- Description
The maximum price of the product
- Name
taxRate- Type
- number
- Description
The tax rate of the product
- Name
compareAtPrice- Type
- number
- Description
The recommended retail price to compare with the actual price.
- Name
taxServiceTypeId- Type
- string
- Description
The ID of the tax service of the product
- Name
gtin- Type
- string
- Description
- Name
localization- Type
- object
- Description
Localization of the product for multiple languages
- Name
categoryIds- Type
- array<string>
- Description
An array of categories to which the product belongs
- Name
voucherSettings- Type
- object
- Description
If the product is of type voucher
Optional nested attributes (5)
- Name
limitedValidityPeriod- Type
- boolean
- Description
Whether the voucher should expire
- Name
validityConfig- Type
- object
- Description
Optional nested attributes (3)
- Name
amount- Type
- number
- Description
- Name
type- Type
- number
- Description
- Name
untilEndOfPeriod- Type
- boolean
- Description
- Name
pdfImage- Type
- string
- Description
A marketing image printed onto voucher pdf
- Name
disclaimer- Type
- string
- Description
A disclaimer text printed onto voucher pdf
- Name
documentTemplateSettings- Type
- object
- Description
Optional nested attributes (1)
- Name
templates- Type
- array<object>
- Description
Required nested attributes (4)
- Name
templateId- Type
- string
- Description
The ID of the document template
- Name
format- Type
- enum(A4, LETTER, LEGAL, BOARDING-PASS, PLASTIC-CARD, CARD, LABEL, CUSTOM, APPLE, GOOGLE)
- Description
The format of document template for the dimensions.
- Name
target- Type
- enum(thermal, digital, wallet)
- Description
The target of document template for which targets it should be used.
- Name
type- Type
- enum(ticket, invoice, voucher, member-card, header-card)
- Description
The type of document template for which document it should be used. ticket = The document template will be used on tickets. invoice = The document template will be used on invoices.
- Name
addOnSettings- Type
- object
- Description
Optional nested attributes (2)
- Name
optOutDescription- Type
- string
- Description
The description that is shown to the user if he decides to not buy the addOn
- Name
localization- Type
- object
- Description
Localization of the addOnSettings for multiple languages
- Name
donationSettings- Type
- object
- Description
Settings for donation products
Required nested attributes (2)
- Name
campaignId- Type
- string
- Description
The ID of the fundraise campaign
- Name
fundId- Type
- string
- Description
The ID of the donation fund
- Name
meta- Type
- object
- Description
Custom key-value data. Metadata is useful for storing additional, structured information on an object.
- Name
localization- Type
- object
- Description
Localization of the product for multiple languages
- Name
createdAt- Type
- string
- Description
An ISO timestamp indicating when the product was created
- Name
updatedAt- Type
- string
- Description
An ISO timestamp indicating when the product was updated
Example
{
"product": {
"_id": "507f191e810c19729de860ea",
"name": "Example Name",
"type": "voucher",
"sellerId": "507f191e810c19729de860ea",
"active": true,
"isFulfillable": true,
"image": "string",
"description": "string",
"variants": [
{
"_id": "507f191e810c19729de860ea",
"taxable": true,
"name": "Example Name",
"description": "string",
"priceType": "fixed",
"price": 10.5,
"priceRange": {
"min": 10.5,
"max": 10.5
},
"taxRate": 10.5,
"compareAtPrice": 10.5,
"taxServiceTypeId": "507f191e810c19729de860ea",
"gtin": "string",
"localization": {}
}
],
"categoryIds": [
"string"
],
"voucherSettings": {
"limitedValidityPeriod": true,
"validityConfig": {
"amount": 10.5,
"type": 10.5,
"untilEndOfPeriod": true
},
"pdfImage": "string",
"disclaimer": "string",
"documentTemplateSettings": {
"templates": [
{
"templateId": "507f191e810c19729de860ea",
"format": "A4",
"target": "thermal",
"type": "ticket"
}
]
}
},
"addOnSettings": {
"optOutDescription": "string",
"localization": {}
},
"donationSettings": {
"campaignId": "507f191e810c19729de860ea",
"fundId": "507f191e810c19729de860ea"
},
"meta": {},
"localization": {},
"createdAt": "2030-01-23T23:00:00.123Z",
"updatedAt": "2030-01-23T23:00:00.123Z"
}
}