# Event tickets

Schemas for creating events and event ticket adaptive links. An event ticket includes both event information and an array of attendees.


## Attendees {#attendees}

An array of attendees for an event. Each object in the array represents a single attendee.

[Jump to examples ↓](#attendees-examples)

- **`adaptiveLinkExternalId`** `string`

  A custom identifier for a particular attendee's adaptive link.

- **`fields`** `object`

  The information about or for the individual attendee's event ticket.

  **OBJECT PROPERTIES**

  - **`barcodeAltText`** `object` <[Pass field updates]({{< ref "/developer/rest-api/wallet/schemas/others/" >}}#fields)>

    Like other pass creation operations, when providing barcode information,

you need only provide the value.


    When updating a field on a pass or an adaptive link, you need only provide
the following items. You cannot update the position of the field or other
information held by the template — only the field label, value, and the message
the user receives when their pass is updated.


  - **`barcode_value`** `object` <[Pass field updates]({{< ref "/developer/rest-api/wallet/schemas/others/" >}}#fields)>

    Like other pass creation operations, when providing barcode information,
you need only provide the value.


    When updating a field on a pass or an adaptive link, you need only provide
the following items. You cannot update the position of the field or other
information held by the template — only the field label, value, and the message
the user receives when their pass is updated.


  - **`confirmationCode`** `object`

    The confirmation code for the ticket holder's event reservation.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`

      The value for this field.

  - **`faceValue`** `object`

    The face value of the ticket, matching what would be printed on a physical version of the ticket.

    **OBJECT PROPERTIES**

    - **`currencyCode`** `string`

      Determines the type of currency if the `formatType` is set to
`currency`.

      Possible values: `USD`, `EUR`, `CNY`, `JPY`, `GPB`, `RUB`, `AUD`, `CHF`, `CAD`, `HKD`, `SEK`, `NZD`, `KRW`, `SGD`, `NOK`, `MXN`, `INR`

    - **`micros`** `integer`

      The face value amount in micros.

      Format: `int64`

  - **`gate`** `object`

    The gate the ticket holder should use to enter the venue.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`

      The value for this field.

  - **`row`** `object`

    The row of the ticket holder's seat.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`

      The value for this field.

  - **`seat`** `object`

    The seat number for the ticket holder.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`

      The value for this field.

  - **`section`** `object`

    The section that the ticket holder's seat is in.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`

      The value for this field.

  - **`sharingStatus`** `object`

    A `field` determining whether passes can be shared across users, devices, or not at all. By default, there are no restrictions with regard to users or devices (`multipleHolders`). While this setting uses the same format as other `fields`, you only need to set the `value` within the object. Most other keys are irrelevant this setting, even though they appear in responses; this field should not be visible on passes, so you should not populate label, order, etc.

On iOS devices, `oneUserOneDevice` prohibits sharing (`"sharingProhibited": true`); all other values allow sharing.

You can override the template setting on Apple Wallet passes. If you set this field in an adaptive link payload, it will only apply to Apple Wallet passes resulting from the adaptive link; Google Wallet passes will always use the sharing setting set at the template level.


    **OBJECT PROPERTIES**

    - **`changeMessage`** `string`

      The message that appears when you update this field.

      Nullable: true

    - **`value`** `string` **REQUIRED**

      Determines whether a pass supports sharing across users, devices, or both. iOS interprets this as a boolean setting: `oneUserOneDevice` prohibits sharing; all other values allow sharing.


      Possible values: `multipleHolders`, `oneUserAllDevices`, `oneUserOneDevice`

      Default: `multipleHolders`

  - **`ticketHolderName`** `object`

    The name of the ticket holder, if the ticket is assigned to a person.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`

      The value for this field.

  - **`ticketNumber`** `object`

    The number of the ticket.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`

      The value for this field.

  - **`ticketType`** `object`

    The type of ticket, if applicable. Use this field to include information like "Adult", "Child", "VIP", etc.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`

      The value for this field.


**Used in:**

- [Create boarding pass or event ticket Adaptive Links]({{< ref "/developer/rest-api/wallet/operations/adaptive-links/" >}}#createboardingpassoreventticketadaptivelinks)

**Examples**

*Array of attendees*

```json
{
  "attendees": [
     {
        "adaptiveLinkExternalId": "abch3ExtId4",
        "fields": {
           "ticketHolderName": { "label": "Name", "value":"SMITH/SAM" },
           "seat": { "value":"11" },
           "ticketType": { "value":"VIP" },
           "ticketNumber": { "value":"20595923485" },
           "barcode_value": { "value": "1237" },
           "barcodeAltText": { "value": "1237" },
           "faceValue": { "value": "100" }
        }
     },
     {
        "adaptiveLinkExternalId": "abch3ExtId5",
        "fields":{
           "ticketHolderName": { "label": "Name", "value":"SMITH/MARY" },
           "seat": { "value":"12" },
           "ticketType": { "value":"VIP" },
           "ticketNumber": { "value":"20595923486" },
           "barcode_value": { "value": "1238" },
           "barcodeAltText": { "value": "1238" },
           "faceValue": { "value": "100" }
        }
     },
     {
        "fields": {
           "ticketHolderName": { "label": "Name", "value":"SMITH/SARA" },
           "seat":{ "value":"13" },
           "ticketType":{ "value":"VIP" },
           "ticketNumber":{ "value":"20595923487" },
           "barcode_value": { "value": "1239" },
           "barcodeAltText": { "value": "1239" },
           "faceValue": { "value": "100" }
        }
     }
  ]
}

```

---

## Event request {#eventrequest}

Represents an event scheduled at a specific time and venue.

[Jump to examples ↓](#eventrequest-examples)

- **`fields`** `object` **REQUIRED**

  Contains the objects representing an event.

  **OBJECT PROPERTIES**

  - **`doorsOpen`** `object`

    The date and time when ticket holders can begin to enter the venue.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The title for this event field as you want it to appear on a pass. Defaults to `Doors Open`.

      Example: `Doors Open`

    - **`value`** `string`

      Format: `date-time`

  - **`endTime`** `object`

    The date and time when the event ends.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The title for this event field, as you want it to appear on a pass. Defaults to `End Time`.

      Example: `End Time`

    - **`value`** `string`

      Format: `date-time`

  - **`eventName`** `object` **REQUIRED**

    The value represents the event name.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`
  - **`startTime`** `object`

    The date and time when the event begins.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The title for this event field, as you want it to appear on a pass. Defaults to `Start Time`.

      Example: `Start Time`

    - **`value`** `string`

      Format: `date-time`

  - **`venueAddress`** `object` **REQUIRED**

    The address of the venue.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`
  - **`venueTitle`** `object` **REQUIRED**

    The name of the venue where the event will take place.

    **OBJECT PROPERTIES**

    - **`label`** `string`

      The label for this field, as you want it to appear on the pass. If you do not provide a label, the event will use a default based off the parent object name.

    - **`value`** `string`
- **`passGroups`** `array[string]`

  An array of eventId or eventExternalId values representing a group. You can reference the group to make changes to all associated events.

You can set pass groups when creating an event or when creating an event ticket adaptive link.



**Used in:**

- [Create boarding pass or event ticket Adaptive Links]({{< ref "/developer/rest-api/wallet/operations/adaptive-links/" >}}#createboardingpassoreventticketadaptivelinks)
- [Create event]({{< ref "/developer/rest-api/wallet/operations/events/" >}}#createevent)
- [Create event with external ID]({{< ref "/developer/rest-api/wallet/operations/events/" >}}#createeventexternalid)
- [Get event]({{< ref "/developer/rest-api/wallet/operations/events/" >}}#getevent)
- [Update event]({{< ref "/developer/rest-api/wallet/operations/events/" >}}#updateevent)

**Examples**

*Example event request object*

```json
{
  "passGroups": ["giants_2019-09-25"],
  "fields": {
    "eventName": {
      "label": "Event",
      "value": "LA Dodgers at SF Giants"
    },
    "venueTitle": {
      "label": "Venue",
      "value": "AT&T Park"
    },
    "venueAddress": {
      "label": "Address",
      "value": "24 Willie Mays Plaza\nSan Francisco, CA 94107"
    },
    "doorsOpen": {
      "label": "Doors Open",
      "value": "2019-09-25T08:35:00"
    },
    "startTime": {
      "label": "Start Time",
      "value": "2019-09-25T09:00:00"
    },
    "endTime": {
      "label": "End Time",
      "value": "2019-09-25T11:00:00"
    }
  }
}

```

---

## Event response {#eventresponse}

An event response returns identifiers that you can use to reference the event in other endpoints, along with the complete event request body.

[Jump to examples ↓](#eventresponse-examples)

**All of:**

- [Event request]({{< ref "/developer/rest-api/wallet/schemas/event-tickets/" >}}#eventrequest)

  Represents an event scheduled at a specific time and venue.

  - **`createdAt`** `string`

    The date and time when the item was created.

    Format: `date-time`

    Read only: true

  - **`eventExternalId`** `string`

    An external identifier for an event. You can only assign an external identifier when creating an event. If you do assign an external identifier, requests for events or passes referencing the event will return the external ID in addition to the `eventId` created within Airship.

  - **`eventId`** `integer`

    The Airship-created identifier for an event.

    Read only: true

  - **`projectExternalId`** `string`

    Returned if you created the event using an external ID for the project.

  - **`projectId`** `integer`

    The ID of the Wallet project.

  - **`updatedAt`** `string`

    The date and time when the item was last updated.

    Format: `date-time`

    Read only: true


**Used in:**

- [Create event]({{< ref "/developer/rest-api/wallet/operations/events/" >}}#createevent)
- [Create event with external ID]({{< ref "/developer/rest-api/wallet/operations/events/" >}}#createeventexternalid)
- [Get event]({{< ref "/developer/rest-api/wallet/operations/events/" >}}#getevent)
- [Update event]({{< ref "/developer/rest-api/wallet/operations/events/" >}}#updateevent)

**Examples**

*Response object*

```json
{
  "eventId": 1234,
  "eventExternalId": "event123ExtId",
  "projectId": 12345,
  "projectExternalId": "project123ExtId",
  "createdAt": "2018-09-24T09:12:32Z",
  "updatedAt": "2018-09-24T09:12:32Z",
  "passGroups": ["giants_2019-09-25"],
  "fields": {
    "eventName": {
      "label": "Event",
      "value": "LA Dodgers at SF Giants"
    },
    "venueTitle": {
      "label": "Venue",
      "value": "AT&T Park"
    },
    "venueAddress": {
      "label": "Address",
      "value": "24 Willie Mays Plaza\nSan Francisco, CA 94107"
    },
    "doorsOpen": {
      "label": "Doors Open",
      "value": "2019-09-25T08:35:00"
    },
    "startTime": {
      "label": "Start Time",
      "value": "2019-09-25T09:00:00"
    },
    "endTime": {
      "label": "End Time",
      "value": "2019-09-25T11:00:00"
    }
  }
}

```

---

## Event ticket Adaptive Link request {#eventticketrequest}

An event ticket requires similar information to other adaptive
link types, but does not support some of the same fields, and requires event and attendee information.


Like other adaptive links, you must provide the `id` or `externalId` of an iOS or Android template. You can create the event within this request or specify an event by `eventId` or `eventExternalId`. In either case, you must also provide an array of attendees for the event.


[Jump to examples ↓](#eventticketrequest-examples)

**All of:**

  - **`androidTemplateExternalId`** `string`

    The custom identifier of the Google template for passes issued from this
adaptive link.


  - **`androidTemplateId`** `integer`

    The Google template for passes issued from the adaptive link.

  - **`availablePasses`** `integer`

    The total number of passes that can be created from this link. If absent, the link supports 1,000,000 passes.

    Default: `1000000`

  - **`iosTemplateExternalId`** `string`

    The custom identifier of the Apple template for passes issued from the
adaptive link, if assigned.


  - **`iosTemplateId`** `integer`

    The iOS template for passes issued from the adaptive link.


  - **`isPersonalized`** `boolean`

    If true, each request (when a recipient uses an adaptive link) generates
a new pass. You can update any of the individual passes generated from
the adaptive link. If you generate the adaptive link using any request
parameters, `isPersonalized` is automatically set to `true`.


If false, only the first request generates a pass; subsequent requests
generate a new instance of the same pass. When `isPersonalized` is `false`,
you cannot update passes generated from an adaptive link by updating the
adaptive link itself. Rather, you must use the Bulk Update Passes endpoint
to push updates to the pass instances generated from the adaptive link.


  - **`landingPageUrl`** `string`

    The address users are redirected to if their device type cannot be detected or they cannot install the pass for another reason.

    Format: `url`

  - **`parameterEncoding`** `string`

    When set, allows url-encoded parameters to set or modify values when creating passes from the adaptive link.


    Possible values: `base64`

  - **`payload`** `object`
    **OBJECT PROPERTIES**

    - **`events`** `array`

      Each object in the array represents an event. Each event object must specify the `eventId` or `eventExternalId` of an existing event, or contain the `fields` object sufficient to create a new event.

You can also provide the `eventExternalId` in conjunction with the `fields` object to assign an eventExternalId to a new event.


      **One of:**

      - `allOf`

        If you specify the `eventId` or `eventExternalId` of an existing event, you need only provide the attendees for the event ticket.


      - `allOf`

        If creating an event, you can provide an external ID for the event. You must then provide a complete event object.




**Used in:**

- [Create boarding pass or event ticket Adaptive Links]({{< ref "/developer/rest-api/wallet/operations/adaptive-links/" >}}#createboardingpassoreventticketadaptivelinks)

**Examples**

*Example event ticket request object*

```json
{
    "iosTemplateExternalId": "ios123ExtId",
    "androidTemplateExternalId": "android123ExtId",
    "payload": {
        "events": [
            {
                "eventExternalId": "event123ExtId",
                "passGroups": [
                    "giants_2019-09-25"
                ],
                "fields": {
                    "eventName": {
                        "value": "LA Dodgers at SF Giants"
                    },
                    "venueTitle": {
                        "value": "AT&T Park"
                    },
                    "venueAddress": {
                        "label": "Address",
                        "value": "24 Willie Mays Plaza\nSan Francisco, CA 94107"
                    },
                    "doorsOpen": {
                        "label": "Doors Open",
                        "value": "2019-09-25T08:35:00"
                    },
                    "startTime": {
                        "label": "Start Time",
                        "value": "2019-09-25T09:00:00"
                    },
                    "endTime": {
                        "label": "End Time",
                        "value": "2019-09-25T11:00:00"
                    }
                },
                "attendees": [
                    {
                        "adaptiveLinkExternalId": "abch3ExtId1",
                        "fields": {
                            "ticketHolderName": {
                                "label": "Name",
                                "value": "SMITH/JOE"
                            },
                            "seat": {
                                "value": "33"
                            },
                            "ticketType": {
                                "value": "VIP"
                            },
                            "barcode_value": {
                                "value": "1234"
                            },
                            "barcodeAltText": {
                                "value": "1234"
                            },
                            "faceValue": {
                                "value": "50"
                            }
                        }
                    },
                    {
                        "adaptiveLinkExternalId": "abch3ExtId2",
                        "fields": {
                            "ticketHolderName": {
                                "label": "Name",
                                "value": "SMITH/SALLY"
                            },
                            "seat": {
                                "value": "34"
                            },
                            "ticketType": {
                                "value": "VIP"
                            },
                            "barcode_value": {
                                "value": "1235"
                            },
                            "barcodeAltText": {
                                "value": "1235"
                            },
                            "faceValue": {
                                "value": "50"
                            }
                        }
                    },
                    {
                        "adaptiveLinkExternalId": "abch3ExtId2",
                        "fields": {
                            "ticketHolderName": {
                                "label": "Name",
                                "value": "SMITH/JACK"
                            },
                            "seat": {
                                "value": "35"
                            },
                            "ticketType": {
                                "value": "VIP"
                            },
                            "barcode_value": {
                                "value": "1236"
                            },
                            "barcodeAltText": {
                                "value": "1236"
                            },
                            "faceValue": {
                                "value": "50"
                            }
                        }
                    }
                ]
            }
        ]
    }
}

```

---

## Event ticket Adaptive Link response {#eventticketresponse}

The response for event ticket operations is much like any other adaptive link, with the addition of the identifier of the event and an HTTP status for each individual adaptive link.

[Jump to examples ↓](#eventticketresponse-examples)

**All of:**

- [Adaptive Link response]({{< ref "/developer/rest-api/wallet/schemas/adaptive-links/" >}}#adaptivelinkresponse)

  An adaptive link response includes URLs that users can access to detect and install a pass.


  - **`eventExternalId`** `string`

    An external identifier for an event. You can only assign an external identifier when creating an event. If you do assign an external identifier, requests for events or passes referencing the event will return the external ID in addition to the `eventId` created within Airship.

  - **`eventId`** `integer`

    The Airship-created identifier for an event.

    Read only: true

  - **`status`** `integer`

    The HTTP status code for the adaptive link operation.

    Example: `200`


**Used in:**

- [Create boarding pass or event ticket Adaptive Links]({{< ref "/developer/rest-api/wallet/operations/adaptive-links/" >}}#createboardingpassoreventticketadaptivelinks)

**Examples**

*Example event ticket response array*

```json
[
 {
    "adaptiveLinkId": "abchd345678",
    "adaptiveLinkExternalId": "abch3ExtId1",
    "iosTemplateId": 12345,
    "iosTemplateExternalId": "ios123ExtId",
    "androidTemplateId": 154321,
    "androidTemplateExternalId": "android123ExtId",
    "eventId": 476,
    "eventExternalId": "event123ExtId",
    "url": "https://wallet-api.urbanairship.com/v1/pass/adaptive/abchd345678",
    "iosUrl": "https://wallet-api.urbanairship.com/v1/pass/adaptive/abchd345678/ios",
    "androidUrl": "https://wallet-api.urbanairship.com/v1/pass/adaptive/abchd345678/android",
    "createdAt": "2018-09-24T09:12:32Z",
    "updatedAt": "2018-09-24T09:15:32Z",
    "isPersonalized": "false",
    "availablePasses": 1000000,
    "iosPassLinkId": "a5711a29-7b38-41f2-8202-8f792df89b0b",
    "androidPassLinkId": "c1f512e5-fda3-4ddf-82c6-066c5681161d",
    "status": 200
 },
 {...},
 {...}
]

```

---

