vivenu checkout API

The checkout API from vivenu — 18 operation(s) for checkout.

OpenAPI Specification

vivenu-checkout-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: vivenu access-lists checkout API
  description: vivenu API Documentation
  version: 1.0.0
  contact:
    name: vivenu GmbH
    url: https://vivenu.com
servers:
- url: https://vivenu.com
  description: Production API
- url: https://vivenu.dev
  description: Staging API
tags:
- name: checkout
paths:
  /api/checkout/{id}:
    get:
      parameters:
      - name: secret
        required: true
        schema:
          type: string
          description: The secret token of the checkout
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '404':
          description: Not Found
      tags:
      - checkout
      description: Get a Checkout
      operationId: get_a_checkout
    put:
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of an existing checkout
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_Checkout_UpdateACheckout'
      tags:
      - checkout
      description: Update a checkout
      operationId: checkouts/update
  /api/checkout/transaction/{id}:
    get:
      parameters:
      - name: secret
        required: true
        schema:
          type: string
          description: The secret token of the transaction
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the transaction
          metas: {}
        in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Checkout_GetATransaction_200_response'
      tags:
      - checkout
      description: Get a Transaction
      deprecated: true
      operationId: get_a_transaction
  /api/checkout/{id}/tickets:
    get:
      parameters:
      - name: secret
        required: true
        schema:
          type: string
          description: The secret token of the checkout
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        required: true
        schema:
          type: string
          description: The ID of an existing checkout
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Checkout_GetAllTicketsForACheckout_200_response'
        '400':
          description: Bad Request
      tags:
      - checkout
      description: Get all tickets for a checkout
      operationId: get_all_tickets_for_a_checkout
  /api/checkout/{id}/detailsform:
    get:
      parameters:
      - name: secret
        required: true
        schema:
          type: string
          description: The secret token of the checkout
          metas: {}
        in: query
        style: form
        explode: true
      - name: locale
        required: false
        schema:
          type: string
          description: Get the info for a specific language
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Checkout_GetDetailsForm_200_response'
        '400':
          description: Bad Request
      tags:
      - checkout
      description: Get details form
      operationId: get_details_form
  /api/transaction/{id}/checkout:
    get:
      parameters:
      - name: secret
        required: true
        schema:
          type: string
          description: The secret token of the transaction
          metas: {}
        in: query
        style: form
        explode: true
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '404':
          description: Not Found
      tags:
      - checkout
      description: Get transactions checkout
      operationId: get_transactions_checkout
  /api/checkout:
    post:
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_CreateACheckout'
      tags:
      - checkout
      description: Create a Checkout
      operationId: checkouts/create
  /api/insurance/offers:
    post:
      parameters: []
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    description: The request ID will be used to identify the request during booking process
                  title:
                    description: The title will be shown to the user in the checkout
                    type: string
                  description:
                    description: The description will be shown to the user in the checkout
                    type: string
                  disclaimer:
                    description: The disclaimer will be shown to the user in the checkout
                    type: string
                  logo:
                    description: 'The URL of a logo of the insurance provider. Recommended size: 256x256'
                    type: string
                    format: uri
                  events:
                    type: array
                    items:
                      type: object
                      properties:
                        _id:
                          type: string
                          description: The ID of the event
                        optOut:
                          type: object
                          properties:
                            title:
                              description: The opt-out text will be shown to the user in the checkout
                              type: string
                          additionalProperties: false
                        offers:
                          type: array
                          items:
                            type: object
                            properties:
                              _id:
                                type: string
                                description: The ID will be used to identify the insurance offer during booking process
                              title:
                                type: string
                                description: The title will be shown to the user in the checkout
                              productName:
                                description: The product name will be shown to the user in the cart
                                type: string
                              productId:
                                type: string
                                description: The product ID will be used to identify the insurance product during booking process. The product ID will be used to identify the insurance product during booking process.
                              netPrice:
                                type: number
                                minimum: 0
                                description: The net price of the offer
                              badgeLabel:
                                description: The badge label will be shown to the user in the checkout within a badge box (e.g. 'recommended')
                                type: string
                              included:
                                description: The array of included services (e.g. 'Medical Expenses', 'Accident Protection') will be shown to the user in the checkout
                                type: array
                                items:
                                  type: string
                              excluded:
                                description: The array of excluded services (e.g. 'Cancellation', 'Lost Luggage') will be shown to the user in the checkout
                                type: array
                                items:
                                  type: string
                              termsAndConditionsUrl:
                                type: string
                                format: uri
                                description: The URL of the terms and conditions will be shown to the user in the checkout
                              taxServiceTypeId:
                                description: The tax service type ID will be used to calculate taxes & gross price of the insurance product
                                type: string
                              price:
                                type: number
                                description: The price of the offer including taxes
                              taxRate:
                                type: number
                                description: The tax rate of the offer
                              taxInfo:
                                type: object
                                properties:
                                  serviceTypeId:
                                    description: The tax service type ID
                                    type: string
                                  exceptionId:
                                    description: The tax exception ID
                                    type: string
                                  proceedsAccountId:
                                    description: The proceeds account ID
                                    type: string
                                  proceedsAccountCode:
                                    description: The proceeds account code
                                    type: string
                                  taxItems:
                                    description: An array of tax items
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        name:
                                          description: The name of the tax item
                                          type: string
                                        taxTypeId:
                                          description: The tax type ID
                                          type: string
                                        rate:
                                          type: number
                                          description: The rate of the tax item
                                        perUnit:
                                          type: number
                                          description: The per unit amount of the tax item
                                        total:
                                          type: number
                                          description: The total amount of the tax item
                                        netTotal:
                                          description: The net total amount of the tax item
                                          type: number
                                        netPerUnit:
                                          description: The net per unit amount of the tax item
                                          type: number
                                        taxPayableAccountId:
                                          description: The tax payable account ID
                                          type: string
                                        taxPayableAccountCode:
                                          description: The tax payable account code
                                          type: string
                                      required:
                                      - rate
                                      - perUnit
                                      - total
                                      additionalProperties: false
                                additionalProperties: false
                                description: The tax information of the offer
                            required:
                            - _id
                            - title
                            - productId
                            - netPrice
                            - termsAndConditionsUrl
                            - price
                            - taxRate
                            - taxInfo
                            additionalProperties: false
                      required:
                      - _id
                      - optOut
                      - offers
                      additionalProperties: false
                required:
                - requestId
                - events
                additionalProperties: false
        '400':
          description: Bad Request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                checkoutId:
                  type: string
                  description: The ID of the checkout for which to get offers
                secret:
                  type: string
                  description: The secret of the checkout for which to get offers
                sellerId:
                  type: string
                  description: The ID of the seller for which to get offers
              required:
              - checkoutId
              - secret
              - sellerId
              additionalProperties: false
      tags:
      - checkout
      description: Get insurance offers for a Checkout
      operationId: get_insurance_offers_for_a_checkout
  /api/checkout/{id}/confirmation-sms:
    post:
      security:
      - jwt: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the checkout.
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_SendAConfirmationSmsForACheckout'
      tags:
      - checkout
      description: Send a confirmation SMS for a checkout
      operationId: send_a_confirmation_sms_for_a_checkout
  /api/checkout/{id}/internal:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the checkout.
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_CompleteAnInternalCheckout'
      tags:
      - checkout
      description: Complete an Internal Checkout
      operationId: complete_an_internal_checkout
  /api/checkout/{id}/confirmation-mail:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of an existing checkout
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_ResendConfirmationMail'
      tags:
      - checkout
      description: Resend confirmation mail
      operationId: resend_confirmation_mail
  /api/checkout/{id}/items:
    post:
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of an existing checkout
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_UpdateCheckoutItems'
      tags:
      - checkout
      description: Update checkout items
      operationId: update_checkout_items
  /api/checkout/{id}/confirm-payment-plan:
    post:
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_ConfirmAPaymentPlan'
      tags:
      - checkout
      description: Confirm a payment plan
      operationId: confirm_a_payment_plan
  /api/checkout/{id}/confirm-subscription:
    post:
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_ConfirmASubscription'
      tags:
      - checkout
      description: Confirm a subscription
      operationId: confirm_a_subscription
  /api/checkout/{id}/reserve:
    post:
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '404':
          description: Not Found
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_ReserveACheckout'
      tags:
      - checkout
      description: Reserve a checkout
      operationId: reserve_a_checkout
  /api/checkout/{id}/confirm-cpm:
    post:
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_ConfirmACheckoutViaCpm'
      tags:
      - checkout
      description: Confirm a checkout via CPM
      operationId: confirm_a_checkout_via_cpm
  /api/checkout/{id}/abort:
    post:
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '404':
          description: Not Found
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_AbortACheckout'
      tags:
      - checkout
      description: Abort a checkout
      operationId: abort_a_checkout
  /api/checkout/{id}/details:
    post:
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_PostCheckoutDetails'
      tags:
      - checkout
      description: Post checkout details
      operationId: post_checkout_details
  /api/checkout/{id}/reserved-invitation-mail:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of an existing checkout
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Checkout_ResendInvitationMail'
      tags:
      - checkout
      description: Resend invitation mail
      operationId: resend_invitation_mail
components:
  schemas:
    GET_Checkout_GetDetailsForm_200_response:
      type: object
      properties:
        skipAddressInfo:
          type: boolean
          description: Whether not to ask for the address of the ticket buyer.
        extraFields:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              description:
                type: string
              required:
                type: boolean
              deleted:
                type: boolean
              onlyForCertainTicketsTypes:
                type: boolean
              allowedTicketTypes:
                type: array
                items:
                  type: string
              printable:
                type: boolean
              applyToCustomer:
                type: boolean
            required:
            - name
            - description
            - required
          description: Extra fields
        enforceCompany:
          type: boolean
          description: Whether the company of the ticket buyer is a required field.
        ticketExtraFields:
          type: object
        enforceAddress:
          type: boolean
          description: Whether the address is required or not.
        identificationConfig:
          type: array
          items:
            type: array
            items:
              type: object
              properties:
                type:
                  type: string
                  enum:
                  - spain_tax_id
                  - origin_country_id
                  description: The required document type.
                requireAddress:
                  type: boolean
                  description: Whether an address is required for this identification type.
                identificationThreshold:
                  type: number
                  format: float
                  description: The threshold for identification from when the identification is required.
              required:
              - type
          description: An object describing the legal identification requirements for the checkout.
    POST_Checkout_AbortACheckout:
      type: object
      properties:
        secret:
          type: string
          description: The secret token of the checkout
      required:
      - secret
    GET_Checkout_GetATransaction_200_response:
      type: object
      properties:
        tid:
          type: string
          description: The ID of the transaction
        secret:
          type: string
          description: The secret token of the transaction
        tickets:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                - ticket
                description: The type of the cart item.
                default: ticket
              _id:
                type: string
                description: Unique identifier for the cart item. If omitted, the system will automatically generate one.
              name:
                type: string
                nullable: true
                description: The name of the cart item.
              amount:
                type: integer
                minimum: 1
                description: The amount of the cart item.
              netPrice:
                type: number
                format: float
                description: The single piece net price of the cart item.
              price:
                type: number
                format: float
                description: The single piece price of the cart item.
              taxRate:
                type: number
                format: float
                nullable: true
                description: The tax rate to be applied to this cart item. If not present the tax rate of the transaction is taken.
              triggeredBy:
                oneOf:
                - type: string
                  description: An ID of another cart item which triggered the buy action of the cart item.
                - type: array
                  items:
                    type: string
                  description: An array of IDs of other cart items which triggered the buy action of the cart item.
                nullable: true
                description: An ID or an array of IDs of other cart items which triggered the buy action of the cart item.
              bundleInfo:
                type: object
                properties:
                  bundleId:
                    type: string
                  componentId:
                    type: string
                  optionId:
                    type: string
                nullable: true
              ticketTypeId:
                type: string
                description: The ID of the ticket type of the cart item.
              categoryRef:
                type: string
                description: The category reference of the ticket type.
              seatingInfo:
                type: object
                properties:
                  _id:
                    type: string
                    description: The ID of the seating object.
                  _type:
                    type: number
                    format: float
                    enum:
                    - 6
                    - 7
                    description: Indicates the type of seating object. Seat = 6, General Admission = 7.
                  categoryId:
                    type: string
                    description: The ID of the category containing the seating object.
                  statusId:
                    type: string
                    description: The ID of a container holding information about the seating status of the seating object.
                  name:
                    type: string
                    nullable: true
                    description: If _type == 7. The name of the general admission.
                  seatType:
                    type: string
                    nullable: true
                    enum:
                    - handicapped
                    - limitedView
                    - foldable
                    description: If _type == 6. The type of the seat. null = normal.
                  sectionName:
                    type: string
                    nullable: true
                    description: If _type == 6. The name of the section where the seat is located.
                  groupName:
                    type: string
                    nullable: true
                    description: If _type == 6. The name of the row group where the seat is located.
                  rowName:
                    type: string
                    nullable: true
                    description: If _type == 6. The name of the row where the seat is located.
                  seatName:
                    type: string
                    nullable: true
                    description: If _type == 6. The seat name.
                  gate:
                    type: string
                    nullable: true
                    description: The entry gate associated with the seating object.
                required:
                - _type
                - statusId
                nullable: true
                description: The associated seating object.
              slotInfo:
                type: object
                properties:
                  slotId:
                    type: string
                    description: The ID of the time slot.
                  slotStartTime:
                    type: string
                    description: The start time of the time slot.
                required:
                - slotId
                - slotStartTime
                nullable: true
                description: The associated time slot object.
              asHardTicket:
                type: boolean
                nullable: true
                description: Whether this ticket is a hard ticket.
              listingId:
                type: string
                nullable: true
                description: Listing in secondary market.
              listingItemId:
                type: string
                nullable: true
                description: The ID of the listing item in the secondary market.
              triggeredAutomations:
                type: boolean
                nullable: true
                description: Whether the cart item triggered automations.
              meta:
                type: object
                nullable: true
                description: Meta data which is propagated to the ticket.
              addOns:
                type: array
                items:
                  type: object
                  properties:
                    productId:
                      type: string
                    productVariantId:
                      type: string
                    name:


# --- truncated at 32 KB (150 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vivenu/refs/heads/main/openapi/vivenu-checkout-api-openapi.yml