openapi: 3.2.0 info: title: Lokki Order API description: The main API powering the Lokki Dashboard and Online Store version: '2.0' contact: {} servers: [] security: - x-access-token: [] tags: - name: Order paths: /v2/order/requests-with-messages: get: operationId: getOrderRequestsPaginatedWithMessages parameters: - name: size required: true in: query schema: type: number - name: page required: true in: query schema: type: number responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListPaginateFilterDto' tags: - Order /v2/order: get: operationId: getManyOrders parameters: - name: skip required: false in: query description: Number of documents to skip schema: minimum: 0 default: 0 type: number - name: limit required: false in: query description: Maximum number of documents to return schema: minimum: 1 type: number - name: sort required: false in: query schema: oneOf: - type: array items: type: string - type: string description: 'Sort order for the results. Use ''__asc'' or ''__desc'' suffix to specify ascending or descending order respectively. Example: ''name__asc''' - name: fields required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Fields to include in the response - name: id.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: id.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: id.equals required: false in: query description: Filter entries that have a specific value schema: type: string - name: id.notEquals required: false in: query description: Filter entries that do not have a specific value schema: type: string - name: id.in required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match any of the specified values - name: id.notIn required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that do not match any of the specified values - name: id.contains required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that contain the specified substring - name: id.regex required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match the specified regular expression - name: createdAt.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: createdAt.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: createdAt.equals required: false in: query description: Filter entries that match a specific date schema: type: string - name: createdAt.notEquals required: false in: query description: Filter entries that do not match a specific date schema: type: string - name: createdAt.in required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match any of the specified dates - name: createdAt.notIn required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that do not match any of the specified dates - name: createdAt.gt required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date greater than the specified date - name: createdAt.lt required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date less than the specified date - name: createdAt.gte required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date greater than or equal to the specified date - name: createdAt.lte required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date less than or equal to the specified date - name: startDate.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: startDate.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: startDate.equals required: false in: query description: Filter entries that match a specific date schema: type: string - name: startDate.notEquals required: false in: query description: Filter entries that do not match a specific date schema: type: string - name: startDate.in required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match any of the specified dates - name: startDate.notIn required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that do not match any of the specified dates - name: startDate.gt required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date greater than the specified date - name: startDate.lt required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date less than the specified date - name: startDate.gte required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date greater than or equal to the specified date - name: startDate.lte required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date less than or equal to the specified date - name: endDate.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: endDate.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: endDate.equals required: false in: query description: Filter entries that match a specific date schema: type: string - name: endDate.notEquals required: false in: query description: Filter entries that do not match a specific date schema: type: string - name: endDate.in required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match any of the specified dates - name: endDate.notIn required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that do not match any of the specified dates - name: endDate.gt required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date greater than the specified date - name: endDate.lt required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date less than the specified date - name: endDate.gte required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date greater than or equal to the specified date - name: endDate.lte required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries with a date less than or equal to the specified date - name: customerId.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: customerId.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: customerId.equals required: false in: query description: Filter entries that have a specific value schema: type: string - name: customerId.notEquals required: false in: query description: Filter entries that do not have a specific value schema: type: string - name: customerId.in required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match any of the specified values - name: customerId.notIn required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that do not match any of the specified values - name: customerId.contains required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that contain the specified substring - name: customerId.regex required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match the specified regular expression - name: status__name.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: status__name.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: status__name.equals required: false in: query description: Filter entries that have a specific value schema: type: string - name: status__name.notEquals required: false in: query description: Filter entries that do not have a specific value schema: type: string - name: status__name.in required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match any of the specified values - name: status__name.notIn required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that do not match any of the specified values - name: status__name.contains required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that contain the specified substring - name: status__name.regex required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match the specified regular expression - name: createdFrom.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: createdFrom.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: createdFrom.equals required: false in: query description: Filter entries that have a specific value schema: type: string - name: createdFrom.notEquals required: false in: query description: Filter entries that do not have a specific value schema: type: string - name: createdFrom.in required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match any of the specified values - name: createdFrom.notIn required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that do not match any of the specified values - name: type.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: type.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: type.equals required: false in: query description: Filter entries that have a specific value schema: type: string - name: type.notEquals required: false in: query description: Filter entries that do not have a specific value schema: type: string - name: type.in required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that match any of the specified values - name: type.notIn required: false in: query schema: oneOf: - type: array items: type: string - type: string description: Filter entries that do not match any of the specified values - name: inRange.from required: false in: query schema: type: date - name: inRange.to required: false in: query schema: type: date - name: isRequest.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: isRequest.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: isRequest.equals required: false in: query description: Filter entries that match a specific value schema: type: boolean - name: isRequest.notEquals required: false in: query description: Filter entries that do not match a specific value schema: type: boolean - name: isRequest.withQuoteRequestPrebooking required: false in: query schema: type: boolean - name: isEnded.isNull required: false in: query description: Filter entries that have the field as null schema: type: boolean - name: isEnded.exists required: false in: query description: Filter entries that have the field not null schema: type: boolean - name: isEnded.equals required: false in: query description: Filter entries that match a specific value schema: type: boolean - name: isEnded.notEquals required: false in: query description: Filter entries that do not match a specific value schema: type: boolean - name: paymentStatus required: false in: query schema: oneOf: - type: array items: type: string - type: string - name: orderStatus required: false in: query schema: oneOf: - type: array items: type: string - type: string - name: searchProducts required: false in: query schema: type: string - name: withPaymentV2 required: false in: query schema: type: boolean - name: productId required: false in: query schema: oneOf: - type: array items: type: string - type: string - name: subProductId required: false in: query schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GetManyOrdersResponseDto' tags: - Order /v2/order/optimized: get: operationId: getOrdersOptimized parameters: - name: inRange.startDate required: false in: query schema: format: date-time type: string - name: inRange.endDate required: false in: query schema: format: date-time type: string - name: typeNotEquals required: false in: query schema: type: array items: type: string enum: - ORDER - PRE_BOOKING - PRE_BOOKING_ADMIN - CANCELED - name: isRequest required: false in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/optimized/unpaid: get: operationId: getUnpaidOrders parameters: - name: inRange.startDate required: false in: query schema: format: date-time type: string - name: inRange.endDate required: false in: query schema: format: date-time type: string - name: typeNotEquals required: false in: query schema: type: array items: type: string enum: - ORDER - PRE_BOOKING - PRE_BOOKING_ADMIN - CANCELED - name: isRequest required: false in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/UnpaidOrderSimplifiedDto' tags: - Order /v2/order/request/{orderRequestId}: get: operationId: getOrderRequestById parameters: - name: orderRequestId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/ordersInfoByCustomerId/{customerId}/{year}: get: operationId: ordersInfoByCustomerId parameters: - name: customerId required: true in: path description: The ID of the customer example: 65b2f3d1b7a4e8f1a2c3d4e5 schema: type: string - name: year required: true in: path description: Year to filter on (0 aggregates across all years) example: 0 schema: type: number responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/OrdersInfoForCustomerDto' tags: - Order /v2/order/get-by-subproduct/{subProductId}: get: operationId: getOrdersBySubProductId parameters: - name: subProductId required: true in: path schema: type: string - name: page required: false in: query schema: minimum: 1 default: 1 type: number - name: limit required: false in: query schema: maximum: 15 default: 15 type: number responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GetManyOrdersResponseDto' tags: - Order /v2/order/admin/listLokkiPaymentOrderTransactions: get: operationId: listLokkiPaymentOrderTransactions parameters: - name: companyIds required: true in: query schema: type: array items: type: string - name: startDate required: true in: query schema: format: date-time type: string - name: endDate required: true in: query schema: format: date-time type: string - name: page required: true in: query schema: type: number - name: limit required: true in: query schema: type: number responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PaginatedLokkiPaymentOrderTransactionInfos' tags: - Order /v2/order/admin/admin-pre-booking-orders: get: operationId: getAdminPreBookingOrders parameters: - name: startDate required: true in: query schema: format: date-time type: string - name: endDate required: true in: query schema: format: date-time type: string - name: page required: true in: query schema: minimum: 0 type: number - name: limit required: true in: query schema: minimum: 0 type: number - name: searchEmail required: false in: query schema: type: string - name: searchId required: false in: query schema: type: string - name: transformed required: false in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/AdminPreBookingOrders' tags: - Order /v2/order/getOrderDocumentsByDateRange: get: operationId: getOrderDocumentsByDateRange parameters: - name: startDate required: true in: query schema: format: date-time type: string - name: endDate required: true in: query schema: format: date-time type: string - name: page required: false in: query schema: minimum: 1 default: 1 type: number - name: limit required: false in: query schema: maximum: 30 default: 15 type: number - name: searchCustomer required: false in: query schema: default: '' type: string - name: documentName required: false in: query schema: default: '' type: string - name: searchProducts required: false in: query schema: default: '' type: string - name: state required: false in: query schema: default: [] type: array items: type: string enum: - TODAY - TO_COME - IN_PROGRESS - LATE - ENDED - PASS - PRE_BOOKING - PRE_BOOKING_ADMIN - CANCELED - name: personalStatus required: false in: query schema: default: [] type: array items: type: string - name: documentStatus required: false in: query schema: enum: - NOTUPTODATE - WAITING - SIGNED - SENT type: string - name: createFromStatus required: false in: query schema: default: [] type: array items: type: string enum: - DASHBOARD - QUICK_ORDER - ONLINE_STORE - RENTAL_PLACE_B2B - RENTAL_PLACE_LOKKI - BORNE - SKISET - SKIMIUM - UNKNOWN - TEST - ADMIN_IMPORT - name: withPaymentV2 required: false in: query schema: default: false type: boolean responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/DocumentsByOrderPaginationDto' tags: - Order /v2/order/count/requests-and-messages: get: operationId: countOrderRequestsAndCancelations parameters: [] responses: '200': description: '' content: application/json: schema: type: number tags: - Order /v2/order/buildRequestForUpdate/{orderRequestId}: get: operationId: getConvertedOrderFromOrderRequestId parameters: - name: orderRequestId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CreateUpdateOrderBodyDto' tags: - Order /v2/order/pendingOrdersByCustomer/{customerId}: get: operationId: getPendingOrdersByCustomer parameters: - name: customerId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/{id}: get: operationId: getOrderById parameters: - name: id required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/cashbookPdfExport/{lang}: get: operationId: getCashbookPdfExport parameters: - name: startDate required: true in: query schema: format: date-time type: string - name: endDate required: true in: query schema: format: date-time type: string - name: page required: false in: query schema: minimum: 1 default: 1 type: number - name: limit required: false in: query schema: maximum: 30 default: 15 type: number - name: searchCustomer required: false in: query schema: default: '' type: string - name: documentName required: false in: query schema: default: '' type: string - name: searchProducts required: false in: query schema: default: '' type: string - name: state required: false in: query schema: default: [] type: array items: type: string enum: - TODAY - TO_COME - IN_PROGRESS - LATE - ENDED - PASS - PRE_BOOKING - PRE_BOOKING_ADMIN - CANCELED - name: personalStatus required: false in: query schema: default: [] type: array items: type: string - name: documentStatus required: false in: query schema: enum: - NOTUPTODATE - WAITING - SIGNED - SENT type: string - name: createFromStatus required: false in: query schema: default: [] type: array items: type: string enum: - DASHBOARD - QUICK_ORDER - ONLINE_STORE - RENTAL_PLACE_B2B - RENTAL_PLACE_LOKKI - BORNE - SKISET - SKIMIUM - UNKNOWN - TEST - ADMIN_IMPORT - name: withPaymentV2 required: false in: query schema: default: false type: boolean - name: lang required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: type: string tags: - Order /v2/order/createOrder: post: operationId: createOrder parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUpdateOrderBodyDto' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' '409': description: Sub-products no longer available, or an optimization is already running content: application/json: schema: $ref: '#/components/schemas/OrderConflictErrorDto' tags: - Order /v2/order/admin/create-agency-order: post: operationId: createAgencyOrder parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAgencyOrderBodyDto' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CreateAgencyOrderResponseDto' '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CreateAgencyOrderResponseDto' '409': description: Sub-products no longer available, or an optimization is already running content: application/json: schema: $ref: '#/components/schemas/OrderConflictErrorDto' tags: - Order /v2/order/approval-request/{orderRequestId}: post: operationId: createOrderFromOrderRequest parameters: - name: orderRequestId required: true in: path schema: type: string responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/updateOrder/{id}: put: operationId: updateOrder parameters: - name: id required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUpdateOrderBodyDto' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' '409': description: Sub-products no longer available, or an optimization is already running content: application/json: schema: $ref: '#/components/schemas/OrderConflictErrorDto' tags: - Order /v2/order/readyToGo/{orderId}: post: operationId: readyToGo parameters: - name: orderId required: true in: path schema: type: string responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/email: post: operationId: sendMailOrder parameters: [] requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/FormDataSendMailDto' responses: '201': description: '' tags: - Order /v2/order/emails/{orderId}/opinionBooster: post: operationId: sendOpinionBoosterEmail parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SendMailDto' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/{orderId}/emails/cancelation: post: operationId: sendEmailOrderCancelation parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SendMailDto' responses: '201': description: '' tags: - Order /v2/order/{orderId}/emails/deposit-release-receipt: post: operationId: sendDepositReleaseReceiptEmail parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SendPaymentReceiptDto' responses: '201': description: '' tags: - Order /v2/order/{orderId}/emails/deposit-receipt: post: operationId: sendDepositReceiptEmail parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SendPaymentReceiptDto' responses: '201': description: '' tags: - Order /v2/order/preBookingToOrder/{orderId}: get: operationId: preBookingToOrder parameters: - name: orderId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: type: boolean tags: - Order /v2/order/preBookingToOrderCheckAvailability/{orderId}: get: operationId: preBookingToOrderCheckAvailability parameters: - name: orderId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: type: boolean tags: - Order /v2/order/updateOrdersG8Status: put: operationId: updateOrdersG8Status parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateG8Status' responses: '200': description: '' tags: - Order /v2/order/updateOrdersShifterStatus: put: operationId: updateOrdersShifterStatus parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateG8Status' responses: '200': description: '' tags: - Order /v2/order/{orderId}/allocateMaterial: post: operationId: allocateMaterial parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AllocateMaterialDto' responses: '200': description: '' '409': description: Sub-products no longer available, or an optimization is already running content: application/json: schema: $ref: '#/components/schemas/OrderConflictErrorDto' tags: - Order /v2/order/allocateMaterial/returnProducts/{orderId}: put: operationId: returnOrderProducts parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReturnOrderProductsDto' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/cancel/{orderId}: delete: operationId: cancelOrder parameters: - name: orderId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: type: object tags: - Order /v2/order/deletePermanently/{orderId}: delete: operationId: deleteOrderPermanently parameters: - name: orderId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: type: object tags: - Order /v2/order/generateDocument: post: operationId: generateDocumentOrder parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDocumentOrderDto' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/Document' tags: - Order /v2/order/retryDocument/{orderId}/{documentId}/{lang}: post: operationId: retryDocument parameters: - name: orderId required: true in: path schema: type: string - name: documentId required: true in: path schema: type: string - name: lang required: true in: path schema: type: string responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/Document' tags: - Order /v2/order/messages/clear/{orderId}: put: operationId: clearOrderMessages parameters: - name: orderId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/updateNotes/{orderId}: put: operationId: updateOrderNotes parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateNotesDto' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/attachFile/{orderId}: put: operationId: attachOrderFiles parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true description: upload file content: multipart/form-data: schema: $ref: '#/components/schemas/OrderUploadFilesDto' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/download-attachment/{key}: get: operationId: downloadAttachment parameters: - name: key required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: type: string tags: - Order /v2/order/deleteAttachment/{orderId}/{key}: put: operationId: deleteAttachment parameters: - name: orderId required: true in: path schema: type: string - name: key required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/updateExtInvoiceNumber/{orderId}: put: operationId: updateOrderExtInvoiceNumber parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrderExtInvoiceNumberDto' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CompleteOrder' tags: - Order /v2/order/generateStateDocument: post: operationId: generateOrderStateDocument parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateNewStateDocumentDto' responses: '201': description: '' tags: - Order /v2/order/uploadSurveyDocuments/{orderId}: post: operationId: uploadSurveyDocument parameters: - name: orderId required: true in: path schema: type: string requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadDocumentToOrderDto' responses: '201': description: '' tags: - Order /v2/order/isDocumentStateGenerating/{orderId}: get: operationId: isDocumentStateGenerating parameters: - name: orderId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/IsDocumentStateGeneratingDto' tags: - Order /v2/order/isDocumentGenerating/{orderId}: get: operationId: isDocumentGenerating parameters: - name: orderId required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/IsDocumentGeneratingDto' tags: - Order /v2/order/set-status/{orderId}/{status}: post: operationId: setOrderStatus parameters: - name: orderId required: true in: path schema: type: string - name: status required: true in: path schema: type: string responses: '201': description: '' tags: - Order /v2/order/recover-payment-from-stripe/{companyId}/{orderId}: post: operationId: recoverLcdPaymentFromStripe parameters: - name: companyId required: true in: path schema: type: string - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RecoverOrderPaymentFromStripeDto' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/PaymentV2' tags: - Order /v2/order/recover-refund-from-stripe/{companyId}/{orderId}: post: operationId: recoverLcdRefundFromStripe parameters: - name: companyId required: true in: path schema: type: string - name: orderId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RecoverOrderRefundFromStripeDto' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/PaymentV2' tags: - Order components: schemas: CreateDocumentOrderDto: type: object properties: orderId: type: string documentModelId: type: - string - 'null' documentComment: type: string lang: type: string enum: - fr - en - es - pt - it - pl - de - nl signed: type: boolean generatedViaQuickOrder: type: boolean required: - orderId - documentModelId - documentComment - lang - signed HistoryInspectionField: type: object properties: id: type: string name: type: string answers: type: array items: $ref: '#/components/schemas/HistoryInspectionAnswer' required: - id - name - answers SendPaymentReceiptDto: type: object properties: paymentIntentId: type: string required: - paymentIntentId OfflinePayment: type: object properties: type: $ref: '#/components/schemas/OfflinePaymentProvider' method: enum: - CARD - CASH - CHECK - CHECK_VACANCES - TRANSFER - SQUARE_TERMINAL - OTHER type: string refundedPaymentId: type: string refundReason: enum: - DUPLICATE - FRAUDULENT - REQUESTED_BY_CUSTOMER - OTHER type: string required: - type - method PromoCodeCreateOrderDto: type: object properties: code: type: string source: type: string enum: - COMPANY - LOKKI discountAmount: type: number discountType: type: string applyOnDelivery: type: boolean limitToNewCustomers: type: boolean limitToVerticales: type: array items: type: string limitToCompanies: type: array items: type: string appliedDiscountAmount: type: number required: - code - source - discountAmount - discountType - applyOnDelivery OrderMessageAutoCancel: type: object properties: type: type: string default: AUTO_CANCEL enum: - AUTO_CANCEL message: type: string id: type: string date: format: date-time type: string solved: type: boolean required: - type - message - id - date - solved CreateAgencyOrderBodyDto: type: object properties: companyId: type: string description: Company the hidden quote is created for. Explicit because the admin acts on behalf of any renter — there is no renter JWT to read a companyId from in this flow. startDate: type: string format: date-time endDate: type: string format: date-time customer: $ref: '#/components/schemas/AgencyOrderCustomerDto' lines: description: Requested products. Everything else (price, VAT, deposit, survey, sub-product allocation) is resolved server-side from the renter catalogue — an admin JWT cannot read it. type: array items: $ref: '#/components/schemas/AgencyOrderLineDto' discount: type: number minimum: 0 description: Absolute discount to grant on the quote total, in the company currency. Converted server-side into the percentage `order.discount` the rest of the platform expects. remark: type: string quoteRequestId: type: string description: Quote request the customer info was autofilled from in step 1 of the funnel required: - companyId - startDate - endDate - customer - lines ShifterInfo: type: object properties: shifterId: type: string status: type: string enum: - IMPORTED - TO_IMPORT - NONE importedDate: format: date-time type: - string - 'null' required: - shifterId - status - importedDate GenerateNewStateDocumentDto: type: object properties: orderId: type: string scope: enum: - DEPART - RETOUR type: string generateStateSubProducts: type: array items: $ref: '#/components/schemas/GenerateNewStateSubProductDto' lang: enum: - fr - en - es - pt - it - pl - de - nl type: string required: - orderId - scope - generateStateSubProducts - lang ServiceCreateUpdateOrderDto: type: object properties: id: type: string numberSelected: type: number name: type: string rentalType: type: string enum: - LCD - LLD onlineStoreName: $ref: '#/components/schemas/LocalizedContent' onlineStoreDescription: $ref: '#/components/schemas/LocalizedContent' price: type: number isAssuranceTulip: type: boolean priceLabelToDisplay: type: string serviceImage: type: array items: type: string vat: type: number initialUnitPrice: type: number discount: $ref: '#/components/schemas/ItemDiscount' surveyId: type: string answers: type: object required: - id - numberSelected - name - rentalType - onlineStoreName - onlineStoreDescription - price - isAssuranceTulip - priceLabelToDisplay - serviceImage - vat - initialUnitPrice - discount - answers TulipInfos: type: object properties: address: type: string zipcode: type: string city: type: string managerFirstName: type: string managerLastName: type: string sirenNumber: type: string required: - address - zipcode - city - managerFirstName - managerLastName - sirenNumber GenerateNewStateSubProductDto: type: object properties: productModelId: type: string productId: type: string subProductId: type: string name: type: string serialNumber: type: string previousNote: type: string note: type: string previousInspectionFields: type: array items: $ref: '#/components/schemas/GenerateNewStateProductFieldDto' inspectionFields: type: array items: $ref: '#/components/schemas/GenerateNewStateProductFieldDto' previousFiles: type: array items: $ref: '#/components/schemas/GenerateStateSubProductAttachedFileDto' files: type: array items: $ref: '#/components/schemas/GenerateStateSubProductAttachedFileDto' required: - productModelId - productId - subProductId - name - serialNumber - previousNote - note - previousInspectionFields - inspectionFields - previousFiles - files PaymentSquareRef: type: object properties: squarePaymentId: type: string squareOrderId: type: string required: - squarePaymentId - squareOrderId OrderSkisetInfos: type: object properties: booking_id: type: string reference: type: string customer_id: type: - string - 'null' country_id: type: number resort_id: type: number shop_id: type: number required: - booking_id - reference - customer_id - country_id - resort_id - shop_id PackCategoryCreateOrderDto: type: object properties: id: type: string value: type: string required: - id - value GenerateNewStateProductFieldDto: type: object properties: id: type: string name: type: string answers: type: array items: $ref: '#/components/schemas/GenerateNewStateProductAnswerDto' required: - id - name - answers StripePaymentLongTermDepositType: type: string enum: - LONG_TERM_DEPOSIT UpdateOrderExtInvoiceNumberDto: type: object properties: extInvoiceNumber: type: string required: - extInvoiceNumber DocumentsByOrderPaginationDto: type: object properties: totalCount: type: number documents: type: array items: $ref: '#/components/schemas/DocumentByOrder' required: - totalCount - documents ProductPriceRule: type: object properties: id: type: string title: type: string rules: type: array items: $ref: '#/components/schemas/PriceRule' required: - id - title - rules OrderRef: type: object properties: id: type: string startDate: format: date-time type: string endDate: format: date-time type: string totalTTC: type: number totalHT: type: number createdFrom: type: string enum: - DASHBOARD - QUICK_ORDER - ONLINE_STORE - RENTAL_PLACE_B2B - RENTAL_PLACE_LOKKI - BORNE - SKISET - SKIMIUM - UNKNOWN - TEST - ADMIN_IMPORT required: - id - startDate - endDate - totalTTC - totalHT - createdFrom IsDocumentGeneratingDto: type: object properties: isDocumentGenerating: type: boolean required: - isDocumentGenerating RecoverOrderRefundFromStripeDto: type: object properties: stripeRefundId: type: string refundReason: type: string enum: - DUPLICATE - FRAUDULENT - REQUESTED_BY_CUSTOMER - OTHER required: - stripeRefundId - refundReason PriceRuleVariation: type: object properties: rule: allOf: - $ref: '#/components/schemas/ProductPriceRule' deltaAmount: type: number price: type: number required: - rule - deltaAmount - price DocumentState: type: object properties: createdDate: format: date-time type: string documentId: type: string isEmailSend: type: boolean isSigned: type: boolean key: type: string name: type: string events: type: array items: $ref: '#/components/schemas/DocumentStateEvent' status: type: string enum: - PENDING - SUCCESS pdfMonkeyDocumentId: type: string scope: type: string enum: - DEPART - RETOUR required: - createdDate - documentId - isEmailSend - isSigned - key - name - events GenerateNewStateProductOptionDto: type: object properties: id: type: string value: type: string required: - id - value OrderSubProduct: type: object properties: id: type: string isAvailable: type: boolean printed: type: boolean serialNumber: type: string archive: type: boolean externalQrCode: type: string status: type: string enum: - WAITING - USED - ENDED returnDate: format: date-time type: string answers: type: object required: - id - isAvailable - printed - serialNumber - archive - externalQrCode - status StripePaymentSubscriptionType: type: string enum: - SUBSCRIPTION UploadDocumentToOrderDto: type: object properties: files: type: array items: type: string format: binary uids: type: array items: type: string required: - files - uids StripePaymentLokkiTransferPromoCodeType: type: string enum: - PROMO_CODE CreateUpdateOrderBodyDto: type: object properties: id: type: string isRequest: type: boolean startDate: format: date-time type: string endDate: format: date-time type: string browserTimezone: type: string packs: type: array items: $ref: '#/components/schemas/PackCreateUpdateOrderDto' products: type: array items: $ref: '#/components/schemas/ProductCreateUpdateOrderDto' services: type: array items: $ref: '#/components/schemas/ServiceCreateUpdateOrderDto' warrantedProducts: type: array items: $ref: '#/components/schemas/WarrantedProducts' customInputs: type: array items: $ref: '#/components/schemas/CustomItemCreateUpdateOrderDto' customer: $ref: '#/components/schemas/CreateUpdateOrderCustomer' remark: type: string attachedFiles: type: array items: $ref: '#/components/schemas/AttachedFile' status: type: array items: $ref: '#/components/schemas/Status' arrivalPoint: type: string departurePoint: type: string delivery: $ref: '#/components/schemas/Delivery' totalTTC: type: number totalHT: type: number depositPrice: type: number isDepositManuallyEdited: type: boolean promoCode: $ref: '#/components/schemas/PromoCodeCreateOrderDto' discount: type: number createdFrom: enum: - DASHBOARD - QUICK_ORDER - ONLINE_STORE - RENTAL_PLACE_B2B - RENTAL_PLACE_LOKKI - BORNE - SKISET - SKIMIUM - UNKNOWN - TEST - ADMIN_IMPORT type: string lang: enum: - fr - en - es - pt - it - pl - de - nl type: string orderStatus: enum: - TO_COME - IN_PROGRESS - ENDED type: string type: enum: - ORDER - PRE_BOOKING - PRE_BOOKING_ADMIN - CANCELED type: string additionalTimeBeforeOrder: type: number additionalTimeAfterOrder: type: number orderRequestId: type: string quoteRequestId: type: string requestDate: format: date-time type: string requestId: type: string requestToOrderDate: format: date-time type: string colorCalendar: type: string offlineId: type: string required: - isRequest - startDate - endDate - packs - products - services - customInputs - customer - totalTTC - totalHT - discount - createdFrom - lang - additionalTimeBeforeOrder - additionalTimeAfterOrder OrderUploadFilesDto: type: object properties: files: type: array items: type: string format: binary sizes: type: array items: type: number names: type: array items: type: string types: type: array items: type: string required: - files - sizes - names - types PaymentFees: type: object properties: applicationFeeHT: type: number applicationFeeTVA: type: number applicationFee: type: number stripeFee: type: number required: - applicationFee - stripeFee GetManyOrdersResponseDto: type: object properties: total: type: number description: Total number of documents matching the query minimum: 0 example: 150 docs: type: array items: $ref: '#/components/schemas/CompleteOrder' required: - total - docs RpTracking: type: object properties: campaignid: type: string adgroupid: type: string keyword: type: string device: type: string gclid: type: string utm_source: type: string utm_medium: type: string utm_term: type: string utm_content: type: string utm_campaign: type: string referrer: type: string ae: type: string aesubid0: type: string aesubid1: type: string visitor_id: type: string session_id: type: string fbclid: type: string msclkid: type: string pre_booking_created_from: type: string enum: - manual platform: type: string enum: - DESKTOP_BROWSER - MOBILE_BROWSER - MOBILE_APP OrderConflictErrorCode: type: string enum: - OPTIMIZATION_LOCK_BUSY - ALLOCATE_MATERIAL_CONFLICT - SUB_PRODUCTS_UNAVAILABLE SubProductCreateUpdateOrderDto: type: object properties: _id: type: string serialNumber: type: string archive: type: boolean available: type: boolean status: type: string enum: - WAITING - USED - ENDED externalQrCode: type: string answers: type: object printed: type: boolean returnDate: format: date-time type: string required: - _id - serialNumber - archive - available - status - externalQrCode - answers StripePayment: type: object properties: type: $ref: '#/components/schemas/StripePaymentProvider' details: oneOf: - $ref: '#/components/schemas/StripePaymentPayment' - $ref: '#/components/schemas/StripePaymentRefund' - $ref: '#/components/schemas/StripePaymentLongTermDeposit' - $ref: '#/components/schemas/StripePaymentShortTermDeposit' - $ref: '#/components/schemas/StripePaymentSubscription' - $ref: '#/components/schemas/StripePaymentLokkiTransfer' - $ref: '#/components/schemas/StripePaymentLokkiTransferRefund' errorStatus: $ref: '#/components/schemas/StripePaymentErrorStatus' fees: allOf: - $ref: '#/components/schemas/PaymentFees' paymentMethodDetails: allOf: - $ref: '#/components/schemas/StripeExpressPaymentMethodDetail' errorCode: type: object errorMessage: type: - string - 'null' required: - type - details - fees - paymentMethodDetails - errorCode - errorMessage G8Info: type: object properties: g8Id: type: string status: type: string enum: - IMPORTED - TO_IMPORT - NONE importedDate: format: date-time type: - string - 'null' required: - g8Id - status - importedDate StripePaymentLokkiTransferPromoCode: type: object properties: type: $ref: '#/components/schemas/StripePaymentLokkiTransferPromoCodeType' promoCode: type: string discountAmount: type: number discountType: enum: - PERCENTAGE - AMOUNT type: string linkedStripePaymentId: type: string linkedAncvPaymentIds: type: array items: type: string required: - type - promoCode - discountAmount - discountType - linkedStripePaymentId - linkedAncvPaymentIds AncvConnectFees: type: object properties: amountTTC: type: number amountHT: type: number tva: type: number required: - amountTTC - amountHT - tva StripePaymentShortTermDepositType: type: string enum: - SHORT_TERM_DEPOSIT CustomerSkisetInfos: type: object properties: customerId: type: - string - 'null' required: - customerId StripePaymentErrorStatus: type: string enum: - requires_action - requires_confirmation - requires_payment_method EmailTemplate: type: object properties: id: type: string type: type: string object: $ref: '#/components/schemas/LocalizedContent' content: $ref: '#/components/schemas/LocalizedContent' companyId: type: string documents: $ref: '#/components/schemas/EmailTemplateDocument' documentState: $ref: '#/components/schemas/EmailTemplateDocument' payment: type: number bail: type: number hideTime: type: boolean hideDate: type: boolean createdAt: format: date-time type: string required: - id - type - object - content - companyId - payment - bail - hideTime - hideDate - createdAt DocumentLink: type: object properties: createdDate: format: date-time type: string id: type: string documentModelId: type: string isEmailSend: type: boolean isSigned: type: boolean link: type: string name: type: string comment: type: string lang: type: string required: - createdDate - id - documentModelId - isEmailSend - isSigned - link - name - comment - lang WarrantedProducts: type: object properties: productId: type: string subProductId: type: string serialNumber: type: string margin: type: number pricePerDay: type: number tulipProductId: type: string tulipContractOptionType: type: string enum: - OPTION - INCLUSION - HIDDEN_INCLUSION packId: type: string required: - productId - subProductId - serialNumber - margin - pricePerDay - tulipProductId - tulipContractOptionType SubProduct: type: object properties: id: type: string isAvailable: type: boolean printed: type: boolean serialNumber: type: string archive: type: boolean externalQrCode: type: string notAvailableRanges: type: array items: $ref: '#/components/schemas/NotAvailableRange' required: - id - isAvailable - printed - serialNumber - archive - externalQrCode - notAvailableRanges StripePaymentLokkiTransferRefundType: type: string enum: - LOKKI_TRANSFER_REFUND CustomItem: type: object properties: id: type: string name: type: string numberSelected: type: number price: type: number required: - id - name - numberSelected - price CustomerFieldDto: type: object properties: label: $ref: '#/components/schemas/LocalizedContent' value: type: string id: type: string required: - label - value - id OrderPackCategory: type: object properties: id: type: string value: type: string required: - id - value PackProductCreateUpdateOrderDto: type: object properties: depositAmount: type: number rentalType: type: string enum: - LCD - LLD id: type: string name: type: string onlineStoreName: $ref: '#/components/schemas/LocalizedContent' onlineStoreDescription: $ref: '#/components/schemas/LocalizedContent' subProducts: type: array items: $ref: '#/components/schemas/SubProductCreateUpdateOrderDto' productImage: type: array items: type: string uuid: type: string vat: type: number type: type: string enum: - product - service surveyId: type: string required: - depositAmount - id - name - onlineStoreName - onlineStoreDescription - subProducts - productImage - uuid - vat - type StripePaymentProvider: type: string enum: - STRIPE TulipInformation: type: object properties: error: type: boolean errorMsg: type: string contractId: type: string totalAmount: type: number startDate: format: date-time type: - string - 'null' endDate: format: date-time type: - string - 'null' required: - error - contractId - totalAmount - startDate - endDate CustomItemCreateUpdateOrderDto: type: object properties: id: type: string name: type: string numberSelected: type: number price: type: number required: - id - name - numberSelected - price HistoryInspectionOption: type: object properties: id: type: string value: type: string required: - id - value PromoCode: type: object properties: code: type: string source: type: string enum: - COMPANY - LOKKI discountAmount: type: number discountType: type: string enum: - PERCENTAGE - AMOUNT appliedDiscountAmount: type: number applyOnDelivery: type: boolean limitToNewCustomers: type: boolean limitToVerticales: type: array items: type: string limitToCompanies: type: array items: type: string required: - code - source - discountAmount - discountType - applyOnDelivery CreateUpdateOrderCustomer: type: object properties: id: type: string lastName: type: string firstName: type: string email: type: string phone: type: string zipCode: type: string companyName: type: string isNewsletterSubscribe: type: boolean isLokkiNewsletterSubscribe: type: boolean fields: type: array items: $ref: '#/components/schemas/CustomerFieldDto' tulipInfos: $ref: '#/components/schemas/TulipInfos' customerRpId: type: string hidden: type: boolean required: - lastName StripePaymentRefund: type: object properties: type: $ref: '#/components/schemas/StripePaymentRefundType' refundId: type: string refundedPaymentId: type: string refundDate: format: date-time type: string refundReason: enum: - DUPLICATE - FRAUDULENT - REQUESTED_BY_CUSTOMER - OTHER type: string required: - type - refundId - refundedPaymentId - refundDate - refundReason ReturnOrderProductsDto: type: object properties: subProductIds: type: array items: type: string endOrder: type: boolean required: - subProductIds - endOrder GeneratePaymentLink: type: object properties: amount: type: number generate: type: boolean required: - amount - generate OrderService: type: object properties: isAssuranceTulip: type: boolean id: type: string name: type: string rentalType: type: string enum: - LCD - LLD onlineStoreName: $ref: '#/components/schemas/LocalizedContent' onlineStoreDescription: $ref: '#/components/schemas/LocalizedContent' numberSelected: type: number serviceImage: type: array items: type: string price: type: number priceLabelToDisplay: type: string isDeleted: type: boolean vat: type: number initialUnitPrice: type: number discount: $ref: '#/components/schemas/ItemDiscount' surveyId: type: string answers: type: object required: - isAssuranceTulip - id - name - rentalType - onlineStoreName - onlineStoreDescription - numberSelected - serviceImage - price - priceLabelToDisplay - isDeleted - vat - initialUnitPrice - discount SentMailDataDto: type: object properties: sentDate: type: string id: type: string object: type: string recipients: $ref: '#/components/schemas/SentMailRecipients' actions: $ref: '#/components/schemas/SentMailDataActionsDto' status: type: string enum: - BOUNCED - NOT_OPENED - OPENED createdAt: format: date-time type: string required: - sentDate - id - object - actions - createdAt StripePaymentLokkiTransferType: type: string enum: - LOKKI_TRANSFER RecoverOrderPaymentFromStripeDto: type: object properties: paymentIntentId: type: string required: - paymentIntentId PaginatedLokkiPaymentOrderTransactionInfos: type: object properties: totalPages: type: number data: type: array items: $ref: '#/components/schemas/LokkiPaymentTransactionInfoOrder' required: - totalPages - data Document: type: object properties: createdDate: format: date-time type: string documentId: type: string documentModelId: type: string isEmailSend: type: boolean isSigned: type: boolean key: type: string name: type: string status: enum: - PENDING - SUCCESS - FAILED type: string pdfMonkeyDocumentId: type: string required: - createdDate - documentId - documentModelId - isEmailSend - isSigned - key - name ItemDiscount: type: object properties: discountType: type: string enum: - AMOUNT - PERCENTAGE amount: type: number required: - discountType - amount CompleteOrder: type: object properties: messages: type: array items: oneOf: - $ref: '#/components/schemas/OrderMessageCancel' - $ref: '#/components/schemas/OrderMessageQuestion' - $ref: '#/components/schemas/OrderMessageAutoCancel' id: type: string startDate: format: date-time type: string startDateProductAvailable: format: date-time type: string endDate: format: date-time type: string endDateProductAvailable: format: date-time type: string durationInHours: type: number discount: type: number vat: type: number totalTTC: type: number totalHT: type: number remark: type: string hiddenNote: type: string attachedFiles: type: array items: $ref: '#/components/schemas/AttachedFile' labelCalendar: type: string products: type: array items: $ref: '#/components/schemas/OrderProduct' packs: type: array items: $ref: '#/components/schemas/OrderPack' services: type: array items: $ref: '#/components/schemas/OrderService' customItems: type: array items: $ref: '#/components/schemas/CustomItem' customer: $ref: '#/components/schemas/Customer' isConfirmationEmailSend: type: boolean companyId: type: string colorCalendar: type: string status: type: array items: $ref: '#/components/schemas/Status' delivery: $ref: '#/components/schemas/Delivery' documents: type: array items: $ref: '#/components/schemas/Document' documentLink: type: array items: $ref: '#/components/schemas/DocumentLink' departurePoint: type: string arrivalPoint: type: string additionalTimeBeforeOrder: type: number additionalTimeAfterOrder: type: number orderStatus: enum: - TO_COME - IN_PROGRESS - ENDED type: string documentsState: type: array items: $ref: '#/components/schemas/DocumentState' documentStateLink: type: array items: $ref: '#/components/schemas/DocumentStateLink' promoCode: allOf: - $ref: '#/components/schemas/PromoCode' extInvoiceNumber: type: string opinionBoosterSent: type: boolean type: enum: - ORDER - PRE_BOOKING - PRE_BOOKING_ADMIN - CANCELED type: string sentMails: type: array items: $ref: '#/components/schemas/SentMailDataDto' createdFrom: enum: - DASHBOARD - QUICK_ORDER - ONLINE_STORE - RENTAL_PLACE_B2B - RENTAL_PLACE_LOKKI - BORNE - SKISET - SKIMIUM - UNKNOWN - TEST - ADMIN_IMPORT type: string referral: enum: - HEXPLO - MOLLOW - HOURRAIL - YOUBOOK - OISE_FUN - OUTDOOR_ACTIVE - GENERATION_VOYAGE - DECATHLON_OUTDOOR type: string g8Info: allOf: - $ref: '#/components/schemas/G8Info' shifterInfo: allOf: - $ref: '#/components/schemas/ShifterInfo' updatedAt: format: date-time type: string createdAt: format: date-time type: string canceledAt: format: date-time type: string renterConfirmedAt: format: date-time type: string renterManualConfirmationEmailAt: format: date-time type: string renterAutoConfirmationEmailSentAt: format: date-time type: string tulipInformation: allOf: - $ref: '#/components/schemas/TulipInformation' warrantedProducts: type: array items: $ref: '#/components/schemas/WarrantedProducts' rpTracking: $ref: '#/components/schemas/RpTracking' attribution: $ref: '#/components/schemas/OrderAttribution' skisetInfos: $ref: '#/components/schemas/OrderSkisetInfos' company: $ref: '#/components/schemas/OrderCompanyDetails' requestDate: format: date-time type: string requestToOrderDate: format: date-time type: string requestId: type: string quoteRequestId: type: string isRequest: type: boolean depositPrice: type: number isDepositManuallyEdited: type: boolean offlineId: type: string required: - messages - id - startDate - startDateProductAvailable - endDate - endDateProductAvailable - durationInHours - discount - vat - totalTTC - totalHT - remark - hiddenNote - attachedFiles - labelCalendar - products - packs - services - customItems - customer - isConfirmationEmailSend - companyId - colorCalendar - status - delivery - documents - documentLink - departurePoint - arrivalPoint - additionalTimeBeforeOrder - additionalTimeAfterOrder - orderStatus - documentsState - documentStateLink - promoCode - extInvoiceNumber - opinionBoosterSent - type - sentMails - createdFrom - g8Info - shifterInfo - updatedAt - createdAt - tulipInformation - warrantedProducts - isRequest - depositPrice AgencyOrderLineDto: type: object properties: productId: type: string description: Id of an LCD product or item (pack/service) belonging to the target company quantity: type: number minimum: 1 type: type: string enum: - product - service - pack description: Item type — defaults to product required: - productId - quantity Status: type: object properties: category: type: string name: type: string color: type: string id: type: string statusId: type: string required: - category - name - color - id - statusId AttachedFile: type: object properties: name: type: string key: type: string size: type: number type: type: string uid: type: string required: - name - key - size - type StripePaymentLokkiTransfer: type: object properties: type: $ref: '#/components/schemas/StripePaymentLokkiTransferType' details: oneOf: - $ref: '#/components/schemas/StripePaymentLokkiTransferPromoCode' allOf: - $ref: '#/components/schemas/StripePaymentLokkiTransferPromoCode' transferId: type: string required: - type - details - transferId PointSchema: type: object properties: type: type: string coordinates: type: array items: type: number required: - type - coordinates UnpaidOrderSimplifiedDto: type: object properties: orderStatus: type: string enum: - CANCELED - ENDED - PRE_BOOKING - IN_PROGRESS - TO_COME orderId: type: string startDate: type: string endDate: type: string remainingBalance: type: number customerId: type: string customer: $ref: '#/components/schemas/CustomerRef' totalTTC: type: number required: - orderStatus - orderId - startDate - endDate - remainingBalance - customerId - customer - totalTTC UpdateG8Status: type: object properties: orderId: type: string status: enum: - IMPORTED - TO_IMPORT - NONE type: string required: - orderId - status IsDocumentStateGeneratingDto: type: object properties: isDocumentStateGenerating: type: boolean required: - isDocumentStateGenerating AncvConnectPaymentDetail: type: object properties: preTransactionId: type: string qrCodeTransactionId: type: string transactionId: type: string method: enum: - QR_CODE - AUTHENTIFICATION type: string DocumentStateEvent: type: object properties: eventId: type: string productsHistoryId: type: string required: - eventId - productsHistoryId HistoryAttachedFile: type: object properties: name: type: string key: type: string size: type: number type: type: string url: type: string required: - name - key - size - type CustomerField: type: object properties: label: $ref: '#/components/schemas/LocalizedContent' value: type: string id: type: string required: - label - value - id OfflinePaymentProvider: type: string enum: - OFFLINE FormDataSendMailDto: type: object properties: files: type: array items: type: string format: binary orderId: type: string to: type: string cc: type: array items: type: string template: type: string object: type: string content: type: string i18nContent: type: string attachedDocumentId: type: string attachedDocumentStateId: type: string generateDocument: type: string generateDocumentState: type: string sendPaymentLinks: type: boolean generatePaymentLink: type: string generateBailLink: type: string generateSubscriptionLink: type: string hideDate: type: boolean hideTime: type: boolean lang: enum: - fr - en - es - pt - it - pl - de - nl type: string required: - files - orderId - object - content - sendPaymentLinks - generatePaymentLink - generateBailLink - generateSubscriptionLink - hideDate - hideTime - lang SentMailDataActionsDto: type: object properties: sign: type: boolean payment: type: boolean bail: type: boolean booster: type: boolean required: - sign - payment - bail OrderMessageQuestion: type: object properties: type: type: string default: QUESTION enum: - QUESTION message: type: string id: type: string date: format: date-time type: string solved: type: boolean required: - type - message - id - date - solved ProductCreateUpdateOrderDto: type: object properties: id: type: string productImage: type: array items: type: string name: type: string rentalType: type: string enum: - LCD - LLD onlineStoreName: $ref: '#/components/schemas/LocalizedContent' onlineStoreDescription: $ref: '#/components/schemas/LocalizedContent' subProducts: type: array items: $ref: '#/components/schemas/SubProductCreateUpdateOrderDto' numberSelected: type: number price: type: number depositAmount: type: number priceLabelToDisplay: type: string vat: type: number surveyId: type: string initialUnitPrice: type: number priceRuleVariation: allOf: - $ref: '#/components/schemas/PriceRuleVariation' discount: $ref: '#/components/schemas/ItemDiscount' insurance: $ref: '#/components/schemas/ProductInsurance' isDeleted: type: boolean requestAnswers: type: object required: - id - productImage - name - rentalType - onlineStoreName - onlineStoreDescription - subProducts - numberSelected - price - depositAmount - priceLabelToDisplay - vat - initialUnitPrice - priceRuleVariation - discount StripePaymentRefundType: type: string enum: - REFUND DocumentByOrder: type: object properties: id: type: string name: type: string customerName: type: string documentModelId: type: string createdDate: format: date-time type: string isEmailSend: type: boolean isSigned: type: boolean key: type: string orderId: type: string orderStartDate: format: date-time type: string orderEndDate: format: date-time type: string orderUpdatedAt: format: date-time type: string required: - id - name - customerName - documentModelId - createdDate - isEmailSend - isSigned - key - orderId - orderStartDate - orderEndDate - orderUpdatedAt AncvConnectPayment: type: object properties: type: $ref: '#/components/schemas/AncvPaymentProvider' fees: allOf: - $ref: '#/components/schemas/AncvConnectFees' origin: enum: - ONLINE_STORE - PAYMENT_LINK - LOKKI_TRANSFER - RENTAL_PLACE type: string details: $ref: '#/components/schemas/AncvConnectPaymentDetail' required: - type - fees - origin - details AgencyOrderCompanyDto: type: object properties: id: type: string userId: type: string description: Owner user of the company — the impersonation target for logAs accountType: $ref: '#/components/schemas/CompanyAccountType' required: - id - userId - accountType GenerateDocument: type: object properties: id: type: string method: type: string enum: - signature - pdf content: type: object required: - id - method - content Customer: type: object properties: id: type: string firstName: type: string lastName: type: string companyName: type: string phone: type: string email: type: string zipCode: type: string fields: type: array items: $ref: '#/components/schemas/CustomerField' companyId: type: string deliveryAddress: type: string deliveryZipCode: type: string deliveryCity: type: string isNewsletterSubscribe: type: boolean isLokkiNewsletterSubscribe: type: boolean customerImage: type: string type: enum: - entreprise - individual type: string skisetInfos: $ref: '#/components/schemas/CustomerSkisetInfos' tulipInfos: $ref: '#/components/schemas/TulipInfos' createdAt: format: date-time type: string remark: type: string customerRpId: type: string hidden: type: boolean createdFrom: enum: - DASHBOARD - ONLINE_STORE - RENTAL_PLACE_LOKKI type: string required: - id - firstName - lastName - companyName - phone - email - zipCode - fields - companyId - deliveryAddress - deliveryZipCode - deliveryCity - isNewsletterSubscribe - isLokkiNewsletterSubscribe - customerImage - type - createdAt - hidden - createdFrom StripePaymentPayment: type: object properties: type: $ref: '#/components/schemas/StripePaymentPaymentType' origin: $ref: '#/components/schemas/StripePaymentPaymentOrigin' paymentIntentId: type: - string - 'null' description: type: string required: - type - origin - paymentIntentId - description LocalizedContent: type: object additionalProperties: type: string StripePaymentPaymentType: type: string enum: - PAYMENT OrderMessageCancel: type: object properties: type: type: string default: CANCEL enum: - CANCEL message: type: string id: type: string date: format: date-time type: string solved: type: boolean required: - type - message - id - date - solved StripePaymentShortTermDeposit: type: object properties: type: $ref: '#/components/schemas/StripePaymentShortTermDepositType' origin: $ref: '#/components/schemas/StripePaymentPaymentOrigin' paymentIntentId: type: - string - 'null' stripeCustomerId: type: string description: type: string reason: type: - string - 'null' required: - type - origin - paymentIntentId - stripeCustomerId - description - reason ProductInsurance: type: object properties: isActivated: type: boolean tulipProductId: type: string averagePurchasePrice: type: number margin: type: number sum: type: number contractType: type: string enum: - OPTION - INCLUSION - HIDDEN_INCLUSION required: - isActivated - tulipProductId - averagePurchasePrice - margin - sum Delivery: type: object properties: status: type: boolean departureAddress: allOf: - $ref: '#/components/schemas/DeliveryAddress' departurePrice: type: number departureReferencePrice: type: number departureDeliveredDate: format: date-time type: string arrivalAddress: allOf: - $ref: '#/components/schemas/DeliveryAddress' arrivalPrice: type: number arrivalReferencePrice: type: number arrivalDeliveredDate: format: date-time type: string price: type: number required: - status - departureAddress - departurePrice - departureReferencePrice - departureDeliveredDate - arrivalAddress - arrivalPrice - arrivalReferencePrice - arrivalDeliveredDate SentMailRecipients: type: object properties: main: type: string cc: type: array items: type: string required: - main - cc StripePaymentLongTermDeposit: type: object properties: type: $ref: '#/components/schemas/StripePaymentLongTermDepositType' origin: $ref: '#/components/schemas/StripePaymentPaymentOrigin' stripeCustomerId: type: string paymentIntentId: type: - string - 'null' reason: type: - string - 'null' required: - type - origin - stripeCustomerId - paymentIntentId - reason AllocateMaterialDto: type: object properties: products: type: array items: $ref: '#/components/schemas/OrderProduct' packs: type: array items: $ref: '#/components/schemas/OrderPack' required: - products - packs GenerateNewStateProductAnswerDto: type: object properties: id: type: string answerType: type: string enum: - OPEN_FIELD - UNIQUE_CHOICE - MULTIPLE_CHOICE - ODOMETER value: type: string options: type: array items: $ref: '#/components/schemas/GenerateNewStateProductOptionDto' required: - id - answerType - value - options OrderConflictErrorDto: type: object properties: error: $ref: '#/components/schemas/OrderConflictErrorCode' message: type: string required: - error - message UpdateNotesDto: type: object properties: remark: type: string hiddenNote: type: string labelCalendar: type: string status: type: array items: $ref: '#/components/schemas/Status' colorCalendar: type: string required: - remark - hiddenNote - labelCalendar - status - colorCalendar OrdersInfoForCustomerDto: type: object properties: totalTTC: type: number totalCount: type: number required: - totalTTC - totalCount AdminPreBookingOrders: type: object properties: orders: type: array items: $ref: '#/components/schemas/CompleteOrder' hasNextPage: type: boolean required: - orders - hasNextPage DocumentStateLink: type: object properties: createdDate: format: date-time type: string id: type: string isEmailSend: type: boolean isSigned: type: boolean link: type: string name: type: string scope: type: string enum: - DEPART - RETOUR productsInfo: type: array items: $ref: '#/components/schemas/DocumentStateLinkProductsInfo' required: - createdDate - id - isEmailSend - isSigned - link - name - scope - productsInfo PackCreateUpdateOrderDto: type: object properties: id: type: string depositAmount: type: number rentalType: type: string enum: - LCD - LLD name: type: string onlineStoreName: $ref: '#/components/schemas/LocalizedContent' onlineStoreDescription: $ref: '#/components/schemas/LocalizedContent' numberSelected: type: number packId: type: string packImage: type: array items: type: string products: type: array items: $ref: '#/components/schemas/PackProductCreateUpdateOrderDto' price: type: number vat: type: number categories: type: array items: $ref: '#/components/schemas/PackCategoryCreateOrderDto' type: type: string enum: - PRODUCT - CATEGORY initialUnitPrice: type: number discount: $ref: '#/components/schemas/ItemDiscount' surveyId: type: string answers: type: object required: - id - depositAmount - rentalType - name - onlineStoreName - onlineStoreDescription - numberSelected - packId - packImage - products - price - vat - categories - type - initialUnitPrice - discount - answers StripePaymentSubscription: type: object properties: type: $ref: '#/components/schemas/StripePaymentSubscriptionType' subscriptionId: type: string customerId: type: string subscriptionItemId: type: string subscriptionItemPriceId: type: string invoiceId: type: string paymentIntentId: type: string status: enum: - incomplete - incomplete_expired - trialing - active - past_due - canceled - unpaid - paused type: string required: - type - subscriptionId - customerId - subscriptionItemId - subscriptionItemPriceId - invoiceId - paymentIntentId - status StripeExpressPaymentMethodDetail: type: object properties: cardType: type: string enum: - standard - premium type: type: string enum: - card - Google-Pay - Apple-Pay brand: type: string brandProduct: type: string countryCode: type: string used3DS: type: boolean feeValues: type: object required: - cardType - type - brand - brandProduct - countryCode - used3DS - feeValues GenerateStateSubProductAttachedFileDto: type: object properties: name: type: string key: type: string size: type: number type: type: string url: type: string required: - name - key - size - type DeliveryAddress: type: object properties: streetNumber: type: string streetName: type: string additional: type: string postalCode: type: string city: type: string country: type: string location: $ref: '#/components/schemas/PointSchema' fullAddress: type: string required: - streetNumber - streetName - additional - postalCode - city - country - location - fullAddress PackProduct: type: object properties: depositAmount: type: number rentalType: type: string enum: - LCD - LLD id: type: string name: type: string onlineStoreName: $ref: '#/components/schemas/LocalizedContent' onlineStoreDescription: $ref: '#/components/schemas/LocalizedContent' subProducts: type: array items: $ref: '#/components/schemas/OrderSubProduct' uuid: type: string surveyId: type: string type: type: string enum: - product - service productImage: type: array items: type: string required: - depositAmount - rentalType - id - name - onlineStoreName - onlineStoreDescription - subProducts - uuid - type - productImage CreateAgencyOrderResponseDto: type: object properties: orderId: type: string company: description: 'Returned with the order because `adminLogAs(companyId, userId)` destroys the admin token: the UI can no longer resolve the renter owner once it has impersonated it.' allOf: - $ref: '#/components/schemas/AgencyOrderCompanyDto' required: - orderId - company OrderProduct: type: object properties: depositAmount: type: number id: type: string rentalType: type: string enum: - LCD - LLD name: type: string onlineStoreName: $ref: '#/components/schemas/LocalizedContent' onlineStoreDescription: $ref: '#/components/schemas/LocalizedContent' numberSelected: type: number productImage: type: array items: type: string price: type: number priceLabelToDisplay: type: string subProducts: type: array items: $ref: '#/components/schemas/OrderSubProduct' isDeleted: type: boolean vat: type: number priceRuleVariation: allOf: - $ref: '#/components/schemas/PriceRuleVariation' discount: $ref: '#/components/schemas/ItemDiscount' initialUnitPrice: type: number insurance: $ref: '#/components/schemas/ProductInsurance' surveyId: type: string requestAnswers: type: array items: type: object attachedFiles: type: array items: $ref: '#/components/schemas/AttachedFile' required: - depositAmount - id - rentalType - name - onlineStoreName - onlineStoreDescription - numberSelected - productImage - price - priceLabelToDisplay - subProducts - isDeleted - vat - priceRuleVariation - discount - initialUnitPrice - insurance AgencyOrderCustomerDto: type: object properties: firstName: type: string lastName: type: string email: type: string phoneNumber: type: string required: - firstName - lastName - email - phoneNumber PaymentV2: type: object properties: providerDetails: oneOf: - $ref: '#/components/schemas/OfflinePayment' - $ref: '#/components/schemas/StripePayment' - $ref: '#/components/schemas/AncvConnectPayment' id: type: string companyId: type: string customerId: type: string customerRef: $ref: '#/components/schemas/CustomerRef' orderRef: $ref: '#/components/schemas/OrderRef' paymentType: enum: - PAYMENT - SHORT_TERM_DEPOSIT - LONG_TERM_DEPOSIT - REFUND - SUBSCRIPTION - LOKKI_TRANSFER - LOKKI_TRANSFER_REFUND type: string status: enum: - CANCELED - WAITING - PROCESSING - REQUIRES_CAPTURE - SUCCEEDED - FAILED type: string amount: type: number amountCaptured: type: number currency: type: string orderId: type: string orderType: enum: - ORDER_LCD - ORDER_LLD - ORDER_EVENT type: string context: enum: - ONLINE_STORE - PAYMENT_LINK - RENTAL_PLACE - LOKKI_TRANSFER - OFFLINE type: string provider: enum: - OFFLINE - STRIPE - ANCV type: string squareRef: $ref: '#/components/schemas/PaymentSquareRef' createdAt: format: date-time type: string updatedAt: format: date-time type: string paymentDate: format: date-time type: - string - 'null' captureDate: format: date-time type: - string - 'null' cancelDate: format: date-time type: - string - 'null' expirationDate: format: date-time type: - string - 'null' receiptSent: type: boolean required: - providerDetails - id - companyId - customerId - customerRef - orderRef - paymentType - status - amount - amountCaptured - currency - orderId - orderType - context - provider - createdAt - updatedAt - paymentDate - captureDate - cancelDate - expirationDate CompanyAccountType: type: string enum: - PLATFORM - VISIBILITY_ONE SendMailDto: type: object properties: orderId: type: string to: type: string cc: type: array items: type: string template: $ref: '#/components/schemas/EmailTemplate' object: type: string content: type: string attachedDocumentId: type: string attachedDocumentStateId: type: string generateDocument: $ref: '#/components/schemas/GenerateDocument' generateDocumentState: $ref: '#/components/schemas/GenerateDocument' sendPaymentLinks: type: boolean generatePaymentLink: $ref: '#/components/schemas/GeneratePaymentLink' generateBailLink: $ref: '#/components/schemas/GeneratePaymentLink' generateSubscriptionLink: $ref: '#/components/schemas/GeneratePaymentLink' hideDate: type: boolean hideTime: type: boolean lang: enum: - fr - en - es - pt - it - pl - de - nl type: string required: - orderId - object - content - sendPaymentLinks - generatePaymentLink - generateBailLink - generateSubscriptionLink - hideDate - hideTime - lang StripePaymentLokkiTransferRefund: type: object properties: type: $ref: '#/components/schemas/StripePaymentLokkiTransferRefundType' details: oneOf: - $ref: '#/components/schemas/StripePaymentLokkiTransferPromoCode' allOf: - $ref: '#/components/schemas/StripePaymentLokkiTransferPromoCode' transferReversalId: type: string transferId: type: string refundedPaymentId: type: string required: - type - details - transferReversalId - transferId - refundedPaymentId EmailTemplateDocument: type: object properties: id: type: string method: type: string required: - id - method PriceRule: type: object properties: _id: type: string startDate: $ref: '#/components/schemas/PriceRuleDate' endDate: $ref: '#/components/schemas/PriceRuleDate' type: type: string enum: - in - include - overlap variation: type: number required: - startDate - endDate - type - variation OrderPack: type: object properties: depositAmount: type: number rentalType: type: string enum: - LCD - LLD id: type: string name: type: string onlineStoreName: $ref: '#/components/schemas/LocalizedContent' onlineStoreDescription: $ref: '#/components/schemas/LocalizedContent' numberSelected: type: number packId: type: string packImage: type: array items: type: string price: type: number products: type: array items: $ref: '#/components/schemas/PackProduct' categories: type: array items: $ref: '#/components/schemas/OrderPackCategory' vat: type: number discount: $ref: '#/components/schemas/ItemDiscount' initialUnitPrice: type: number type: type: string enum: - PRODUCT - CATEGORY surveyId: type: string answers: type: object priceRuleVariation: allOf: - $ref: '#/components/schemas/PriceRuleVariation' required: - depositAmount - rentalType - id - name - onlineStoreName - onlineStoreDescription - numberSelected - packId - packImage - price - products - categories - vat - discount - initialUnitPrice - type - priceRuleVariation DocumentStateInspectionField: type: object properties: name: type: string departureInfo: type: string arrivalInfo: type: string required: - name - departureInfo - arrivalInfo CustomerRef: type: object properties: id: type: string firstName: type: string lastName: type: string email: type: string companyName: type: string phone: type: string createdFrom: type: string enum: - DASHBOARD - ONLINE_STORE - RENTAL_PLACE_LOKKI required: - id - firstName - lastName - email - companyName - phone - createdFrom DocumentStateLinkProductsInfo: type: object properties: arrivalInfo: type: string departureInfo: type: string id: type: string name: type: string subProduct: $ref: '#/components/schemas/SubProduct' inspectionFields: type: array items: $ref: '#/components/schemas/HistoryInspectionField' previousInspectionFields: type: array items: $ref: '#/components/schemas/HistoryInspectionField' stateInspectionFields: type: array items: $ref: '#/components/schemas/DocumentStateInspectionField' previousFiles: type: array items: $ref: '#/components/schemas/HistoryAttachedFile' files: type: array items: $ref: '#/components/schemas/HistoryAttachedFile' required: - arrivalInfo - departureInfo - id - name - subProduct - inspectionFields - previousInspectionFields - stateInspectionFields - previousFiles - files NotAvailableRange: type: object properties: from: format: date-time type: string to: format: date-time type: string required: - from - to OrderAttribution: type: object properties: isFromQuickCart: type: boolean description: True when the order originates from the Quick Cart (panier magique) flow quickCartQuoteRequestId: type: string description: Id of the agency QuoteRequest created alongside a Quick Cart, carried so it can be cancelled on self-checkout. Distinct from the order's top-level quoteRequestId (agency conversion). StripePaymentPaymentOrigin: type: string enum: - PAYMENT_LINK - ONLINE_STORE HistoryInspectionAnswer: type: object properties: id: type: string answerType: type: string enum: - OPEN_FIELD - UNIQUE_CHOICE - MULTIPLE_CHOICE - ODOMETER value: type: string options: type: array items: $ref: '#/components/schemas/HistoryInspectionOption' required: - id - answerType - value - options PriceRuleDate: type: object properties: day: type: number time: type: string required: - day - time LokkiPaymentTransactionInfoOrder: type: object properties: from: type: string default: order enum: - order orderId: type: string date: type: string paymentIntentId: type: string type: type: string enum: - BAIL - PAYMENT origin: type: string companyName: type: string companyId: type: string amount: type: number applicationFeeTTC: type: number applicationFeeTVA: type: number applicationFeeHT: type: number stripeFee: type: number amountPaid: type: number paymentType: type: string enum: - card - Google-Pay - Apple-Pay cardBrand: type: string cardBrandProduct: type: string countryCode: type: string cardType: type: string used3DS: type: boolean lokkiFeeRuleApplied: type: string invoiceNumber: type: string renterPaymentDate: type: string required: - from - orderId - date - paymentIntentId - type - origin - companyName - companyId - amount - applicationFeeTTC - applicationFeeTVA - applicationFeeHT - stripeFee - amountPaid - paymentType - cardBrand - cardBrandProduct - countryCode - cardType - used3DS - lokkiFeeRuleApplied AncvPaymentProvider: type: string enum: - ANCV OrderCompanyDetails: type: object properties: id: type: string userId: type: string name: type: string phone: type: string email: type: string accountType: type: string currencySymbol: type: string required: - id - userId - name - phone - email - accountType - currencySymbol ListPaginateFilterDto: type: object properties: orders: type: array items: $ref: '#/components/schemas/CompleteOrder' totalCount: type: number required: - orders - totalCount securitySchemes: x-access-token: scheme: bearer bearerFormat: JWT type: apiKey in: header name: x-access-token