openapi: 3.2.0 info: version: '2.0' title: ZENSIE Customer Request API servers: - url: https://api.30mhz.com/api tags: - name: customer-request paths: /customer-request: post: tags: - customer-request summary: Add a customer request description: The authenticated user must be an administrator or have an account manager role. operationId: addCustomerRequest security: - Bearer: [] responses: '200': description: Customer request added content: application/json: schema: $ref: '#/components/schemas/CustomerRequest' application/zensie-v2+json: schema: $ref: '#/components/schemas/CustomerRequest' '403': description: Not enough permissions to perform the operation '404': description: Organization does not exist requestBody: content: application/json: schema: $ref: '#/components/schemas/NewCustomerRequest' application/xml: schema: $ref: '#/components/schemas/NewCustomerRequest' /customer-request/{customerRequestId}: get: tags: - customer-request summary: Returns the customer request with the specified id description: The authenticated user must be an administrator. operationId: getCustomerRequestById parameters: - name: customerRequestId in: path required: true schema: type: string security: - Bearer: [] responses: '200': description: The customer request with the given id. content: application/json: schema: $ref: '#/components/schemas/CustomerRequest' application/zensie-v2+json: schema: $ref: '#/components/schemas/CustomerRequest' '403': description: Not enough permissions to perform the operation delete: tags: - customer-request summary: Remove a customer request id description: Operation reserved to administrators. operationId: removeCustomerRequest parameters: - name: customerRequestId in: path required: true schema: type: string security: - Bearer: [] responses: '200': description: Customer request has been removed. '403': description: Not enough permissions to perform the operation '404': description: The customer request was not found. /customer-request/organization/{organizationId}: get: tags: - customer-request summary: Returns the customer requests for the given organization description: The authenticated user must be an administrator. operationId: getCustomerRequestsByOrganizationId parameters: - name: organizationId in: path required: true schema: type: string security: - Bearer: [] responses: '200': description: The customer requests for the specified organization. content: application/json: schema: $ref: '#/components/schemas/CustomerRequest' application/zensie-v2+json: schema: $ref: '#/components/schemas/CustomerRequest' '403': description: Not enough permissions to perform the operation components: schemas: NewCustomerRequest: type: object required: - shippingCost properties: accountManager: type: string contactPersonEmail: type: string contactPersonFirstName: type: string contactPersonLastName: type: string contactPersonPhone: type: string countryCode: type: string currency: type: string customVatPercentage: type: integer format: int32 dealer: type: string deliverOnlyToCustomerAddress: type: boolean deliveredPersonally: type: boolean description: type: string discountPercentage: type: integer format: int32 language: type: string measureFrequency: type: integer format: int32 organizationId: type: string organizationLocationName: type: string organizationName: type: string paymentConditions: type: boolean poNumber: type: string remarks: type: string shippingCost: type: number format: float signatureRequired: type: boolean vertical: type: string CustomerRequestItem: type: object required: - lineTotal - unitPrice - units properties: configuration: type: object description: Customer request item configuration additionalProperties: type: string createdAt: type: string description: The date and time a quote item was created. customerRequestId: type: string description: Customer request id. customerRequestItemId: type: string description: Customer request item id. description: type: string description: The description for the quote item. lineTotal: type: number format: float description: CustomerRequest item's line total. motherIds: type: array description: The mother id for the quote item. uniqueItems: true items: type: string productId: type: string description: The product id for the quote item. status: type: string description: The status of the quote item. unitPrice: type: number format: float description: CustomerRequest item's unit price. units: type: integer format: int32 description: CustomerRequest item's units. updatedAt: type: string description: The date and time a quote item was last updated. description: CustomerRequestItem CustomerRequest: type: object required: - totalPrice properties: accountManager: type: string description: CustomerRequest's account manager. contactPersonEmail: type: string description: CustomerRequest's contact person email. contactPersonFirstName: type: string description: CustomerRequest's contact person first name. contactPersonLastName: type: string description: CustomerRequest's contact person last name. contactPersonPhone: type: string description: CustomerRequest's contact person phone number. countryCode: type: string description: The country code of the quote. createdAt: type: string description: The date and time a quote was created. currency: type: string description: CustomerRequest's currency. customVatPercentage: type: integer format: int32 description: CustomerRequest's custom vat percentage. customerRequestId: type: string description: Customer request id. customerRequestItems: type: array items: $ref: '#/components/schemas/CustomerRequestItem' dealer: type: string description: CustomerRequest's dealer email. deliverOnlyToCustomerAddress: type: boolean description: 'Can the order by delivered to neighbours ' deliveredPersonally: type: boolean description: Is the order delivered by us. description: type: string description: CustomerRequest's description. discountAmount: type: number format: float description: CustomerRequest's discount amount. discountPercentage: type: integer format: int32 description: CustomerRequest's discountPercentage. language: type: string description: The language of the quote. measureFrequency: type: integer format: int32 description: The desired measure frequency. organizationId: type: string description: The organization of the quote. organizationLocationName: type: string description: The organization location of the quote. organizationName: type: string description: The organization name of the quote. paymentConditions: type: boolean description: CustomerRequest's payment conditions. poNumber: type: string description: The PO Number of the customer request. remarks: type: string description: The remarks of the customer request. shippingCost: type: number format: float description: CustomerRequest's shipping cost. signatureRequired: type: boolean description: Is a signature required when delivering totalPrice: type: number format: float description: CustomerRequest's total price. totalPriceIncludingDiscount: type: number format: float description: CustomerRequest's total including discount. totalPriceIncludingVat: type: number format: float description: CustomerRequest's total including vat amount. updatedAt: type: string description: The date and time a quote was last updated. vatAmount: type: number format: float description: CustomerRequest's vat amount. vertical: type: string description: The vertical of the quote. description: Customer request securitySchemes: Bearer: description: '' type: apiKey name: Authorization in: header