vivenu checkout API
The checkout API from vivenu — 18 operation(s) for checkout.
The checkout API from vivenu — 18 operation(s) for checkout.
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