Distribution API

The Distribution API allows partners to integrate to sell tickets on other marketplaces & platforms. Sellers can configure which events & tickets are available for distribution with the partners.

The API allows you to list available sellers, available events, availabilities for the events and book tickets for them.

Authentication

Authentication for the Distribution API is separate from the other vivenu APIs. You need a secret API key & a registered distributor type that identifies your integration.

  • Authorization - a secret API key provided to you by vivenu.
  • x-distributor-type - a string that identifies your integration.

With this you can access all sellers that have enabled your integration, for the events and tickets that they enabled for distribution through you.

Endpoints

The DistributionSeller Object

Attributes

distributorId
Required
string

The unique id for the seller

name
Required
string

The name of the seller

Was this section helpful?
YesNo
Example
{
"distributorId": "string",
"name": "string"
}

The DistributionEvent Object

Attributes

eventId
Required
string

The unique id for the event

name
Required
string

The name of the event

start
Required
string

The event start date & time

currency
Required
string date-time

The currency the prices for this event are in

timezone
Required
string

The timezone of the event

isRecurring
Required
boolean

Whether the event is recurring

seatingType
Required
string

The type of seating for this event

NoneGroups
offers
Required
array

The available offers for this event

offers[].offerId
Required
string

The unique id for the offer

offers[].name
Required
string

The name of the offer

offers[].price
Required
number float

The price for the offer

Optional Attributes

Collapse all

Optional Attributes

Collapse all
Was this section helpful?
YesNo
Example
{
"eventId": "string",
"name": "string",
"location": {
"name": "string",
"line1": "string",
"line2": "string",
"city": "string",
"postalCode": "string",
"state": "string",
"country": "string"
},
"information": {
"category": "string",
"subCategory": "string"
},
"start": "string",
"end": "string",
"currency": "2030-01-23T23:00:00.123Z",
"timezone": "string",
"isRecurring": true,
"seatingType": "None",
"offers": [
{
"offerId": "string",
"name": "string",
"meta": {},
"price": 10.5
}
],
"timeSlots": [
{
"startTime": {
"hour": 10.5,
"minute": 10.5
},
"offers": [
{
"offerId": "string"
}
]
}
]
}

The DistributionAvailability Object

Attributes

eventId
Required
string

The unique id for the event

availibilityId
Required
string

The unique id for the availibility

name
Required
string

The name of the event

start
Required
string

The event start date & time

timezone
Required
string

The timezone of the event

salesStart
Required
string date-time

When sales start for the event

salesEnd
Required
string date-time

When sales end for the event

currency
Required
string date-time

The currency prices for this event are in

offers
Required
array

The available offers for this event

offers[].offerId
Required
string

The unique id for the offer

offers[].name
Required
string

The name of the offer

offers[].price
Required
number float

The price for the offer

offers[].available
Required
integer

The amount of tickets available for this offer

Optional Attributes

Collapse all

Optional Attributes

Collapse all
Was this section helpful?
YesNo
Example
{
"eventId": "string",
"availibilityId": "string",
"name": "string",
"start": "string",
"end": "string",
"timezone": "string",
"salesStart": "2030-01-23T23:00:00.123Z",
"salesEnd": "2030-01-23T23:00:00.123Z",
"currency": "2030-01-23T23:00:00.123Z",
"offers": [
{
"offerId": "string",
"name": "string",
"price": 10.5,
"available": 1,
"meta": {}
}
],
"timeSlots": [
{
"startTime": {
"hour": 10.5,
"minute": 10.5
},
"offers": [
{
"offerId": "string"
}
]
}
]
}

The DistributionSeatingGroup Object

Attributes

eventId
Required
string

The event of the seating tuples

availabityId
Required
string

The availibility of the seating tuples

groupId
Required
string

The seating group of the seating tuples

type
Required
string

The type of seating group

SeatsGeneralAdmission

Optional Attributes

Collapse all
Was this section helpful?
YesNo
Example
{
"eventId": "string",
"availabityId": "string",
"groupId": "string",
"type": "Seats",
"tuples": [
{
"seats": [
{
"seatId": "string",
"sectionName": "string",
"rowName": "string",
"seatName": "string",
"offers": [
{
"offerId": "string"
}
]
}
]
}
],
"availability": 1,
"statusId": "string"
}

The DistributionCheckout Object

Attributes

checkoutId
Required
string

The ID of the checkout

status
Required
string

The status of the checkout

NEWABORTEDCOMPLETE
distributorId
Required
string

The ID of the distributor

Optional Attributes

Collapse all
Was this section helpful?
YesNo
Example
{
"checkoutId": "string",
"transactionId": "string",
"status": "NEW",
"distributorId": "string",
"expiresAt": "2030-01-23T23:00:00.123Z",
"tickets": [
{
"ticketId": "string",
"offerId": "string",
"barcode": "string",
"url": "string",
"eventId": "string"
}
]
}

The DistributionTransaction Object

Attributes

transactionId
Required
string

The ID of the transaction

distributorId
Required
string

The ID of the distributor

status
Required
string

The status of the transaction

NEWRESERVED-BY-SYSTEMABORTEDCOMPLETECANCELED

Optional Attributes

Collapse all
Was this section helpful?
YesNo
Example
{
"transactionId": "string",
"distributorId": "string",
"status": "NEW",
"tickets": [
{
"ticketId": "string",
"offerId": "string",
"barcode": "string",
"url": "string",
"eventId": "string"
}
]
}
PUBLIC

Get all sellers.

Query

skip
Optional
number float

The amount of sellers to skip

top
Optional
number float

The maximum amount of sellers to return

Responses
200
OK
400
Bad Request

Was this section helpful?

YesNo
get
/api/distribution/sellers
Response
application/json
{
"docs": [
{
"distributorId": "string",
"name": "string"
}
],
"total": 1
}
PUBLIC

Get all events for a seller.

Query

distributorId
Required
string

The seller to get events for

start
Optional
string

The start date for the events

end
Optional
string

The end date for the events

top
Optional
integer

The maximum amount of events to return

skip
Optional
integer

The amount of events to skip

Responses
200
OK
400
Bad Request

Was this section helpful?

YesNo
get
/api/distribution/events
Response
application/json
{
"docs": [
{
"eventId": "string",
"name": "string",
"location": {
"name": "string",
"line1": "string",
"line2": "string",
"city": "string",
"postalCode": "string",
"state": "string",
"country": "string"
},
"information": {
"category": "string",
"subCategory": "string"
},
"start": "string",
"end": "string",
"currency": "2030-01-23T23:00:00.123Z",
"timezone": "string",
"isRecurring": true,
"seatingType": "None",
"offers": [
{
"offerId": "string",
"name": "string",
"meta": {},
"price": 10.5
}
],
"timeSlots": [
{
"startTime": {
"hour": 10.5,
"minute": 10.5
},
"offers": [
{
"offerId": "string"
}
]
}
]
}
],
"total": 1
}
PUBLIC

Get an event for a seller.

Query

distributorId
Required
string

The seller to get events for

Responses
200
OK
400
Bad Request

Was this section helpful?

YesNo
get
/api/distribution/events/{id}
Response
application/json
{
"eventId": "string",
"name": "string",
"location": {
"name": "string",
"line1": "string",
"line2": "string",
"city": "string",
"postalCode": "string",
"state": "string",
"country": "string"
},
"information": {
"category": "string",
"subCategory": "string"
},
"start": "string",
"end": "string",
"currency": "2030-01-23T23:00:00.123Z",
"timezone": "string",
"isRecurring": true,
"seatingType": "None",
"offers": [
{
"offerId": "string",
"name": "string",
"meta": {},
"price": 10.5
}
],
"timeSlots": [
{
"startTime": {
"hour": 10.5,
"minute": 10.5
},
"offers": [
{
"offerId": "string"
}
]
}
]
}
PUBLIC

Get the availabilities for an event.

Query

distributorId
Required
string

The seller to get events for

start
Optional
string

The start date for the events

end
Optional
string

The end date for the events

top
Optional
integer

The maximum amount of events to return

skip
Optional
integer

The amount of events to skip

Responses
200
OK
400
Bad Request

Was this section helpful?

YesNo
get
/api/distribution/events/{id}/availabilities
Response
application/json
{
"docs": [
{
"eventId": "string",
"availibilityId": "string",
"name": "string",
"start": "string",
"end": "string",
"timezone": "string",
"salesStart": "2030-01-23T23:00:00.123Z",
"salesEnd": "2030-01-23T23:00:00.123Z",
"currency": "2030-01-23T23:00:00.123Z",
"offers": [
{
"offerId": "string",
"name": "string",
"price": 10.5,
"available": 1,
"meta": {}
}
],
"timeSlots": [
{
"startTime": {
"hour": 10.5,
"minute": 10.5
},
"offers": [
{
"offerId": "string"
}
]
}
]
}
],
"total": 1
}
PUBLIC

Get seating groups for an event.

Query

distributorId
Required
string

The seller to get events for

Responses
200
OK
400
Bad Request

Was this section helpful?

YesNo
get
/api/distribution/events/{eventId}/availabilities/{availabilityId}/seating-groups
Response
application/json
{
"docs": [
{
"eventId": "string",
"availabityId": "string",
"groupId": "string",
"type": "Seats",
"tuples": [
{
"seats": [
{
"seatId": "string",
"sectionName": "string",
"rowName": "string",
"seatName": "string",
"offers": [
{
"offerId": "string"
}
]
}
]
}
],
"availability": 1,
"statusId": "string"
}
],
"total": 1
}
PUBLIC

Get the state for a seating group.

Query

distributorId
Required
string

The seller to get events for

Responses
200
OK
400
Bad Request

Was this section helpful?

YesNo
get
/api/distribution/events/{eventId}/availabilities/{availabilityId}/seating-groups/{groupId}
Response
application/json
{
"eventId": "string",
"availabityId": "string",
"groupId": "string",
"type": "Seats",
"tuples": [
{
"seats": [
{
"seatId": "string",
"sectionName": "string",
"rowName": "string",
"seatName": "string",
"offers": [
{
"offerId": "string"
}
]
}
]
}
],
"availability": 1,
"statusId": "string"
}
PUBLIC

Create a checkout.

Payload

distributorId
Required
string

The distributor to create a checkout for

tickets
Required
array

The tickets to create a checkout for

tickets[].offerId
Required
string

The offer to create a checkout for

tickets[].eventId
Required
string

The event to create a checkout for

tickets[].availabilityId
Required
string

The event to create a tickets for

tickets[].price
Required
number float

The price of the ticket

Optional Attributes

Collapse all

Optional Attributes

Collapse all
Responses
200
OK
400
Bad Request
403
Forbidden

Was this section helpful?

YesNo
post
/api/distribution/checkout
{
"externalReferenceId": "string",
"distributorId": "string",
"tickets": [
{
"offerId": "string",
"eventId": "string",
"availabilityId": "string",
"price": 10.5,
"seatId": "string"
}
]
}
Response
application/json
{
"checkoutId": "string",
"transactionId": "string",
"status": "NEW",
"distributorId": "string",
"expiresAt": "2030-01-23T23:00:00.123Z",
"tickets": [
{
"ticketId": "string",
"offerId": "string",
"barcode": "string",
"url": "string",
"eventId": "string"
}
]
}
PUBLIC

Get a checkout.

Query

distributorId
Required
string

The distributor to fetch the checkout for

Responses
200
OK
400
Bad Request
403
Forbidden

Was this section helpful?

YesNo
get
/api/distribution/checkout/{id}
Response
application/json
{
"checkoutId": "string",
"transactionId": "string",
"status": "NEW",
"distributorId": "string",
"expiresAt": "2030-01-23T23:00:00.123Z",
"tickets": [
{
"ticketId": "string",
"offerId": "string",
"barcode": "string",
"url": "string",
"eventId": "string"
}
]
}
PUBLIC

Complete a checkout.

Payload

distributorId
Required
string

The distributor to create a checkout for

customer
Required
object

The customer to create a checkout for

customer.firstName
Required
string

The first name of the customer

customer.lastName
Required
string

The last name of the customer

customer.email
Required
string email

The email of the customer

Optional Attributes

Collapse all
Responses
200
OK
400
Bad Request
403
Forbidden

Was this section helpful?

YesNo
post
/api/distribution/checkout/{id}/complete
{
"distributorId": "string",
"customer": {
"firstName": "string",
"lastName": "string",
"email": "[email protected]",
"company": "string",
"phone": "string",
"address": {
"lineOne": "string",
"lineTwo": "string",
"city": "string",
"postal": "string",
"state": "string",
"country": "string"
}
}
}
Response
application/json
{
"checkoutId": "string",
"transactionId": "string",
"status": "NEW",
"distributorId": "string",
"expiresAt": "2030-01-23T23:00:00.123Z",
"tickets": [
{
"ticketId": "string",
"offerId": "string",
"barcode": "string",
"url": "string",
"eventId": "string"
}
]
}
PUBLIC

Abort a checkout.

Payload

distributorId
Required
string

The distributor to abort a checkout for

Responses
200
OK
400
Bad Request
403
Forbidden

Was this section helpful?

YesNo
post
/api/distribution/checkout/{id}/abort
{
"distributorId": "string"
}
Response
application/json
{
"checkoutId": "string",
"transactionId": "string",
"status": "NEW",
"distributorId": "string",
"expiresAt": "2030-01-23T23:00:00.123Z",
"tickets": [
{
"ticketId": "string",
"offerId": "string",
"barcode": "string",
"url": "string",
"eventId": "string"
}
]
}
PUBLIC

Cancel a transaction.

Payload

distributorId
Required
string

The distributor to cancel a checkout for

Responses
200
OK
400
Bad Request
403
Forbidden

Was this section helpful?

YesNo
post
/api/distribution/transaction/{id}/cancel
{
"distributorId": "string"
}
Response
application/json
{
"transactionId": "string",
"distributorId": "string",
"status": "NEW",
"tickets": [
{
"ticketId": "string",
"offerId": "string",
"barcode": "string",
"url": "string",
"eventId": "string"
}
]
}