vivenu customers API

The customers API from vivenu — 23 operation(s) for customers.

OpenAPI Specification

vivenu-customers-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: vivenu access-lists customers 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: customers
paths:
  /api/customers/me:
    get:
      security:
      - customer-jwt: []
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get current customer
      operationId: get_current_customer
    post:
      security:
      - customer-jwt: []
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Customers_UpdateCurrentCustomer'
      tags:
      - customers
      description: Update current customer
      operationId: update_current_customer
  /api/customers/rich:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: name
        required: false
        schema:
          type: string
          description: The name of the customer collected from prename and lastname
          metas: {}
        in: query
        style: form
        explode: true
      - name: email
        required: false
        schema:
          type: string
          description: The email of the customer
          metas: {}
        in: query
        style: form
        explode: true
      - name: company
        required: false
        schema:
          type: string
          description: The company of the customer
          metas: {}
        in: query
        style: form
        explode: true
      - name: tags
        required: false
        schema:
          type: string
          description: Tags of the customer
          metas: {}
        in: query
        style: form
        explode: true
      - name: updatedAt
        required: false
        schema:
          type: object
          properties:
            $gt:
              type: string
              format: date-time
              description: value is greater than
              metas: {}
            $gte:
              type: string
              format: date-time
              description: value is greater than or equal
              metas: {}
            $lt:
              type: string
              format: date-time
              description: value is less than
              metas: {}
            $lte:
              type: string
              format: date-time
              description: value is less than or equal
              metas: {}
            $eq:
              type: string
              format: date-time
              description: value is equal
              metas: {}
            $ne:
              type: string
              format: date-time
              description: value is not equal
              metas: {}
          description: Range of dates indicating when the customer was last updated in ISO format.
          metas: {}
        in: query
        style: deepObject
        explode: true
      - name: top
        required: false
        schema:
          type: integer
          maximum: 1000
          description: A limit on the number of objects to be returned. Can range between 1 and 1000.
          default: 25
          metas: {}
        in: query
        style: form
        explode: true
      - name: skip
        required: false
        schema:
          type: integer
          description: The number of objects to skip for the requested result
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Customers_GetAllCustomers_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get all Customers
      operationId: customers/list
  /api/customers/tags:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Customers_GetAllCustomerTags_200_response'
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get all Customer tags
      operationId: get_all_customer_tags
  /api/customers/{id}:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the customer
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - customers
      description: Get Customer
      operationId: customers/get
    put:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the customer
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_Customers_UpdateCustomer'
      tags:
      - customers
      description: Update Customer
      operationId: customers/update
    delete:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the customer
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Delete Customer
      operationId: customers/delete
  /api/customers/me/payment-plans:
    get:
      security:
      - customer-jwt: []
      parameters:
      - name: locale
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get payment plans of customer
      operationId: get_payment_plans_of_customer
  /api/customers/me/purchaseintents:
    get:
      security:
      - customer-jwt: []
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Customers_GetPurchaseIntentsOfCustomer_200_response'
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get PurchaseIntents of customer
      operationId: get_purchase_intents_of_customer
  /api/customers/me/resell-offers:
    get:
      security:
      - customer-jwt: []
      parameters:
      - name: status
        required: false
        schema:
          type: string
          enum:
          - ACTIVE
          - SOLD
          - CANCELED
          description: Status of the offers
          metas: {}
        in: query
        style: form
        explode: true
      - name: top
        required: false
        schema:
          type: integer
          maximum: 1000
          description: A limit on the number of objects to be returned. Can range between 1 and 1000.
          default: 25
          metas: {}
        in: query
        style: form
        explode: true
      - name: skip
        required: false
        schema:
          type: integer
          description: The number of objects to skip for the requested result
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Customers_GetResellOffersOfCustomer_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get Resell Offers of Customer
      operationId: customers/getCustomerResellOffers
  /api/customers/me/shops:
    get:
      security:
      - customer-jwt: []
      parameters:
      - name: eventId
        required: true
        schema:
          type: string
          description: The event ID to get the undershops of the customer
          metas: {}
        in: query
        style: form
        explode: true
      - name: locale
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Customers_GetUndershopsOfCustomer_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get undershops of customer
      operationId: get_undershops_of_customer
  /api/customers/me/subscriptions:
    get:
      security:
      - customer-jwt: []
      parameters:
      - name: locale
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get subscriptions of customer
      operationId: get_subscriptions_of_customer
  /api/customers/me/ticket-transfers:
    get:
      security:
      - customer-jwt: []
      parameters:
      - name: origin
        required: false
        schema:
          type: string
          enum:
          - customer
          - stubhub
          description: The origin of ticket transfer
          metas: {}
        in: query
        style: form
        explode: true
      - name: isSender
        required: false
        schema:
          type: boolean
          enum:
          - true
          description: Whether customer is the sender of ticket transfer
          metas: {}
        in: query
        style: form
        explode: true
      - name: isRecipient
        required: false
        schema:
          type: boolean
          enum:
          - true
          description: Whether customer is the recipient of ticket transfer
          metas: {}
        in: query
        style: form
        explode: true
      - name: top
        required: false
        schema:
          type: integer
          maximum: 1000
          description: A limit on the number of objects to be returned. Can range between 1 and 1000.
          default: 25
          metas: {}
        in: query
        style: form
        explode: true
      - name: skip
        required: false
        schema:
          type: integer
          description: The number of objects to skip for the requested result
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Customers_GetTicketTransfersOfCustomer_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get Ticket Transfers of Customer
      operationId: customers/getCustomerTicketTransfers
  /api/customers/me/tickets:
    get:
      security:
      - customer-jwt: []
      parameters:
      - name: top
        required: false
        schema:
          type: integer
          maximum: 1000
          description: A limit on the number of objects to be returned. Can range between 1 and 1000.
          metas: {}
        in: query
        style: form
        explode: true
      - name: skip
        required: false
        schema:
          type: integer
          description: The number of objects to skip for the requested result
          metas: {}
        in: query
        style: form
        explode: true
      - name: eventId
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Customers_GetTicketsOfCustomer_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get tickets of customer
      operationId: get_tickets_of_customer
  /api/customers/me/transactions:
    get:
      security:
      - customer-jwt: []
      parameters:
      - name: locale
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: subscriptionId
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: checkoutId
        required: false
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Customers_GetTransactionsOfCustomer_200_response'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Get transactions of customer
      operationId: get_transactions_of_customer
  /api/customers/password-reset/{token}:
    get:
      parameters:
      - name: sellerId
        required: true
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: token
        required: true
        schema:
          type: string
          minLength: 1
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GET_Customers_ResetPassword_200_response'
        '400':
          description: Bad Request
      tags:
      - customers
      description: Reset password
      operationId: reset_password
    put:
      parameters:
      - name: token
        required: true
        schema:
          type: string
          minLength: 1
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PUT_Customers_SetANewPassword_200_response'
        '400':
          description: Bad Request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUT_Customers_SetANewPassword'
      tags:
      - customers
      description: Set a new password
      operationId: set_a_new_password
  /api/customers/{id}/balance:
    get:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the customer
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - customers
      description: Get Customer Balance
      operationId: customers/getCustomerBalance
  /api/customers:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Customers_CreateCustomer'
      tags:
      - customers
      description: Create Customer
      operationId: customers/create
  /api/customers/login:
    post:
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_Customers_LoginCustomer_200_response'
        '400':
          description: Bad Request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Customers_LoginCustomer'
      tags:
      - customers
      description: Login customer
      operationId: login_customer
  /api/customers/password-reset:
    post:
      parameters: []
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Customers_RequestAPasswordResetMail'
      tags:
      - customers
      description: Request a password reset mail
      operationId: request_a_password_reset_mail
  /api/customers/register:
    post:
      parameters: []
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sellerId:
                  type: string
                  description: The ID of the seller to register for
                email:
                  type: string
                  format: email
                  pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  description: The email of the customer
                password:
                  type: string
                  minLength: 9
                  description: The password of the customer
                prename:
                  type: string
                  minLength: 1
                  description: The first name of the customer
                lastname:
                  type: string
                  minLength: 1
                  description: The last name of the customer
                company:
                  description: The company of the customer
                  type: string
                consents:
                  type: array
                  items:
                    type: object
                    properties:
                      consentId:
                        type: string
                      status:
                        type: string
                        enum:
                        - granted
                        - denied
                    required:
                    - consentId
                    - status
                    additionalProperties: false
                verificationMethod:
                  default: email
                  description: How the customer verifies the account
                  type: string
                  enum:
                  - email
                  - otp
              required:
              - sellerId
              - email
              - password
              - prename
              - lastname
              - verificationMethod
              additionalProperties: false
      tags:
      - customers
      description: Register as a customer
      operationId: register_as_a_customer
  /api/customers/verify/resend:
    post:
      security:
      - customer-jwt: []
      parameters: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Resend verification mail
      operationId: resend_verification_mail
  /api/customers/verify/{token}:
    post:
      parameters:
      - name: sellerId
        required: true
        schema:
          type: string
          metas: {}
        in: query
        style: form
        explode: true
      - name: token
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POST_Customers_VerifyACustomer_200_response'
        '400':
          description: Bad Request
      tags:
      - customers
      description: Verify a Customer
      operationId: verify_a_customer
  /api/customers/{id}/erase-data:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        schema:
          type: string
        required: true
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - customers
      description: Erase Customer data
      operationId: erase_customer_data
  /api/customers/{id}/account:
    post:
      security:
      - jwt: []
      - apikey: []
      parameters:
      - name: id
        required: true
        schema:
          type: string
          description: The ID of the customer
          metas: {}
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POST_Customers_CreateAccountForCustomer'
      tags:
      - customers
      description: Create account for Customer
      operationId: create_account_for_customer
  /api/customers/me/passkeys/{credentialId}:
    delete:
      security:
      - customer-jwt: []
      parameters:
      - name: credentialId
        required: true
        schema:
          type: string
          metas: {}
        in: path
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - customers
      description: Delete customer passkey
      operationId: delete_customer_passkey
components:
  schemas:
    POST_Customers_VerifyACustomer_200_response:
      type: object
      properties:
        ok:
          type: boolean
          enum:
          - true
      required:
      - ok
    GET_Customers_ResetPassword_200_response:
      type: object
      properties:
        passwordResetToken:
          type: string
      required:
      - passwordResetToken
    GET_Customers_GetResellOffersOfCustomer_200_response:
      type: object
      properties:
        docs:
          type: array
          items:
            $ref: '#/components/schemas/PublicResellOfferInfoResource'
        total:
          type: integer
    POST_Customers_RequestAPasswordResetMail:
      type: object
      properties:
        sellerId:
          type: string
        email:
          type: string
          format: email
      required:
      - sellerId
      - email
    PublicPurchaseIntentResource:
      type: object
      properties:
        _id:
          type: string
        status:
          type: string
          enum:
          - new
          - complete
          - canceled
        approvalStatus:
          type: string
          enum:
          - awaiting
          - approved
          - rejected
        rejectionReason:
          type: string
        company:
          type: string
        firstname:
          type: string
        lastname:
          type: string
        name:
          type: string
        email:
          type: string
          format: email
        customerId:
          type: string
        address:
          type: object
          properties:
            fullAddress:
              type: string
              nullable: true
              description: Optional full address
            street:
              type: string
              nullable: true
              description: The street of the address. Street name including number.
            line2:
              type: string
              nullable: true
              description: The additional field of the address.
            postal:
              type: string
              nullable: true
              description: The postal code of the address.
            city:
              type: string
              nullable: true
              description: The city of the address.
            country:
              type: string
              nullable: true
              description: The country of the address. An ISO 3166 country code.
            state:
              type: string
              nullable: true
              description: The state of the address. If applicable
        deliveryAddress:
          type: object
          properties:
            fullAddress:
              type: string
              nullable: true
              description: Optional full address
            street:
              type: string
              nullable: true
              description: The street of the address. Street name including number.
            line2:
              type: string
              nullable: true
              description: The additional field of the address.
            postal:
              type: string
              nullable: true
              description: The postal code of the address.
            city:
              type: string
              nullable: true
              description: The city of the address.
            country:
              type: string
              nullable: true
              description: The country of the address. An ISO 3166 country code.
            state:
              type: string
              nullable: true
              description: The state of the address. If applicable
            name:
              type: string
              description: The name of the person receiving delivery.
        identification:
          type: array
          items:
            $ref: '#/components/schemas/LegalIdentificationDocumentResource'
          description: An array of identification items
        sellerId:
          type: string
        eventId:
          type: string
        shopId:
          type: string
        strategyId:
          type: string
        vouchers:
          type: array
          items:
            type: string
        appliedCoupons:
          type: array
          items:
            oneOf:
            - type: array
            - type: boolean
            - type: number
            - type: object
            - type: string
        regularPrice:
          type: number
          format: float
        realPrice:
          type: number
          format: float
        currency:
          type: string
          enum:
          - EUR
          - USD
          - GBP
          - AUD
          - CHF
          - THB
          - ILS
          - COP
          - MXN
          - DKK
          - NOK
          - SEK
          - QAR
          - CAD
          - ISK
          - GTQ
          - INR
          - DOP
          - SGD
          - PLN
          - SAR
          - TTD
          - ZAR
          - KYD
          - HKD
          - CZK
          - KRW
          - JPY
          - NZD
          - AED
          - MAD
          - TWD
          - BRL
          - BWP
          - NAD
          - KES
          - SCR
          - TRY
          - SZL
          - LSL
          - TZS
          - UGX
          - ZMW
          - ZWG
          - GHS
          - NGN
          - SLE
          - LRD
          - XOF
          - XAF
          - GEL
          - IDR
          - ARS
          - CRC
          - HUF
          - EGP
          - MYR
          - VND
          - PHP
        innerFeeComponents:
          oneOf:
          - type: array
          - type: boolean
          - type: number
          - type: object
          - type: string
        innerCharge:
          type: number
          format: float
        outerFeeComponents:
          oneOf:
          - type: array
          - type: boolean
          - type: number
          - type: object
          - type: string
        outerCharge:
          type: number
          format: float
        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.
     

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