openapi: 3.1.0
info:
  title: Product Webhook API
  description: Webhook that triggers when a new product is created
  version: 1.0.0
servers:
  - url: https://{subdomain}/api/v3
    description: Production Server
    variables:
      subdomain:
        default: nelsenlim.dealpos.net
        description: Your DealPOS Subdomain
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
security:
  - ApiKeyAuth: []
webhooks:
  productCreated:
    post:
      tags:
        - Product
      operationId: productCreated
      summary: Product Created
      description: This webhook is triggered when a new product is created.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: The unique ID of the variant created.
                Category:
                  type: string
                  minLength: 1
                  description: The name of the category.
                Name:
                  type: string
                  minLength: 1
                  description: The name of the product.
                SupplierName:
                  type: string
                  description: The name of the supplier.
                BrandName:
                  type: string
                  description: The name of the brand.
                Code:
                  type: string
                  minLength: 1
                  description: The product code.
                Discontinued:
                  type: boolean
                  description: Product availability status.
                Description:
                  type: string
                  minLength: 1
                  description: The product description.
                Storage:
                  type: string
                  minLength: 1
                  description: The storage location of the product.
                Tags:
                  type: array
                  items:
                    type: string
                  description: Tags associated with the product.
                ImageURL:
                  type: string
                  description: URL for the product image.
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      ID:
                        type: string
                        description: Unique ID of the variant.
                      Model:
                        type: string
                        description: Model of the variant.
                      Code:
                        type: string
                        description: Code of the variant.
                      UnitCost:
                        type: number
                        description: Cost of the variant.
                      UnitPrice:
                        type: number
                        description: Price of the variant.
                      Discount:
                        type: number
                        description: Discount percentage on the variant.
                      Discontinued:
                        type: boolean
                        description: Variant availability.
                      Description:
                        type: string
                        description: Variant description.
            example:
              ID: 0ce13b18-bd2d-466a-8cc1-fde2191655e9
              Category: Top
              Name: Flanel
              SupplierName: PT SENANG SEKALI
              BrandName: TEGUH Clothing
              Code: '8008'
              Discontinued: false
              Description: New Arrival
              Storage: Rack1
              Tags:
                - Cloth
              ImageURL: /media/0ce13b18-bd2d-466a-8cc1-fde2191655e9/
              Variants:
                - ID: bf708967-3a30-4db1-bfb1-443728a2ffd3
                  Model: M
                  Code: 8008M
                  UnitCost: 150000
                  UnitPrice: 200000
                  Discount: 20
                  Discontinued: false
                  Description: New Arrival
                - ID: e2e5828d-5bd4-42e2-98f5-7aec0d0877ff
                  Model: L
                  Code: 8008L
                  UnitCost: 150000
                  UnitPrice: 200000
                  Discount: 0
                  Discontinued: false
                  Description: New Arrival
                - ID: 8b13fc57-92dc-4222-a9d7-b4731e929f86
                  Model: XL
                  Code: 8008XL
                  UnitCost: 150000
                  UnitPrice: 200000
                  Discount: 0
                  Discontinued: false
                  Description: New Arrival
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  productUpdated:
    post:
      tags:
        - Product
      operationId: productUpdated
      summary: Product Updated
      description: This webhook is triggered when a product is updated.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: Updated
              properties:
                ID:
                  type: string
                  description: The unique ID of the variant created.
                Category:
                  type: string
                  minLength: 1
                  description: >-
                    The name of the category that will be used. You can also
                    create a new category (e.g., "Food/Snack/Pastries" will
                    create 3 levels).
                Name:
                  type: string
                  minLength: 1
                  description: The name of the product to be updated.
                SupplierName:
                  type: string
                  description: The name of the supplier for the product.
                BrandName:
                  type: string
                  description: The name of the brand for the product.
                Code:
                  type: string
                  minLength: 1
                  description: The product code.
                Discontinued:
                  type: boolean
                  description: Product availability for selling.
                Description:
                  type: string
                  minLength: 1
                  description: The description of the product.
                Storage:
                  type: string
                  minLength: 1
                  description: The storage location of the product.
                Tags:
                  type: array
                  description: The tags associated with the product.
                  items:
                    type: string
                ImageURL:
                  type: string
                  description: URL of the product image.
                Variants:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    type: object
                    properties:
                      ID:
                        type: string
                        minLength: 1
                        description: The unique ID of the variant.
                      Model:
                        type: string
                        minLength: 1
                        description: The model of the variant.
                      Code:
                        type: string
                        minLength: 1
                        description: The variant code.
                      UnitCost:
                        type: number
                        description: The cost of the variant.
                      UnitPrice:
                        type: number
                        description: The price of the variant.
                      Discount:
                        type: number
                        description: The discount percentage for the variant.
                      Discontinued:
                        type: boolean
                        description: Variant availability for selling.
                      Description:
                        type: string
                        minLength: 1
                        description: Variant description.
              required:
                - ID
                - Category
                - Name
                - Code
                - Discontinued
                - Description
                - Storage
                - Tags
                - ImageURL
                - Variants
            example:
              ID: 0ce13b18-bd2d-466a-8cc1-fde2191655e9
              Category: Top
              Name: Flanel
              SupplierName: PT Sehat Sejahtera
              BrandName: Adodis
              Code: '8008'
              Discontinued: false
              Description: New Arrival
              Storage: Rack1
              Tags:
                - Cloth
              ImageURL: /media/0ce13b18-bd2d-466a-8cc1-fde2191655e9/
              Variants:
                - ID: bf708967-3a30-4db1-bfb1-443728a2ffd3
                  Model: M
                  Code: 8008M
                  UnitCost: 150000
                  UnitPrice: 200000
                  Discount: 20
                  Discontinued: false
                  Description: New Arrival
                - ID: e2e5828d-5bd4-42e2-98f5-7aec0d0877ff
                  Model: L
                  Code: 8008L
                  UnitCost: 150000
                  UnitPrice: 200000
                  Discount: 0
                  Discontinued: false
                  Description: New Arrival
                - ID: 8b13fc57-92dc-4222-a9d7-b4731e929f86
                  Model: XL
                  Code: 8008XL
                  UnitCost: 150000
                  UnitPrice: 200000
                  Discount: 0
                  Discontinued: false
                  Description: New Arrival
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  productDeleted:
    post:
      tags:
        - Product
      operationId: productDeleted
      summary: Product Deleted
      description: This webhook is triggered when a product is deleted.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: The unique ID of the product to be deleted.
                Category:
                  type: string
                  minLength: 1
                  description: The name of the category the product belongs to.
                Name:
                  type: string
                  minLength: 1
                  description: The name of the product.
                SupplierName:
                  type: string
                  description: The name of the supplier of the product.
                BrandName:
                  type: string
                  description: The name of the brand of the product.
                Code:
                  type: string
                  minLength: 1
                  description: The unique code of the product.
                Discontinued:
                  type: boolean
                  description: Whether the product is discontinued.
                Description:
                  type: string
                  minLength: 1
                  description: A description of the product.
                Storage:
                  type: string
                  minLength: 1
                  description: Where the product is stored.
                Tags:
                  type: array
                  description: Tags associated with the product.
                  items:
                    type: string
                ImageURL:
                  type: string
                  description: URL for the image of the product.
                Variants:
                  type: array
                  description: Variants associated with the product.
                  items:
                    type: object
                    properties:
                      ID:
                        type: string
                        description: The unique ID of the variant.
                      Model:
                        type: string
                        description: The model name of the variant.
                      Code:
                        type: string
                        description: The code of the variant.
                      UnitCost:
                        type: number
                        description: The unit cost of the variant.
                      UnitPrice:
                        type: number
                        description: The unit price of the variant.
                      Discount:
                        type: number
                        description: The discount percentage for the variant.
                      Discontinued:
                        type: boolean
                        description: Whether the variant is discontinued.
                      Description:
                        type: string
                        description: The description of the variant.
              example:
                ID: 0ce13b18-bd2d-466a-8cc1-fde2191655e9
                Category: Top
                Name: Flanel
                SupplierName: null
                BrandName: null
                Code: '8008'
                Discontinued: false
                Description: New Arrival
                Storage: Rack1
                Tags:
                  - Cloth
                ImageURL: /media/0ce13b18-bd2d-466a-8cc1-fde2191655e9/
                Variants:
                  - ID: bf708967-3a30-4db1-bfb1-443728a2ffd3
                    Model: M
                    Code: 8008M
                    UnitCost: 150000
                    UnitPrice: 200000
                    Discount: 20
                    Discontinued: false
                    Description: New Arrival
                  - ID: e2e5828d-5bd4-42e2-98f5-7aec0d0877ff
                    Model: L
                    Code: 8008L
                    UnitCost: 150000
                    UnitPrice: 200000
                    Discount: 0
                    Discontinued: false
                    Description: New Arrival
                  - ID: 8b13fc57-92dc-4222-a9d7-b4731e929f86
                    Model: XL
                    Code: 8008XL
                    UnitCost: 150000
                    UnitPrice: 200000
                    Discount: 0
                    Discontinued: false
                    Description: New Arrival
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  productVariantCreated:
    post:
      tags:
        - Product
      operationId: productVariantCreated
      summary: Product Variant Created
      description: This webhook is triggered when a new product variant is created.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: The unique ID of the product variant.
                Category:
                  type: string
                  description: The category ID of the product.
                Product:
                  type: string
                  description: The name of the product.
                Variant:
                  type: string
                  description: The variant of the product.
                Name:
                  type: string
                  description: The name of the product variant.
                Code:
                  type: string
                  description: The product code.
                Weight:
                  type: integer
                  description: The weight of the product.
                Type:
                  type: string
                  description: The type of product variant.
                OrderPrice:
                  type: integer
                  description: The order price of the product.
                UnitCost:
                  type: integer
                  description: The unit cost of the product.
                UnitPrice:
                  type: integer
                  description: The unit price of the product.
                Taxable:
                  type: boolean
                  description: Whether the product is taxable.
                LoyaltyPoint:
                  type: boolean
                  description: Whether the product is eligible for loyalty points.
                Discontinued:
                  type: boolean
                  description: Whether the product variant is discontinued.
                Components:
                  type: array
                  items:
                    type: object
                    properties:
                      Name:
                        type: string
                        description: The name of the component.
                      Code:
                        type: string
                        description: The code of the component.
                      Qty:
                        type: integer
                        description: The quantity of the component.
                OutletPrice:
                  type: array
                  items:
                    type: object
                    properties:
                      Outlet:
                        type: string
                        description: The name of the outlet.
                      Price:
                        type: integer
                        description: The price at the outlet.
                      ExtraCost:
                        type: integer
                        description: Any additional cost at the outlet.
              example:
                Example 1:
                  ID: dc3c01f1-6af5-4a86-9e31-ffaaca8051df
                  Category: '123'
                  Product: Tupperware
                  Variant: XL
                  Name: Tupperware - TPW (XL)
                  Code: TPW-XL
                  Weight: 0
                  Type: Standard
                  OrderPrice: 0
                  UnitCost: 125000
                  UnitPrice: 250000
                  Taxable: true
                  LoyaltyPoint: true
                  Discontinued: false
                  Components:
                    - Name: Sticker
                      Code: STI01
                      Qty: 1
                  OutletPrice:
                    - Outlet: Outlet1
                      Price: 225000
                      ExtraCost: 0
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  productVariantUpdated:
    post:
      tags:
        - Product
      operationId: productVariantUpdated
      summary: Product Variant Updated
      description: This webhook is triggered when a product variant is updated.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: Unique identifier of the variant.
                Category:
                  type: string
                  description: The category associated with the product.
                Product:
                  type: string
                  description: Name of the product.
                Variant:
                  type: string
                  description: The variant type or size.
                Name:
                  type: string
                  description: Full name of the product variant.
                Code:
                  type: string
                  description: Unique code for the variant.
                Weight:
                  type: number
                  description: Weight of the variant.
                Type:
                  type: string
                  description: Type of the product variant (e.g., Standard).
                OrderPrice:
                  type: number
                  description: Price used for orders.
                UnitCost:
                  type: number
                  description: Cost of the variant.
                UnitPrice:
                  type: number
                  description: Selling price of the variant.
                Taxable:
                  type: boolean
                  description: Indicates if the variant is taxable.
                LoyaltyPoint:
                  type: boolean
                  description: Indicates if the variant provides loyalty points.
                Discontinued:
                  type: boolean
                  description: Indicates if the variant is discontinued.
                Components:
                  type: array
                  items:
                    type: object
                    properties:
                      Name:
                        type: string
                        description: Name of the component.
                      Code:
                        type: string
                        description: Code of the component.
                      Qty:
                        type: integer
                        description: Quantity of the component.
                OutletPrice:
                  type: array
                  items:
                    type: object
                    properties:
                      Outlet:
                        type: string
                        description: Name of the outlet.
                      Price:
                        type: number
                        description: Price of the variant at the specified outlet.
                      ExtraCost:
                        type: number
                        description: Additional cost applied at the outlet.
            example:
              ID: dc3c01f1-6af5-4a86-9e31-ffaaca8051df
              Category: '123'
              Product: Tupperware
              Variant: XL
              Name: Tupperware - TPW (XL)
              Code: TPW-XL
              Weight: 0
              Type: Standard
              OrderPrice: 0
              UnitCost: 125000
              UnitPrice: 250000
              Taxable: true
              LoyaltyPoint: true
              Discontinued: false
              Components:
                - Name: Sticker
                  Code: STI01
                  Qty: 1
              OutletPrice:
                - Outlet: Outlet1
                  Price: 225000
                  ExtraCost: 0
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  invoiceCreated:
    post:
      tags:
        - Invoice
      operationId: invoiceCreated
      summary: Invoice Created
      description: This webhook is triggered when a new invoice is created.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: Unique ID of the invoice
                Outlet:
                  type: string
                  description: Name of the outlet
                Number:
                  type: string
                  description: Number of the invoice transaction
                Date:
                  type: string
                  description: Date of the invoice transaction
                DueDate:
                  type: string
                  description: Due date of the invoice transaction
                Tag:
                  type: string
                  description: Channel Tagging system (e.g., Take Away, Shopee)
                Customer:
                  type: object
                  properties:
                    ID:
                      type: string
                      description: Unique ID of the customer
                    Name:
                      type: string
                      description: Name of the customer
                    Email:
                      type: string
                      description: E-mail of the customer
                    Phone:
                      type: string
                      description: Phone number of the customer
                    Mobile:
                      type: string
                      description: Mobile Phone Number of the customer
                    Code:
                      type: string
                      description: Unique Code of the customer
                    Address:
                      type: string
                      description: Customer's address
                CreatorID:
                  type: string
                  description: ID of the creator of the invoice
                Created:
                  type: string
                  description: Date when the invoice was created
                Discount1:
                  type: integer
                  description: Percentage of discount 1
                Discount2:
                  type: integer
                  description: Percentage of discount 2
                DiscountAmount:
                  type: integer
                  description: Discount amount applied
                Gross:
                  type: integer
                  description: Total amount before discounts
                DiscountTotal:
                  type: integer
                  description: Total discount applied
                TaxType:
                  type: string
                  description: Type of tax (e.g., No Tax)
                TaxCalculation:
                  type: string
                  description: Tax calculation method (e.g., Add or Include)
                Tax:
                  type: integer
                  description: Total tax applied
                TaxRate:
                  type: integer
                  description: Tax rate in percentage
                Sales:
                  type: integer
                  description: Total sales after discounts
                Surcharge:
                  type: integer
                  description: Additional surcharge (e.g., credit card fee)
                SalesNTax:
                  type: integer
                  description: Sales total after tax
                Coupon:
                  type: string
                  description: Coupon code used, if any
                Note:
                  type: string
                  description: Additional note for the invoice
                PointUsed:
                  type: integer
                  description: Total loyalty points used
                PointsEarned:
                  type: integer
                  description: Total loyalty points earned
                Delivery:
                  type: string
                  description: Delivery status (Sent, Unsent, etc.)
                Void:
                  type: string
                  description: Whether the invoice is voided (Yes/No)
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: ID of the product variant
                      Name:
                        type: string
                        description: Name of the product variant
                      Code:
                        type: string
                        description: Code of the product variant
                      Quantity:
                        type: integer
                        description: Quantity of the variant sold
                      UnitQuantity:
                        type: integer
                        description: Unit measurement for the variant
                      Cost:
                        type: integer
                        description: Cost of the product variant
                      Price:
                        type: integer
                        description: Price of the product variant
                      PriceOriginal:
                        type: number
                        description: Original price before discounts
                      Discount:
                        type: integer
                        description: Discount percentage for the variant
                      DiscountAmount:
                        type: integer
                        description: Discount amount applied to the variant
                      Taxable:
                        type: boolean
                        description: Whether the product variant is taxable
                      LoyaltyPoint:
                        type: boolean
                        description: Whether loyalty points can be used on the product
                      Expense:
                        type: integer
                        description: Any additional expense related to the variant
                      NettPrice:
                        type: integer
                        description: Price after discounts
                      Commission:
                        type: integer
                        description: Sales commission
                      SalesName:
                        type: string
                        description: Sales person name
                      PriceTypeID:
                        type: integer
                        description: Type of pricing applied
                      Note:
                        type: string
                        description: Note regarding the product variant
                OutboundLogistics:
                  type: array
                  items:
                    type: object
                    properties:
                      Outlet:
                        type: string
                        description: Outlet name for outbound logistics
                      Number:
                        type: string
                        description: Outbound logistics transaction number
                      Date:
                        type: string
                        description: Date of outbound logistics
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        description: Payment date
                      Amount:
                        type: integer
                        description: Payment amount
                      Method:
                        type: string
                        description: Payment method (e.g., Debit Card)
                      Code:
                        type: string
                        description: Payment code
                      Note:
                        type: string
                        description: Payment method note
                ReferenceNumber:
                  type: string
                  description: Reference number for the invoice
                OrderFulfillmentRecipient:
                  type: object
                  properties:
                    ID:
                      type: string
                      description: ID of the recipient
                    Name:
                      type: string
                      description: Name of the recipient
                    Phone:
                      type: string
                      description: Phone number of the recipient
                    Address:
                      type: string
                      description: Address of the recipient
                    City:
                      type: string
                      description: City of the recipient
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00020
              Date: '2020-09-02T00:00:00'
              DueDate: '0001-01-01T00:00:00'
              Tag: Take Away
              Customer:
                ID: 2774372b-0d5e-4171-8c83-dd66fbd4461e
                Name: hendry
                Email: henz2194w@gmail.com
                Phone: '0215851412'
                Mobile: '0815161688'
                Code: HW0001
                Address: Jl. Muara No. 3
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T13:52:18.33'
              Discount1: 0
              Discount2: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              TaxCalculation: Add
              Tax: 0
              TaxRate: 0
              Sales: 100000
              Surcharge: 0
              SalesNTax: 100000
              Coupon: XPPW123
              Note: Note Test
              PointUsed: 0
              PointsEarned: 0
              Delivery: Sent
              Void: 'No'
              Variants:
                - VariantID: cdc45c7e-4990-40c3-a41e-3ee5fb1ec200
                  Name: Muffin (Medium)
                  Code: MM3002
                  Quantity: 1
                  UnitQuantity: 1
                  Cost: 213213
                  Price: 100000
                  PriceOriginal: 17389.03
                  Discount: 0
                  DiscountAmount: 0
                  Taxable: true
                  LoyaltyPoint: true
                  Expense: 10000
                  NettPrice: 100000
                  Commission: 0
                  SalesName: Ferdi
                  PriceTypeID: 1
                  Note: Combo 1
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Debit Card
                  Code: 1234-1546-1546
                  Note: Pay With BCA Card
              OutboundLogistics:
                - Outlet: Outlet2
                  Number: 20.09.00020
                  Date: '2020-09-02T00:00:00'
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  invoiceDeleted:
    post:
      tags:
        - Invoice
      operationId: invoiceDeleted
      summary: Invoice Deleted
      description: This webhook is triggered when an existing customer invoice is deleted.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: The unique ID of the deleted invoice.
                Outlet:
                  type: string
                  description: The name of the outlet where the invoice was created.
                Number:
                  type: string
                  description: The invoice number.
                Date:
                  type: string
                  format: date-time
                  description: The date the invoice was created.
                DueDate:
                  type: string
                  format: date-time
                  description: The due date of the invoice.
                SalesType:
                  type: string
                  description: >-
                    The sales type associated with the invoice (e.g., Take
                    Away).
                Customer:
                  type: object
                  properties:
                    Name:
                      type: string
                      description: The name of the customer.
                    Email:
                      type: string
                      description: The email address of the customer.
                    Phone:
                      type: string
                      description: The phone number of the customer.
                    Mobile:
                      type: string
                      description: The mobile number of the customer.
                    Code:
                      type: string
                      description: The customer code.
                CreatorID:
                  type: string
                  description: The unique ID of the user who created the invoice.
                Created:
                  type: string
                  format: date-time
                  description: The timestamp of when the invoice was created.
                Discount1:
                  type: number
                  description: The first discount applied to the invoice.
                Discount2:
                  type: number
                  description: The second discount applied to the invoice.
                DiscountAmount:
                  type: number
                  description: The total discount amount.
                Gross:
                  type: number
                  description: The gross amount of the invoice before tax and discounts.
                DiscountTotal:
                  type: number
                  description: The total amount of discounts applied.
                TaxType:
                  type: string
                  description: The type of tax applied to the invoice.
                Tax:
                  type: number
                  description: The amount of tax applied to the invoice.
                Sales:
                  type: number
                  description: The total sales amount (after discounts and taxes).
                Surcharge:
                  type: number
                  description: Any surcharge applied to the invoice.
                SalesNTax:
                  type: number
                  description: The total sales amount without tax.
                Coupon:
                  type: string
                  description: Any coupon used for the invoice.
                Note:
                  type: string
                  description: Additional notes related to the invoice.
                PointUsed:
                  type: number
                  description: The number of loyalty points used in the invoice.
                PointsEarned:
                  type: number
                  description: The number of loyalty points earned for the invoice.
                Delivery:
                  type: string
                  description: The delivery status of the invoice (e.g., Sent).
                Void:
                  type: string
                  description: Whether the invoice was voided.
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: The unique ID of the variant.
                      Name:
                        type: string
                        description: The name of the variant.
                      Code:
                        type: string
                        description: The code of the variant.
                      Quantity:
                        type: number
                        description: The quantity of the variant in the invoice.
                      UnitQuantity:
                        type: number
                        description: The unit quantity of the variant.
                      Cost:
                        type: number
                        description: The cost of the variant.
                      Price:
                        type: number
                        description: The price of the variant.
                      PriceOriginal:
                        type: number
                        description: The original price of the variant.
                      Discount:
                        type: number
                        description: The discount applied to the variant.
                      DiscountAmount:
                        type: number
                        description: The amount of discount for the variant.
                      Taxable:
                        type: boolean
                        description: Whether the variant is taxable.
                      LoyaltyPoint:
                        type: boolean
                        description: Whether loyalty points are applicable to the variant.
                      Expense:
                        type: number
                        description: Any associated expense for the variant.
                      NettPrice:
                        type: number
                        description: The net price of the variant.
                      Commission:
                        type: number
                        description: The commission amount for the variant.
                      SalesName:
                        type: string
                        description: The sales name associated with the variant.
                      PriceTypeID:
                        type: number
                        description: The price type ID for the variant.
                      Note:
                        type: string
                        description: Additional notes for the variant.
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        format: date-time
                        description: The date of payment.
                      Amount:
                        type: number
                        description: The amount paid.
                      Method:
                        type: string
                        description: The payment method (e.g., Debit Card).
                      Code:
                        type: string
                        description: The payment code.
                      Note:
                        type: string
                        description: Additional notes about the payment.
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00020
              Date: '2020-09-02T00:00:00'
              DueDate: '0001-01-01T00:00:00'
              SalesType: Take Away
              Customer:
                Name: hendry
                Email: henz2194w@gmail.com
                Phone: '084984984'
                Mobile: '0815161688'
                Code: HW0001
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T13:52:18.33'
              Discount1: 0
              Discount2: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              Tax: 0
              Sales: 100000
              Surcharge: 0
              SalesNTax: 100000
              Coupon: XAD12312
              Note: TEST NOTE
              PointUsed: 0
              PointsEarned: 0
              Delivery: Sent
              Void: 'No'
              Variants:
                - VariantID: cdc45c7e-4990-40c3-a41e-3ee5fb1ec200
                  Name: Muffin (Medium)
                  Code: MM3002
                  Quantity: 1
                  UnitQuantity: 1
                  Cost: 213213
                  Price: 100000
                  PriceOriginal: 17389.03
                  Discount: 0
                  DiscountAmount: 0
                  Taxable: true
                  LoyaltyPoint: true
                  Expense: 10000
                  NettPrice: 100000
                  Commission: 0
                  SalesName: TEGUH
                  PriceTypeID: 1
                  Note: Combo 1
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Debit Card
                  Code: 1234-1546-1546
                  Note: Pay With BCA Card
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  invoiceErased:
    post:
      tags:
        - Invoice
      operationId: invoiceErased
      summary: Invoice Erased
      description: >-
        This webhook is triggered when an existing customer invoice is erased
        (deleted permanently).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: The unique ID of the erased invoice.
                Outlet:
                  type: string
                  description: The outlet where the invoice was created.
                Number:
                  type: string
                  description: The invoice number.
                Date:
                  type: string
                  format: date-time
                  description: The date when the invoice was created.
                DueDate:
                  type: string
                  format: date-time
                  description: The due date of the invoice.
                SalesType:
                  type: string
                  description: Type of sale (e.g., Take Away).
                Customer:
                  type: object
                  properties:
                    Name:
                      type: string
                      description: The customer's name.
                    Email:
                      type: string
                      description: The customer's email address.
                    Phone:
                      type: string
                      description: The customer's phone number.
                    Mobile:
                      type: string
                      description: The customer's mobile number.
                    Code:
                      type: string
                      description: A unique code for the customer.
                CreatorID:
                  type: string
                  description: The unique ID of the creator.
                Created:
                  type: string
                  format: date-time
                  description: The timestamp when the invoice was created.
                Discount1:
                  type: number
                  description: The first discount applied to the invoice.
                Discount2:
                  type: number
                  description: The second discount applied to the invoice.
                DiscountAmount:
                  type: number
                  description: The total discount amount.
                Gross:
                  type: number
                  description: The total gross amount of the invoice.
                DiscountTotal:
                  type: number
                  description: The total discount applied.
                TaxType:
                  type: string
                  description: Type of tax applied (e.g., No Tax).
                Tax:
                  type: number
                  description: The amount of tax applied.
                Sales:
                  type: number
                  description: The total sales amount.
                Surcharge:
                  type: number
                  description: Any surcharge applied.
                SalesNTax:
                  type: number
                  description: The sales amount excluding tax.
                Coupon:
                  type: string
                  description: Any coupon applied to the invoice.
                Note:
                  type: string
                  description: Any notes attached to the invoice.
                PointUsed:
                  type: number
                  description: The loyalty points used for the invoice.
                PointsEarned:
                  type: number
                  description: The loyalty points earned from the invoice.
                Delivery:
                  type: string
                  description: The delivery status of the invoice.
                Void:
                  type: string
                  description: Whether the invoice is void (Yes/No).
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: The unique ID of the variant.
                      Name:
                        type: string
                        description: The name of the variant.
                      Code:
                        type: string
                        description: The code for the variant.
                      Quantity:
                        type: number
                        description: The quantity of the variant purchased.
                      UnitQuantity:
                        type: number
                        description: The unit quantity of the variant.
                      Cost:
                        type: number
                        description: The cost of the variant.
                      Price:
                        type: number
                        description: The price of the variant.
                      PriceOriginal:
                        type: number
                        description: >-
                          The original price of the variant before any
                          discounts.
                      Discount:
                        type: number
                        description: The discount applied to the variant.
                      DiscountAmount:
                        type: number
                        description: The discount amount for the variant.
                      Taxable:
                        type: boolean
                        description: Whether the variant is taxable.
                      LoyaltyPoint:
                        type: boolean
                        description: Whether loyalty points can be earned for the variant.
                      Expense:
                        type: number
                        description: The expense associated with the variant.
                      NettPrice:
                        type: number
                        description: The net price after all discounts.
                      Commission:
                        type: number
                        description: Any commission associated with the variant.
                      SalesName:
                        type: string
                        description: The sales name associated with the variant.
                      PriceTypeID:
                        type: number
                        description: The ID for the price type.
                      Note:
                        type: string
                        description: Additional notes for the variant.
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        format: date-time
                        description: The date when the payment was made.
                      Amount:
                        type: number
                        description: The payment amount.
                      Method:
                        type: string
                        description: The payment method used.
                      Code:
                        type: string
                        description: The payment transaction code.
                      Note:
                        type: string
                        description: Additional payment notes.
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00020
              Date: '2020-09-02T00:00:00'
              DueDate: '0001-01-01T00:00:00'
              SalesType: Take Away
              Customer:
                Name: hendry
                Email: henz2194w@gmail.com
                Phone: '0815161688'
                Mobile: '0815161688'
                Code: HW0001
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T13:52:18.33'
              Discount1: 0
              Discount2: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              Tax: 0
              Sales: 100000
              Surcharge: 0
              SalesNTax: 100000
              Coupon: CASDASD13123
              Note: TEST NOTE
              PointUsed: 0
              PointsEarned: 0
              Delivery: Sent
              Void: 'Yes'
              Variants:
                - VariantID: cdc45c7e-4990-40c3-a41e-3ee5fb1ec200
                  Name: Muffin (Medium)
                  Code: MM3002
                  Quantity: 1
                  UnitQuantity: 1
                  Cost: 213213
                  Price: 100000
                  PriceOriginal: 17389.03
                  Discount: 0
                  DiscountAmount: 0
                  Taxable: true
                  LoyaltyPoint: true
                  Expense: 10000
                  NettPrice: 100000
                  Commission: 0
                  SalesName: TEGUH
                  PriceTypeID: 1
                  Note: Combo 1
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Debit Card
                  Code: 1234-1546-1546
                  Note: Pay With BCA Card
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  invoiceRestored:
    post:
      tags:
        - Invoice
      operationId: invoiceRestored
      summary: Invoice Restored
      description: >-
        This webhook is triggered when a voided order is restored in the Sell
        Menu.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: The unique ID of the restored invoice.
                Outlet:
                  type: string
                  description: The outlet where the invoice was restored.
                Number:
                  type: string
                  description: The invoice number.
                Date:
                  type: string
                  format: date-time
                  description: The date when the invoice was created.
                DueDate:
                  type: string
                  format: date-time
                  description: The due date of the invoice.
                SalesType:
                  type: string
                  description: Type of sale (e.g., Take Away).
                Customer:
                  type: object
                  properties:
                    ID:
                      type: string
                      description: The unique ID of the customer.
                    Name:
                      type: string
                      description: The name of the customer.
                    Email:
                      type: string
                      description: The customer's email address.
                    Phone:
                      type: string
                      description: The customer's phone number.
                    Mobile:
                      type: string
                      description: The customer's mobile number.
                    Code:
                      type: string
                      description: A unique code for the customer.
                CreatorID:
                  type: string
                  description: The ID of the person who created the invoice.
                Created:
                  type: string
                  format: date-time
                  description: The timestamp when the invoice was created.
                Discount1:
                  type: number
                  description: The first discount applied to the invoice.
                Discount2:
                  type: number
                  description: The second discount applied to the invoice.
                DiscountAmount:
                  type: number
                  description: The total discount amount.
                Gross:
                  type: number
                  description: The total gross amount of the invoice.
                DiscountTotal:
                  type: number
                  description: The total discount applied.
                TaxType:
                  type: string
                  description: Type of tax applied (e.g., No Tax).
                TaxCalculation:
                  type: string
                  description: The method used to calculate tax (e.g., Add).
                Tax:
                  type: number
                  description: The tax applied to the invoice.
                TaxRate:
                  type: number
                  description: The tax rate applied.
                Sales:
                  type: number
                  description: The total sales amount.
                Surcharge:
                  type: number
                  description: Any surcharge applied.
                SalesNTax:
                  type: number
                  description: The sales amount excluding tax.
                Coupon:
                  type: string
                  description: Any coupon applied to the invoice.
                Note:
                  type: string
                  description: Additional notes attached to the invoice.
                PointUsed:
                  type: number
                  description: The loyalty points used for the invoice.
                PointsEarned:
                  type: number
                  description: The loyalty points earned from the invoice.
                Delivery:
                  type: string
                  description: The delivery status of the invoice.
                Void:
                  type: string
                  description: Whether the invoice was voided (Yes/No).
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: The unique ID of the variant.
                      Name:
                        type: string
                        description: The name of the variant.
                      Code:
                        type: string
                        description: The code of the variant.
                      Quantity:
                        type: number
                        description: The quantity of the variant purchased.
                      UnitQuantity:
                        type: number
                        description: The unit quantity of the variant.
                      Cost:
                        type: number
                        description: The cost of the variant.
                      Price:
                        type: number
                        description: The price of the variant.
                      PriceOriginal:
                        type: number
                        description: The original price of the variant.
                      Discount:
                        type: number
                        description: The discount applied to the variant.
                      DiscountAmount:
                        type: number
                        description: The discount amount for the variant.
                      Taxable:
                        type: boolean
                        description: Whether the variant is taxable.
                      LoyaltyPoint:
                        type: boolean
                        description: Whether loyalty points can be earned for the variant.
                      Expense:
                        type: number
                        description: The expense associated with the variant.
                      NettPrice:
                        type: number
                        description: The net price after all discounts.
                      Commission:
                        type: number
                        description: Any commission associated with the variant.
                      SalesName:
                        type: string
                        description: The sales name associated with the variant.
                      PriceTypeID:
                        type: number
                        description: The price type ID for the variant.
                      Note:
                        type: string
                        description: Any additional notes for the variant.
                OutboundLogistics:
                  type: array
                  items:
                    type: object
                    properties:
                      Outlet:
                        type: string
                        description: The outlet where the product is being dispatched.
                      Number:
                        type: string
                        description: The order number associated with outbound logistics.
                      Date:
                        type: string
                        format: date-time
                        description: The date when the logistics occurred.
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        format: date-time
                        description: The date when the payment was made.
                      Amount:
                        type: number
                        description: The amount of payment made.
                      Method:
                        type: string
                        description: The payment method used (e.g., Debit Card).
                      Code:
                        type: string
                        description: The payment transaction code.
                      Note:
                        type: string
                        description: Any additional notes for the payment.
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00020
              Date: '2020-09-02T00:00:00'
              DueDate: '0001-01-01T00:00:00'
              SalesType: Take Away
              Customer:
                ID: 2774372b-0d5e-4171-8c83-dd66fbd4461e
                Name: hendry
                Email: henz2194w@gmail.com
                Phone: '0215851412'
                Mobile: '0815161688'
                Code: HW0001
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T13:52:18.33'
              Discount1: 0
              Discount2: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              TaxCalculation: Add
              Tax: 0
              TaxRate: 0
              Sales: 100000
              Surcharge: 0
              SalesNTax: 100000
              Coupon: XYZ123
              Note: TEST NOTE
              PointUsed: 0
              PointsEarned: 0
              Delivery: Sent
              Void: 'No'
              Variants:
                - VariantID: cdc45c7e-4990-40c3-a41e-3ee5fb1ec200
                  Name: Muffin (Medium)
                  Code: MM3002
                  Quantity: 1
                  UnitQuantity: 1
                  Cost: 213213
                  Price: 100000
                  PriceOriginal: 17389.03
                  Discount: 0
                  DiscountAmount: 0
                  Taxable: true
                  LoyaltyPoint: true
                  Expense: 10000
                  NettPrice: 100000
                  Commission: 0
                  SalesName: TEGUH
                  PriceTypeID: 1
                  Note: Combo 1
              OutboundLogistics:
                - Outlet: Outlet2
                  Number: 20.09.00020
                  Date: '2020-09-02T00:00:00'
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Debit Card
                  Code: 1234-1546-1546
                  Note: Pay With BCA Card
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  invoiceUpdated:
    post:
      tags:
        - Invoice
      operationId: invoiceUpdated
      summary: Invoice Updated
      description: This webhook is triggered when an existing customer invoice is updated.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: The unique ID of the invoice.
                Outlet:
                  type: string
                  description: The outlet where the invoice was created.
                Number:
                  type: string
                  description: The invoice number.
                Date:
                  type: string
                  format: date-time
                  description: The date when the invoice was created.
                DueDate:
                  type: string
                  format: date-time
                  description: The due date for the invoice.
                SalesType:
                  type: string
                  description: The sales type (e.g., Take Away).
                Customer:
                  type: object
                  properties:
                    Name:
                      type: string
                      description: The name of the customer.
                    Email:
                      type: string
                      description: The email address of the customer.
                    Phone:
                      type: string
                      description: The phone number of the customer.
                    Mobile:
                      type: string
                      description: The mobile number of the customer.
                    Code:
                      type: string
                      description: The code associated with the customer.
                CreatorID:
                  type: string
                  description: The unique ID of the creator.
                Created:
                  type: string
                  format: date-time
                  description: The timestamp when the invoice was created.
                Discount1:
                  type: number
                  description: The first discount percentage.
                Discount2:
                  type: number
                  description: The second discount percentage.
                DiscountAmount:
                  type: number
                  description: The total discount amount.
                Gross:
                  type: number
                  description: The gross total amount of the invoice.
                DiscountTotal:
                  type: number
                  description: The total discount applied to the invoice.
                TaxType:
                  type: string
                  description: The type of tax applied to the invoice (e.g., No Tax).
                Tax:
                  type: number
                  description: The tax amount applied to the invoice.
                Sales:
                  type: number
                  description: The sales amount after applying discounts.
                Surcharge:
                  type: number
                  description: Any surcharge applied to the invoice.
                SalesNTax:
                  type: number
                  description: The sales total excluding tax.
                Coupon:
                  type: string
                  description: The coupon code applied, if any.
                Note:
                  type: string
                  description: Any additional notes for the invoice.
                PointUsed:
                  type: number
                  description: The number of loyalty points used in the invoice.
                PointsEarned:
                  type: number
                  description: The number of loyalty points earned from the invoice.
                Delivery:
                  type: string
                  description: The delivery status of the order (e.g., Sent).
                Void:
                  type: string
                  description: Whether the invoice was voided or not (e.g., No).
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: The unique ID of the variant.
                      Name:
                        type: string
                        description: The name of the product variant.
                      Code:
                        type: string
                        description: The code of the product variant.
                      Quantity:
                        type: number
                        description: The quantity of the variant ordered.
                      UnitQuantity:
                        type: number
                        description: The unit quantity.
                      Cost:
                        type: number
                        description: The cost of the variant.
                      Price:
                        type: number
                        description: The price of the variant.
                      PriceOriginal:
                        type: number
                        description: The original price of the variant.
                      Discount:
                        type: number
                        description: The discount percentage on the variant.
                      DiscountAmount:
                        type: number
                        description: The discount amount on the variant.
                      Taxable:
                        type: boolean
                        description: Whether the variant is taxable.
                      LoyaltyPoint:
                        type: boolean
                        description: Whether the variant is eligible for loyalty points.
                      Expense:
                        type: number
                        description: The expense for the variant.
                      NettPrice:
                        type: number
                        description: The net price after applying discounts.
                      Commission:
                        type: number
                        description: The commission associated with the variant.
                      SalesName:
                        type: string
                        description: The sales name for the variant.
                      PriceTypeID:
                        type: number
                        description: The price type ID.
                      Note:
                        type: string
                        description: Any notes related to the variant.
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        format: date-time
                        description: The date of the payment.
                      Amount:
                        type: number
                        description: The amount paid.
                      Method:
                        type: string
                        description: The payment method used.
                      Code:
                        type: string
                        description: The payment transaction code.
                      Note:
                        type: string
                        description: Additional note regarding the payment.
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00020
              Date: '2020-09-02T00:00:00'
              DueDate: '0001-01-01T00:00:00'
              SalesType: Take Away
              Customer:
                Name: hendry
                Email: henz2194w@gmail.com
                Phone: '0815161688'
                Mobile: '0815161688'
                Code: HW0001
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T13:52:18.33'
              Discount1: 0
              Discount2: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              Tax: 0
              Sales: 100000
              Surcharge: 0
              SalesNTax: 100000
              Coupon: XYZ123
              Note: TEST NOTE
              PointUsed: 0
              PointsEarned: 0
              Delivery: Sent
              Void: 'No'
              Variants:
                - VariantID: cdc45c7e-4990-40c3-a41e-3ee5fb1ec200
                  Name: Muffin (Medium)
                  Code: MM3002
                  Quantity: 1
                  UnitQuantity: 1
                  Cost: 213213
                  Price: 100000
                  PriceOriginal: 17389.03
                  Discount: 0
                  DiscountAmount: 0
                  Taxable: true
                  LoyaltyPoint: true
                  Expense: 10000
                  NettPrice: 100000
                  Commission: 0
                  SalesName: YANSEN QOMARA
                  PriceTypeID: 1
                  Note: Combo 1
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Debit Card
                  Code: 1234-1546-1546
                  Note: Pay With BCA Card
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  invoiceVoided:
    post:
      tags:
        - Invoice
      operationId: invoiceVoided
      summary: Invoice Voided
      description: This webhook is triggered when an existing customer invoice is voided.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: The unique ID of the invoice.
                Outlet:
                  type: string
                  description: The outlet where the invoice was created.
                Number:
                  type: string
                  description: The invoice number.
                Date:
                  type: string
                  format: date-time
                  description: The date when the invoice was created.
                DueDate:
                  type: string
                  format: date-time
                  description: The due date for the invoice.
                SalesType:
                  type: string
                  description: The sales type (e.g., Take Away).
                Customer:
                  type: object
                  properties:
                    Name:
                      type: string
                      description: The name of the customer.
                    Email:
                      type: string
                      description: The email address of the customer.
                    Phone:
                      type: string
                      description: The phone number of the customer.
                    Mobile:
                      type: string
                      description: The mobile number of the customer.
                    Code:
                      type: string
                      description: The code associated with the customer.
                CreatorID:
                  type: string
                  description: The unique ID of the creator.
                Created:
                  type: string
                  format: date-time
                  description: The timestamp when the invoice was created.
                Discount1:
                  type: number
                  description: The first discount percentage.
                Discount2:
                  type: number
                  description: The second discount percentage.
                DiscountAmount:
                  type: number
                  description: The total discount amount.
                Gross:
                  type: number
                  description: The gross total amount of the invoice.
                DiscountTotal:
                  type: number
                  description: The total discount applied to the invoice.
                TaxType:
                  type: string
                  description: The type of tax applied to the invoice (e.g., No Tax).
                Tax:
                  type: number
                  description: The tax amount applied to the invoice.
                Sales:
                  type: number
                  description: The sales amount after applying discounts.
                Surcharge:
                  type: number
                  description: Any surcharge applied to the invoice.
                SalesNTax:
                  type: number
                  description: The sales total excluding tax.
                Coupon:
                  type: string
                  description: The coupon code applied, if any.
                Note:
                  type: string
                  description: Any additional notes for the invoice.
                PointUsed:
                  type: number
                  description: The number of loyalty points used in the invoice.
                PointsEarned:
                  type: number
                  description: The number of loyalty points earned from the invoice.
                Delivery:
                  type: string
                  description: The delivery status of the order (e.g., Sent).
                Void:
                  type: string
                  description: Whether the invoice was voided or not (e.g., Yes).
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: The unique ID of the variant.
                      Name:
                        type: string
                        description: The name of the product variant.
                      Code:
                        type: string
                        description: The code of the product variant.
                      Quantity:
                        type: number
                        description: The quantity of the variant ordered.
                      UnitQuantity:
                        type: number
                        description: The unit quantity.
                      Cost:
                        type: number
                        description: The cost of the variant.
                      Price:
                        type: number
                        description: The price of the variant.
                      PriceOriginal:
                        type: number
                        description: The original price of the variant.
                      Discount:
                        type: number
                        description: The discount percentage on the variant.
                      DiscountAmount:
                        type: number
                        description: The discount amount on the variant.
                      Taxable:
                        type: boolean
                        description: Whether the variant is taxable.
                      LoyaltyPoint:
                        type: boolean
                        description: Whether the variant is eligible for loyalty points.
                      Expense:
                        type: number
                        description: The expense for the variant.
                      NettPrice:
                        type: number
                        description: The net price after applying discounts.
                      Commission:
                        type: number
                        description: The commission associated with the variant.
                      SalesName:
                        type: string
                        description: The sales name for the variant.
                      PriceTypeID:
                        type: number
                        description: The price type ID.
                      Note:
                        type: string
                        description: Any notes related to the variant.
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        format: date-time
                        description: The date of the payment.
                      Amount:
                        type: number
                        description: The amount paid.
                      Method:
                        type: string
                        description: The payment method used.
                      Code:
                        type: string
                        description: The payment transaction code.
                      Note:
                        type: string
                        description: Additional note regarding the payment.
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00020
              Date: '2020-09-02T00:00:00'
              DueDate: '0001-01-01T00:00:00'
              SalesType: Take Away
              Customer:
                Name: hendry
                Email: henz2194w@gmail.com
                Phone: '0815161688'
                Mobile: '0815161688'
                Code: HW0001
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T13:52:18.33'
              Discount1: 0
              Discount2: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              Tax: 0
              Sales: 100000
              Surcharge: 0
              SalesNTax: 100000
              Coupon: XYZ123
              Note: TEST NOTE
              PointUsed: 0
              PointsEarned: 0
              Delivery: Sent
              Void: 'Yes'
              Variants:
                - VariantID: cdc45c7e-4990-40c3-a41e-3ee5fb1ec200
                  Name: Muffin (Medium)
                  Code: MM3002
                  Quantity: 1
                  UnitQuantity: 1
                  Cost: 213213
                  Price: 100000
                  PriceOriginal: 17389.03
                  Discount: 0
                  DiscountAmount: 0
                  Taxable: true
                  LoyaltyPoint: true
                  Expense: 10000
                  NettPrice: 100000
                  Commission: 0
                  SalesName: YANSEN QOMARA
                  PriceTypeID: 1
                  Note: Combo 1
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Debit Card
                  Code: 1234-1546-1546
                  Note: Pay With BCA Card
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  customerCreated:
    post:
      tags:
        - Customer
      operationId: customerCreated
      summary: Customer Created
      description: >-
        This webhook is triggered when a new customer is created in the Sell &
        Contacts Customer menu.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                FirstName:
                  type: string
                  minLength: 1
                  description: First Name of the Customer
                LastName:
                  type: string
                  minLength: 1
                  description: Last Name of the Customer
                Title:
                  type: string
                  minLength: 1
                  description: Title of the Customer
                Birthdate:
                  type: string
                  minLength: 1
                  description: Birthdate of the Customer
                Phone:
                  type: string
                  minLength: 1
                  description: Phone Number of the Customer
                Email:
                  type: string
                  minLength: 1
                  description: Email of the Customer
                Gender:
                  type: number
                  description: Gender of the Customer
                Outlet:
                  type: string
                  minLength: 1
                  description: Outlet origin of the Customer
                Name:
                  type: string
                  minLength: 1
                  description: Name of the Customer
                Code:
                  type: number
                  description: Unique code of the Customer
                Address:
                  type: string
                  minLength: 1
                  description: Address of the Customer
                City:
                  type: string
                  minLength: 1
                  description: City of the Customer
                Mobile:
                  type: string
                  minLength: 1
                  description: Mobile Phone number of the Customer
                MemberIdentification:
                  type: string
                  minLength: 1
                  description: Customer Identification Number
              required:
                - FirstName
                - LastName
                - Title
                - Birthdate
                - Phone
                - Email
                - Gender
                - Outlet
                - Name
                - Code
                - Address
                - City
                - Mobile
                - MemberIdentification
            example:
              FirstName: John
              LastName: Doe
              Title: Mr
              Birthdate: '2018-07-22T00:00:00'
              Phone: '56545654'
              Email: johndoe@gmail.com
              Gender: 0
              Outlet: Outlet 1
              Name: Mr John Doe
              Code: 1011
              Address: JL. Muara Karang No.30
              City: Jakarta
              Mobile: '085212121212'
              MemberIdentification: '32412323214512'
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  customerDeleted:
    post:
      tags:
        - Customer
      operationId: customerDeleted
      summary: Customer Deleted
      description: >-
        This webhook is triggered when a customer is deleted from the Contacts
        Customer menu.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                FirstName:
                  type: string
                  minLength: 1
                  description: First Name of the Customer
                LastName:
                  type: string
                  minLength: 1
                  description: Last Name of the Customer
                Title:
                  type: string
                  minLength: 1
                  description: Title of the Customer
                Birthdate:
                  type: string
                  minLength: 1
                  description: Birthdate of the Customer
                Phone:
                  type: string
                  minLength: 1
                  description: Phone Number of the Customer
                Email:
                  type: string
                  minLength: 1
                  description: Email of the Customer
                Gender:
                  type: number
                  description: Gender of the Customer
                Outlet:
                  type: string
                  minLength: 1
                  description: Outlet origin of the Customer
                Name:
                  type: string
                  minLength: 1
                  description: Name of the Customer
                Code:
                  type: number
                  description: Unique code of the Customer
                Address:
                  type: string
                  minLength: 1
                  description: Address of the Customer
                City:
                  type: string
                  minLength: 1
                  description: City of the Customer
                Mobile:
                  type: string
                  minLength: 1
                  description: Mobile Phone number of the Customer
                MemberIdentification:
                  type: string
                  minLength: 1
                  description: Customer Identification Number
              required:
                - FirstName
                - LastName
                - Title
                - Birthdate
                - Phone
                - Email
                - Gender
                - Outlet
                - Name
                - Code
                - Address
                - City
                - Mobile
                - MemberIdentification
            example:
              FirstName: John
              LastName: Doe
              Title: Mr
              Birthdate: '2018-07-22T00:00:00'
              Phone: '56545654'
              Email: johndoe@gmail.com
              Gender: 0
              Outlet: Outlet 1
              Name: Mr John Doe
              Code: 1011
              Address: JL. Muara Karang No.30
              City: Jakarta
              Mobile: '085212121212'
              MemberIdentification: '32412323214512'
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  customerUpdated:
    post:
      tags:
        - Customer
      operationId: customerUpdated
      summary: Customer Updated
      description: >-
        This webhook is triggered when a customer is updated in the Contacts
        Customer menu.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                FirstName:
                  type: string
                  minLength: 1
                  description: First Name of the Customer
                LastName:
                  type: string
                  minLength: 1
                  description: Last Name of the Customer
                Title:
                  type: string
                  minLength: 1
                  description: Title of the Customer
                Birthdate:
                  type: string
                  minLength: 1
                  description: Birthdate of the Customer
                Phone:
                  type: string
                  minLength: 1
                  description: Phone Number of the Customer
                Email:
                  type: string
                  minLength: 1
                  description: Email of the Customer
                Gender:
                  type: number
                  description: Gender of the Customer
                Outlet:
                  type: string
                  minLength: 1
                  description: Outlet origin of the Customer
                Name:
                  type: string
                  minLength: 1
                  description: Name of the Customer
                Code:
                  type: number
                  description: Unique code of the Customer
                Address:
                  type: string
                  minLength: 1
                  description: Address of the Customer
                City:
                  type: string
                  minLength: 1
                  description: City of the Customer
                Mobile:
                  type: string
                  minLength: 1
                  description: Mobile Phone number of the Customer
                MemberIdentification:
                  type: string
                  minLength: 1
                  description: Customer Identification Number
              required:
                - FirstName
                - LastName
                - Title
                - Birthdate
                - Phone
                - Email
                - Gender
                - Outlet
                - Name
                - Code
                - Address
                - City
                - Mobile
                - MemberIdentification
            example:
              FirstName: John
              LastName: Doe
              Title: Mr
              Birthdate: '2018-07-22T00:00:00'
              Phone: '5859541'
              Email: johndoe@gmail.com
              Gender: 0
              Outlet: Outlet 1
              Name: Mr John Doe
              Code: 1011
              Address: JL. Muara Karang No.30
              City: Jakarta
              Mobile: '085212121212'
              MemberIdentification: '32412323214512'
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  supplierCreated:
    post:
      tags:
        - Supplier
      operationId: supplierCreated
      summary: Supplier Created
      description: This webhook is triggered when a new supplier is created.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                FirstName:
                  type: string
                  minLength: 1
                  description: First Name of the Supplier
                LastName:
                  type: string
                  minLength: 1
                  description: Last Name of the Supplier
                Title:
                  type: string
                  description: Title on behalf of the Supplier
                Phone:
                  type: string
                  minLength: 1
                  description: Phone Number of the Supplier
                Email:
                  type: string
                  minLength: 1
                  description: Email of the Supplier
                Gender:
                  type: string
                  minLength: 1
                  description: Gender of the Supplier
                Name:
                  type: string
                  minLength: 1
                  description: Name of the Supplier
                Code:
                  type: string
                  minLength: 1
                  description: Unique Code of the Supplier
                Address:
                  type: string
                  minLength: 1
                  description: Address of the Supplier
                Mobile:
                  type: string
                  minLength: 1
                  description: Mobile Phone Number of the Supplier
              required:
                - FirstName
                - LastName
                - Phone
                - Email
                - Gender
                - Name
                - Code
                - Address
                - Mobile
            example:
              FirstName: PT
              LastName: XYZ
              Title: MR
              Phone: '02166747384'
              Email: ptxyz@gmail.com
              Gender: Male
              Name: PT XYZ
              Code: S0001
              Address: Pluit Street No.88
              Mobile: '08583482374'
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  supplierDeleted:
    post:
      tags:
        - Supplier
      operationId: supplierDeleted
      summary: Supplier Deleted
      description: This webhook is triggered when a supplier is deleted.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                FirstName:
                  type: string
                  minLength: 1
                  description: First Name of the Supplier
                LastName:
                  type: string
                  minLength: 1
                  description: Last Name of the Supplier
                Title:
                  type: string
                  description: Title on behalf of the Supplier
                Phone:
                  type: string
                  minLength: 1
                  description: Phone Number of the Supplier
                Email:
                  type: string
                  minLength: 1
                  description: Email of the Supplier
                Gender:
                  type: string
                  minLength: 1
                  description: Gender of the Supplier
                Name:
                  type: string
                  minLength: 1
                  description: Name of the Supplier
                Code:
                  type: string
                  minLength: 1
                  description: Unique Code of the Supplier
                Address:
                  type: string
                  minLength: 1
                  description: Address of the Supplier
                Mobile:
                  type: string
                  minLength: 1
                  description: Mobile Phone Number of the Supplier
              required:
                - FirstName
                - LastName
                - Phone
                - Email
                - Gender
                - Name
                - Code
                - Address
                - Mobile
            example:
              FirstName: PT
              LastName: XYZ
              Title: MR
              Phone: '02166747384'
              Email: ptxyz@gmail.com
              Gender: Male
              Name: PT XYZ
              Code: S0001
              Address: Pluit Street No.88
              Mobile: '08583482374'
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  supplierUpdated:
    post:
      tags:
        - Supplier
      operationId: supplierUpdated
      summary: Supplier Updated
      description: This webhook is triggered when a supplier is updated.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                FirstName:
                  type: string
                  minLength: 1
                  description: First Name of the Supplier
                LastName:
                  type: string
                  minLength: 1
                  description: Last Name of the Supplier
                Title:
                  type: string
                  description: Title on behalf of the Supplier
                Phone:
                  type: string
                  minLength: 1
                  description: Phone Number of the Supplier
                Email:
                  type: string
                  minLength: 1
                  description: Email of the Supplier
                Gender:
                  type: string
                  minLength: 1
                  description: Gender of the Supplier
                Name:
                  type: string
                  minLength: 1
                  description: Name of the Supplier
                Code:
                  type: string
                  minLength: 1
                  description: Unique Code of the Supplier
                Address:
                  type: string
                  minLength: 1
                  description: Address of the Supplier
                Mobile:
                  type: string
                  minLength: 1
                  description: Mobile Phone Number of the Supplier
              required:
                - FirstName
                - LastName
                - Phone
                - Email
                - Gender
                - Name
                - Code
                - Address
                - Mobile
            example:
              FirstName: PT
              LastName: XYZ
              Title: MR
              Phone: '02166747384'
              Email: ptxyz@gmail.com
              Gender: Female
              Name: PT XYZ
              Code: S0001
              Address: Pluit Street No.88
              Mobile: '08583482374'
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  purchaseOrderCreated:
    post:
      tags:
        - Bill
      operationId: purchaseOrderCreated
      summary: Purchase Order Created
      description: >-
        This webhook is triggered when a new purchase order has been completed
        in the Buy Menu.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the supplier bill
                Outlet:
                  type: string
                  minLength: 1
                  description: Outlet origin of the supplier bill
                Number:
                  type: string
                  minLength: 1
                  description: Number of the supplier bill
                Date:
                  type: string
                  minLength: 1
                  description: Date of the supplier bill
                DueDate:
                  type: string
                  description: Due date of the supplier bill
                Supplier:
                  type: object
                  required:
                    - Name
                    - Title
                    - FirstName
                    - LastName
                    - Phone
                    - Email
                    - Code
                    - Gender
                  properties:
                    Name:
                      type: string
                      minLength: 1
                      description: Name of the supplier
                    Title:
                      type: string
                      minLength: 1
                      description: Title of the supplier
                    FirstName:
                      type: string
                      minLength: 1
                      description: First name of the supplier
                    LastName:
                      type: string
                      minLength: 1
                      description: Last name of the supplier
                    Phone:
                      type: string
                      minLength: 1
                      description: Phone number of the supplier
                    Email:
                      type: string
                      minLength: 1
                      description: Email of the supplier
                    Code:
                      type: string
                      minLength: 1
                      description: Supplier member code
                    Gender:
                      type: string
                      minLength: 1
                      description: Gender of the supplier
                CreatorID:
                  type: string
                  minLength: 1
                  description: Unique creator ID of the supplier bill
                Created:
                  type: string
                  minLength: 1
                  description: Supplier bill created date
                Discount1:
                  type: number
                  description: Discount percentage applied in the bill
                DiscountAmount:
                  type: number
                  description: Discount amount applied in the bill
                Gross:
                  type: number
                  description: Total amount before discounts
                DiscountTotal:
                  type: number
                  description: Total discount in the supplier bill
                TaxType:
                  type: string
                  minLength: 1
                  description: Type of tax applied to the supplier bill
                Tax:
                  type: number
                  description: Total amount or percentage of tax
                Purchase:
                  type: number
                  description: Total net purchase amount
                PurchaseNTax:
                  type: number
                  description: Total amount of the supplier bill after taxes
                Delivery:
                  type: string
                  minLength: 1
                  description: Delivery state of the supplier bill
                Tag:
                  type: string
                  description: Channel Tagging System
                Variants:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: Unique ID of the variant
                      Name:
                        type: string
                        description: Name of the variant
                      Code:
                        type: string
                        description: Code of the variant
                      Quantity:
                        type: integer
                        description: Quantity of the variant
                      Price:
                        type: number
                        description: Price of the variant
                      Discount:
                        type: number
                        description: Discount on the variant
                      Note:
                        type: string
                        description: Optional note on the variant
                Payments:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        description: Payment date
                      Amount:
                        type: number
                        description: Payment amount
                      Method:
                        type: string
                        description: Payment method (e.g., Cash)
                      Code:
                        type: string
                        description: Optional payment code
                      Note:
                        type: string
                        description: Optional payment note
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00001
              Date: '2020-09-02T00:00:00'
              DueDate: ''
              Supplier:
                Name: Hendry Wijaya
                Title: Mr.
                FirstName: Hendry
                LastName: Wijaya
                Phone: '0215895473'
                Email: Ndry94@gmail.com
                Code: S12889
                Gender: Male
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T14:05:40.84'
              Discount1: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              Tax: 0
              Purchase: 100000
              PurchaseNTax: 100000
              Delivery: Received
              Tag: Offline Store
              Variants:
                - VariantID: d94579c0-eeb5-4b03-893e-d24cc624786c
                  Name: Shirt
                  Code: MM3002
                  Quantity: 1
                  Price: 100000
                  Discount: 0
                  Note: TEST NOTE
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Cash
                  Code: CODE123
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  purchaseOrderDeleted:
    post:
      tags:
        - Bill
      operationId: purchaseOrderDeleted
      summary: Purchase Order Deleted
      description: >-
        This webhook is triggered when a purchase order is deleted in the Buy
        Menu.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the supplier bill
                Outlet:
                  type: string
                  minLength: 1
                  description: Outlet origin of the supplier bill
                Number:
                  type: string
                  minLength: 1
                  description: Number of the supplier bill
                Date:
                  type: string
                  minLength: 1
                  description: Date of the supplier bill
                DueDate:
                  type: string
                  description: Due date of the supplier bill
                Supplier:
                  type: object
                  required:
                    - Name
                    - Title
                    - FirstName
                    - LastName
                    - Phone
                    - Email
                    - Code
                    - Gender
                  properties:
                    Name:
                      type: string
                      minLength: 1
                      description: Name of the supplier
                    Title:
                      type: string
                      minLength: 1
                      description: Title of the supplier
                    FirstName:
                      type: string
                      minLength: 1
                      description: First name of the supplier
                    LastName:
                      type: string
                      minLength: 1
                      description: Last name of the supplier
                    Phone:
                      type: string
                      minLength: 1
                      description: Phone number of the supplier
                    Email:
                      type: string
                      minLength: 1
                      description: Email of the supplier
                    Code:
                      type: string
                      minLength: 1
                      description: Supplier member code
                    Gender:
                      type: string
                      minLength: 1
                      description: Gender of the supplier
                CreatorID:
                  type: string
                  minLength: 1
                  description: Unique creator ID of the supplier bill
                Created:
                  type: string
                  minLength: 1
                  description: Supplier bill created date
                Discount1:
                  type: number
                  description: Discount percentage applied in the bill
                DiscountAmount:
                  type: number
                  description: Discount amount applied in the bill
                Gross:
                  type: number
                  description: Total amount before discounts
                DiscountTotal:
                  type: number
                  description: Total discount in the supplier bill
                TaxType:
                  type: string
                  minLength: 1
                  description: Type of tax applied to the supplier bill
                Tax:
                  type: number
                  description: Total amount or percentage of tax
                Purchase:
                  type: number
                  description: Total net purchase amount
                PurchaseNTax:
                  type: number
                  description: Total amount of the supplier bill after taxes
                Delivery:
                  type: string
                  minLength: 1
                  description: Delivery state of the supplier bill
                Tag:
                  type: string
                  description: Channel Tagging System
                Variants:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: Unique ID of the variant
                      Name:
                        type: string
                        description: Name of the variant
                      Code:
                        type: string
                        description: Code of the variant
                      Quantity:
                        type: integer
                        description: Quantity of the variant
                      Price:
                        type: number
                        description: Price of the variant
                      Discount:
                        type: number
                        description: Discount on the variant
                      Note:
                        type: string
                        description: Optional note on the variant
                Payments:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        description: Payment date
                      Amount:
                        type: number
                        description: Payment amount
                      Method:
                        type: string
                        description: Payment method (e.g., Cash)
                      Code:
                        type: string
                        description: Optional payment code
                      Note:
                        type: string
                        description: Optional payment note
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00001
              Date: '2020-09-02T00:00:00'
              DueDate: ''
              Supplier:
                Name: Hendry Wijaya
                Title: Mr.
                FirstName: Hendry
                LastName: Wijaya
                Phone: '0215895473'
                Email: Ndry94@gmail.com
                Code: S12889
                Gender: Male
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T14:05:40.84'
              Discount1: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              Tax: 0
              Purchase: 100000
              PurchaseNTax: 100000
              Delivery: Received
              Tag: Offline Store
              Variants:
                - VariantID: d94579c0-eeb5-4b03-893e-d24cc624786c
                  Name: Shirt
                  Code: MM3002
                  Quantity: 1
                  Price: 100000
                  Discount: 0
                  Note: TEST NOTE
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Cash
                  Code: CODE123
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  purchaseOrderRestored:
    post:
      tags:
        - Bill
      operationId: purchaseOrderRestored
      summary: Purchase Order Restored
      description: This webhook is triggered when a Purchase Order is restored.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: Unique ID of the supplier bill.
                Outlet:
                  type: string
                  description: Outlet origin of the supplier bill.
                Number:
                  type: string
                  description: Number of the supplier bill.
                Date:
                  type: string
                  format: date-time
                  description: Date of the supplier bill.
                DueDate:
                  type: string
                  description: Due date of the supplier bill.
                Supplier:
                  type: object
                  properties:
                    Name:
                      type: string
                      description: Name of the supplier.
                    Title:
                      type: string
                      description: Title on behalf of the supplier.
                    FirstName:
                      type: string
                      description: First name of the supplier.
                    LastName:
                      type: string
                      description: Last name of the supplier.
                    Phone:
                      type: string
                      description: Phone number of the supplier.
                    Email:
                      type: string
                      description: Email of the supplier.
                    Code:
                      type: string
                      description: Member code of the supplier.
                    Gender:
                      type: string
                      description: Gender of the supplier.
                  required:
                    - Name
                    - Title
                    - FirstName
                    - LastName
                    - Phone
                    - Email
                    - Code
                    - Gender
                CreatorID:
                  type: string
                  description: Unique Creator ID of the supplier bill.
                Created:
                  type: string
                  format: date-time
                  description: Supplier bill creation date.
                Discount1:
                  type: number
                  description: Discount percentage applied to the bill.
                DiscountAmount:
                  type: number
                  description: Discount amount applied to the bill.
                Gross:
                  type: number
                  description: Total amount before discount.
                DiscountTotal:
                  type: number
                  description: Total discount in the supplier bill.
                TaxType:
                  type: string
                  description: Type of tax applied to the supplier bill.
                Tax:
                  type: number
                  description: Total tax amount.
                Purchase:
                  type: number
                  description: Total net purchase amount.
                PurchaseNTax:
                  type: number
                  description: Total amount of the supplier bill after taxes.
                Delivery:
                  type: string
                  description: Delivery status of the supplier bill.
                Tag:
                  type: string
                  description: Channel tagging system.
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                      Name:
                        type: string
                      Code:
                        type: string
                      Quantity:
                        type: number
                      Price:
                        type: number
                      Discount:
                        type: number
                      Note:
                        type: string
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        format: date-time
                      Amount:
                        type: number
                      Method:
                        type: string
                      Code:
                        type: string
                      Note:
                        type: string
              required:
                - ID
                - Outlet
                - Number
                - Date
                - Supplier
                - CreatorID
                - Created
                - Gross
                - Variants
                - Payments
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00001
              Date: '2020-09-02T00:00:00'
              DueDate: ''
              Supplier:
                Name: Hendry Wijaya
                Title: Mr.
                FirstName: Hendry
                LastName: Wijaya
                Phone: '0215895473'
                Email: Ndry94@gmail.com
                Code: S12889
                Gender: Male
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T14:05:40.84'
              Discount1: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              Tax: 0
              Purchase: 100000
              PurchaseNTax: 100000
              Delivery: Received
              Tag: Offline Store
              Variants:
                - VariantID: d94579c0-eeb5-4b03-893e-d24cc624786c
                  Name: Shirt
                  Code: MM3002
                  Quantity: 1
                  Price: 100000
                  Discount: 0
                  Note: TEST NOTE
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Cash
                  Code: CODE123
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  purchaseOrderUpdated:
    post:
      tags:
        - Bill
      operationId: purchaseOrderUpdated
      summary: Purchase Order Updated
      description: This webhook is triggered when a Purchase Order is updated.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: Unique ID of the supplier bill.
                Outlet:
                  type: string
                  description: Outlet origin of the supplier bill.
                Number:
                  type: string
                  description: Number of the supplier bill.
                Date:
                  type: string
                  format: date-time
                  description: Date of the supplier bill.
                DueDate:
                  type: string
                  description: Due date of the supplier bill.
                Supplier:
                  type: object
                  properties:
                    Name:
                      type: string
                      description: Name of the supplier.
                    Title:
                      type: string
                      description: Title on behalf of the supplier.
                    FirstName:
                      type: string
                      description: First name of the supplier.
                    LastName:
                      type: string
                      description: Last name of the supplier.
                    Phone:
                      type: string
                      description: Phone number of the supplier.
                    Email:
                      type: string
                      description: Email of the supplier.
                    Code:
                      type: string
                      description: Member code of the supplier.
                    Gender:
                      type: string
                      description: Gender of the supplier.
                  required:
                    - Name
                    - Title
                    - FirstName
                    - LastName
                    - Phone
                    - Email
                    - Code
                    - Gender
                CreatorID:
                  type: string
                  description: Unique Creator ID of the supplier bill.
                Created:
                  type: string
                  format: date-time
                  description: Supplier bill creation date.
                Discount1:
                  type: number
                  description: Discount percentage applied to the bill.
                DiscountAmount:
                  type: number
                  description: Discount amount applied to the bill.
                Gross:
                  type: number
                  description: Total amount before discount.
                DiscountTotal:
                  type: number
                  description: Total discount in the supplier bill.
                TaxType:
                  type: string
                  description: Type of tax applied to the supplier bill.
                Tax:
                  type: number
                  description: Total tax amount.
                Purchase:
                  type: number
                  description: Total net purchase amount.
                PurchaseNTax:
                  type: number
                  description: Total amount of the supplier bill after taxes.
                Delivery:
                  type: string
                  description: Delivery status of the supplier bill.
                Tag:
                  type: string
                  description: Channel tagging system.
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                      Name:
                        type: string
                      Code:
                        type: string
                      Quantity:
                        type: number
                      Price:
                        type: number
                      Discount:
                        type: number
                      Note:
                        type: string
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        format: date-time
                      Amount:
                        type: number
                      Method:
                        type: string
                      Code:
                        type: string
                      Note:
                        type: string
              required:
                - ID
                - Outlet
                - Number
                - Date
                - Supplier
                - CreatorID
                - Created
                - Gross
                - Variants
                - Payments
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00001
              Date: '2020-09-02T00:00:00'
              DueDate: ''
              Supplier:
                Name: Hendry Wijaya
                Title: Mr.
                FirstName: Hendry
                LastName: Wijaya
                Phone: '0215895473'
                Email: Ndry94@gmail.com
                Code: S12889
                Gender: Male
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T14:05:40.84'
              Discount1: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              Tax: 0
              Purchase: 100000
              PurchaseNTax: 100000
              Delivery: Received
              Tag: Offline Store
              Variants:
                - VariantID: d94579c0-eeb5-4b03-893e-d24cc624786c
                  Name: Shirt
                  Code: MM3002
                  Quantity: 1
                  Price: 100000
                  Discount: 0
                  Note: TEST NOTE
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Cash
                  Code: CODE123
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  purchaseOrderVoided:
    post:
      tags:
        - Bill
      operationId: purchaseOrderVoided
      summary: Purchase Order Voided
      description: This webhook is triggered when a Purchase Order is voided.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: Unique ID of the supplier bill.
                Outlet:
                  type: string
                  description: Outlet origin of the supplier bill.
                Number:
                  type: string
                  description: Number of the supplier bill.
                Date:
                  type: string
                  format: date-time
                  description: Date of the supplier bill.
                DueDate:
                  type: string
                  description: Due date of the supplier bill.
                Supplier:
                  type: object
                  properties:
                    Name:
                      type: string
                      description: Name of the supplier.
                    Title:
                      type: string
                      description: Title on behalf of the supplier.
                    FirstName:
                      type: string
                      description: First name of the supplier.
                    LastName:
                      type: string
                      description: Last name of the supplier.
                    Phone:
                      type: string
                      description: Phone number of the supplier.
                    Email:
                      type: string
                      description: Email of the supplier.
                    Code:
                      type: string
                      description: Member code of the supplier.
                    Gender:
                      type: string
                      description: Gender of the supplier.
                  required:
                    - Name
                    - Title
                    - FirstName
                    - LastName
                    - Phone
                    - Email
                    - Code
                    - Gender
                CreatorID:
                  type: string
                  description: Unique Creator ID of the supplier bill.
                Created:
                  type: string
                  format: date-time
                  description: Supplier bill creation date.
                Discount1:
                  type: number
                  description: Discount percentage applied to the bill.
                DiscountAmount:
                  type: number
                  description: Discount amount applied to the bill.
                Gross:
                  type: number
                  description: Total amount before discount.
                DiscountTotal:
                  type: number
                  description: Total discount in the supplier bill.
                TaxType:
                  type: string
                  description: Type of tax applied to the supplier bill.
                Tax:
                  type: number
                  description: Total tax amount.
                Purchase:
                  type: number
                  description: Total net purchase amount.
                PurchaseNTax:
                  type: number
                  description: Total amount of the supplier bill after taxes.
                Delivery:
                  type: string
                  description: Delivery status of the supplier bill.
                Tag:
                  type: string
                  description: Channel tagging system.
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                      Name:
                        type: string
                      Code:
                        type: string
                      Quantity:
                        type: number
                      Price:
                        type: number
                      Discount:
                        type: number
                      Note:
                        type: string
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        format: date-time
                      Amount:
                        type: number
                      Method:
                        type: string
                      Code:
                        type: string
                      Note:
                        type: string
              required:
                - ID
                - Outlet
                - Number
                - Date
                - Supplier
                - CreatorID
                - Created
                - Gross
                - Variants
                - Payments
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00001
              Date: '2020-09-02T00:00:00'
              DueDate: ''
              Supplier:
                Name: Hendry Wijaya
                Title: Mr.
                FirstName: Hendry
                LastName: Wijaya
                Phone: '0215895473'
                Email: Ndry94@gmail.com
                Code: S12889
                Gender: Male
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T14:05:40.84'
              Discount1: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              Tax: 0
              Purchase: 100000
              PurchaseNTax: 100000
              Delivery: Received
              Tag: Offline Store
              Variants:
                - VariantID: d94579c0-eeb5-4b03-893e-d24cc624786c
                  Name: Shirt
                  Code: MM3002
                  Quantity: 1
                  Price: 100000
                  Discount: 0
                  Note: TEST NOTE
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Cash
                  Code: CODE123
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  transferOrderCreated:
    post:
      tags:
        - Transfer Order
      operationId: transferOrderCreated
      summary: Transfer Order Created
      description: This webhook is triggered when a Transfer Order is completed.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Outlet:
                  type: string
                  minLength: 1
                  description: Outlet Delivery number
                Destination:
                  type: string
                  minLength: 1
                  description: Destination of the outlet delivery
                Date:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Date of the outlet delivery
                Number:
                  type: string
                  minLength: 1
                  description: Number of the outlet delivery
                Courier:
                  type: string
                  description: Courier name of the outlet delivery
                Note:
                  type: string
                  description: Note of the outlet delivery
                State:
                  type: string
                  minLength: 1
                  description: Status of the outlet delivery
                ReceivedDate:
                  type: string
                  format: date-time
                  description: Received date of the outlet delivery
                ReceivedNote:
                  type: string
                  description: Received note of the outlet delivery
                CreatorID:
                  type: string
                  minLength: 1
                  description: Unique Creator ID of the outlet delivery
                Created:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Created date time of the outlet delivery
                Variants:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - VariantID
                      - Name
                      - Code
                      - Quantity
                      - Discount
                      - Cost
                      - Price
                    properties:
                      VariantID:
                        type: string
                        minLength: 1
                        description: Unique ID of the variant
                      Name:
                        type: string
                        minLength: 1
                        description: Name of the product variant
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant
                      Quantity:
                        type: number
                        description: Total quantity of the product variant
                      Discount:
                        type: number
                        description: Discount amount/percentage of the product variant
                      Cost:
                        type: number
                        description: Unit buying cost of the product variant
                      Price:
                        type: number
                        description: Unit selling price of the product variant
                      Note:
                        type: string
                        description: Note of the product variant
              required:
                - Outlet
                - Destination
                - Date
                - Number
                - State
                - CreatorID
                - Created
                - Variants
            example:
              Outlet: Outlet1
              Destination: Outlet2
              Date: 01 Sep 2020 00:00
              Number: 20.09.00001
              Courier: JNY EXPRESS
              Note: TEST NOTE
              State: Dispatched
              ReceivedDate: 01 Sep 2020 00:00
              ReceivedNote: TEST NOTE
              CreatorID: hendry
              Created: 01 Sep 2020 13:23
              Variants:
                - VariantID: f5d4ef18-5b47-4596-8a42-3d13610b7bf7
                  Name: Denim Shirt (M)
                  Code: 1342M
                  Quantity: 1
                  Discount: 0
                  Cost: 80405.87
                  Price: 500000
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  transferOrderDeleted:
    post:
      tags:
        - Transfer Order
      operationId: transferOrderDeleted
      summary: Transfer Order Deleted
      description: This webhook is triggered when a Transfer Order is deleted.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Outlet:
                  type: string
                  minLength: 1
                  description: Outlet Delivery number
                Destination:
                  type: string
                  minLength: 1
                  description: Destination of the outlet delivery
                Date:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Date of the outlet delivery
                Number:
                  type: string
                  minLength: 1
                  description: Number of the outlet delivery
                Courier:
                  type: string
                  description: Courier name of the outlet delivery
                Note:
                  type: string
                  description: Note of the outlet delivery
                State:
                  type: string
                  minLength: 1
                  description: Status of the outlet delivery
                ReceivedDate:
                  type: string
                  format: date-time
                  description: Received date of the outlet delivery
                ReceivedNote:
                  type: string
                  description: Received note of the outlet delivery
                CreatorID:
                  type: string
                  minLength: 1
                  description: Unique Creator ID of the outlet delivery
                Created:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Created date time of the outlet delivery
                Variants:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - VariantID
                      - Name
                      - Code
                      - Quantity
                      - Discount
                      - Cost
                      - Price
                    properties:
                      VariantID:
                        type: string
                        minLength: 1
                        description: Unique ID of the variant
                      Name:
                        type: string
                        minLength: 1
                        description: Name of the product variant
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant
                      Quantity:
                        type: number
                        description: Total quantity of the product variant
                      Discount:
                        type: number
                        description: Discount amount/percentage of the product variant
                      Cost:
                        type: number
                        description: Unit buying cost of the product variant
                      Price:
                        type: number
                        description: Unit selling price of the product variant cisap
                      Note:
                        type: string
                        description: Note of the product variant
              required:
                - Outlet
                - Destination
                - Date
                - Number
                - State
                - CreatorID
                - Created
                - Variants
            example:
              Outlet: Outlet1
              Destination: Outlet2
              Date: 01 Sep 2020 00:00
              Number: 20.09.00001
              Courier: JNY EXPRESS
              Note: TEST NOTE
              State: Dispatched
              ReceivedDate: 01 Sep 2020 00:00
              ReceivedNote: TEST NOTE
              CreatorID: hendry
              Created: 01 Sep 2020 13:23
              Variants:
                - VariantID: f5d4ef18-5b47-4596-8a42-3d13610b7bf7
                  Name: Denim Shirt (M)
                  Code: 1342M
                  Quantity: 1
                  Discount: 0
                  Cost: 80405.87
                  Price: 500000
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  transferOrderUpdated:
    post:
      tags:
        - Transfer Order
      operationId: transferOrderUpdated
      summary: Transfer Order Updated
      description: >-
        This webhook is triggered when the status of a Transfer Order is
        updated.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Outlet:
                  type: string
                  minLength: 1
                  description: Outlet Delivery number
                Destination:
                  type: string
                  minLength: 1
                  description: Destination of the outlet delivery
                Date:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Date of the outlet delivery
                Number:
                  type: string
                  minLength: 1
                  description: Number of the outlet delivery
                Courier:
                  type: string
                  description: Courier name of the outlet delivery
                Note:
                  type: string
                  description: Note of the outlet delivery
                State:
                  type: string
                  minLength: 1
                  description: Status of the outlet delivery
                ReceivedDate:
                  type: string
                  format: date-time
                  description: Received date of the outlet delivery
                ReceivedNote:
                  type: string
                  description: Received note of the outlet delivery
                CreatorID:
                  type: string
                  minLength: 1
                  description: Unique Creator ID of the outlet delivery
                Created:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Created date time of the outlet delivery
                Variants:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - VariantID
                      - Name
                      - Code
                      - Quantity
                      - Discount
                      - Cost
                      - Price
                    properties:
                      VariantID:
                        type: string
                        minLength: 1
                        description: Unique ID of the variant
                      Name:
                        type: string
                        minLength: 1
                        description: Name of the product variant
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant
                      Quantity:
                        type: number
                        description: Total quantity of the product variant
                      Discount:
                        type: number
                        description: Discount amount/percentage of the product variant
                      Cost:
                        type: number
                        description: Unit buying cost of the product variant
                      Price:
                        type: number
                        description: Unit selling price of the product variant
                      Note:
                        type: string
                        description: Note of the product variant
              required:
                - Outlet
                - Destination
                - Date
                - Number
                - State
                - CreatorID
                - Created
                - Variants
            example:
              Outlet: Outlet1
              Destination: Outlet2
              Date: 01 Sep 2020 00:00
              Number: 20.09.00001
              Courier: JNY EXPRESS
              Note: TEST NOTE
              State: Dispatched
              ReceivedDate: 01 Sep 2020 00:00
              ReceivedNote: TEST NOTE
              CreatorID: hendry
              Created: 01 Sep 2020 13:23
              Variants:
                - VariantID: f5d4ef18-5b47-4596-8a42-3d13610b7bf7
                  Name: Denim Shirt (M)
                  Code: 1342M
                  Quantity: 1
                  Discount: 0
                  Cost: 80405.87
                  Price: 500000
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  outboundLogisticComplete:
    post:
      tags:
        - Outbound Logistic
      operationId: sendOutboundLogisticComplete
      summary: Outbound Logistic Complete
      description: >-
        This webhook is triggered when the Send Outbound Logistic operation is
        completed.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the customer delivery
                Number:
                  type: string
                  minLength: 1
                  description: Origin Number of the customer delivery
                Date:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Date of the customer delivery
                Customer:
                  type: object
                  properties:
                    Name:
                      type: string
                      minLength: 1
                      description: Name of the customer
                    Title:
                      type: string
                      description: Title on behalf of the customer
                    FirstName:
                      type: string
                      minLength: 1
                      description: First Name of the customer
                    LastName:
                      type: string
                      minLength: 1
                      description: Last Name of the customer
                    Phone:
                      type: string
                      minLength: 1
                      description: Phone number of the customer
                    Email:
                      type: string
                      minLength: 1
                      description: Email of the customer
                    Code:
                      type: string
                      minLength: 1
                      description: Member Code of the customer
                    Address:
                      type: string
                      minLength: 1
                      description: Address of the customer
                    Gender:
                      type: string
                      minLength: 1
                      description: Gender of the customer
                  required:
                    - Name
                    - FirstName
                    - LastName
                    - Phone
                    - Email
                    - Code
                    - Address
                    - Gender
                CreatorID:
                  type: string
                  minLength: 1
                  description: Unique creator ID of the customer delivery
                Created:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Created date of the customer delivery
                Variants:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - VariantID
                      - Name
                      - Code
                      - Quantity
                      - Price
                      - PriceOriginal
                      - Discount
                      - DiscountAmount
                      - NettPrice
                    properties:
                      VariantID:
                        type: string
                        minLength: 1
                        description: Unique ID of the variant
                      Name:
                        type: string
                        minLength: 1
                        description: Name of the product variant
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant
                      Quantity:
                        type: number
                        description: Total quantity of the product variant
                      Price:
                        type: number
                        description: Unit selling price of the product variant
                      PriceOriginal:
                        type: number
                        description: Original unit selling price of the product variant
                      Discount:
                        type: number
                        description: Discount percentage of the product variant
                      DiscountAmount:
                        type: number
                        description: Discount amount of the product variant
                      NettPrice:
                        type: number
                        description: Total amount of the customer delivery
                      Note:
                        type: string
                        description: Note of the product variant
              required:
                - Outlet
                - Number
                - Date
                - Customer
                - CreatorID
                - Created
                - Variants
            example:
              Outlet: Outlet1
              Number: 20.09.00003
              Date: '2020-09-02T00:00:00'
              Customer:
                Name: Hendry
                Title: MR
                FirstName: Hendry
                LastName: Wijaya
                Phone: '0215865894'
                Email: Hendry@dealpos.com
                Code: HW001
                Address: Jl. Muara Karang P3T No.30
                Gender: Male
              CreatorID: 71e6e3df-257e-4a56-90ad-f6214b267aee
              Created: '2020-09-02T15:10:31.733'
              Variants:
                - VariantID: ee02969d-93ea-446c-a105-aca4c7cecd4e
                  Name: Shirt (M)
                  Code: 1002M
                  Quantity: 1
                  Price: 100000
                  PriceOriginal: 25
                  Discount: 0
                  DiscountAmount: 0
                  NettPrice: 100000
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  inboundLogisticComplete:
    post:
      tags:
        - Inbound Logistic
      operationId: receiveInboundLogisticComplete
      summary: Inbound Logistic Complete
      description: >-
        This webhook is triggered when the Receive Inbound Logistic operation is
        completed.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the supplier delivery
                Number:
                  type: string
                  minLength: 1
                  description: Origin Number of the supplier delivery
                Date:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Date of the supplier delivery
                Supplier:
                  type: object
                  properties:
                    Name:
                      type: string
                      minLength: 1
                      description: Name of the supplier
                    Title:
                      type: string
                      description: Title on behalf of the supplier
                    FirstName:
                      type: string
                      minLength: 1
                      description: First Name of the supplier
                    LastName:
                      type: string
                      minLength: 1
                      description: Last Name of the supplier
                    Phone:
                      type: string
                      minLength: 1
                      description: Phone number of the supplier
                    Email:
                      type: string
                      minLength: 1
                      description: Email of the supplier
                    Code:
                      type: string
                      minLength: 1
                      description: Member Code of the supplier
                    Address:
                      type: string
                      minLength: 1
                      description: Address of the supplier
                    Gender:
                      type: string
                      minLength: 1
                      description: Gender of the supplier
                  required:
                    - Name
                    - FirstName
                    - LastName
                    - Phone
                    - Email
                    - Code
                    - Address
                    - Gender
                CreatorID:
                  type: string
                  minLength: 1
                  description: Unique creator ID of the supplier delivery
                Created:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Created date of the supplier delivery
                Variants:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - VariantID
                      - Name
                      - Code
                      - Quantity
                      - Price
                      - Discount
                      - DiscountAmount
                      - NettPrice
                    properties:
                      VariantID:
                        type: string
                        minLength: 1
                        description: Unique ID of the variant
                      Name:
                        type: string
                        minLength: 1
                        description: Name of the product variant
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant
                      Quantity:
                        type: number
                        description: Total quantity of the product variant
                      Price:
                        type: number
                        description: Unit selling price of the product variant
                      Discount:
                        type: number
                        description: Discount percentage of the product variant
                      DiscountAmount:
                        type: number
                        description: Discount amount of the product variant
                      NettPrice:
                        type: number
                        description: Total amount of the supplier delivery
                      Note:
                        type: string
                        description: Note of the product variant
              required:
                - Outlet
                - Number
                - Date
                - Supplier
                - CreatorID
                - Created
                - Variants
            example:
              Outlet: Outlet1
              Number: 20.09.00003
              Date: '2020-09-02T00:00:00'
              Supplier:
                Name: Hendry
                Title: MR
                FirstName: Hendry
                LastName: Wijaya
                Phone: '0215865894'
                Email: Hendry@dealpos.com
                Code: HW001
                Address: Jl. Muara Karang P3T No.30
                Gender: Male
              CreatorID: 71e6e3df-257e-4a56-90ad-f6214b267aee
              Created: '2020-09-02T15:10:31.733'
              Variants:
                - VariantID: ee02969d-93ea-446c-a105-aca4c7cecd4e
                  Name: Shirt (M)
                  Code: 1002M
                  Quantity: 1
                  Price: 100000
                  Discount: 0
                  DiscountAmount: 0
                  NettPrice: 100000
                  Note: TEST NOTE
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  adjustmentCreated:
    post:
      tags:
        - Adjustment
      operationId: adjustmentCreated
      summary: Adjustment Created
      description: This webhook is triggered when an adjustment is Created to inventory.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique id of the Adjustment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin Outlet of the Adjustment
                Date:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Date of the Adjustment made
                Number:
                  type: string
                  minLength: 1
                  description: Number of the Adjustment
                PIC:
                  type: string
                  description: Person in charge of the adjustment
                Type:
                  type: string
                  minLength: 1
                  description: Type of the Adjustment
                State:
                  type: string
                  minLength: 1
                  description: Adjustment progress / state
                Note:
                  type: string
                  description: Note of the Adjustment
                AdjustedInventory:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - Variant
                      - VariantID
                      - Code
                      - Quantity
                      - UnitCost
                      - UnitPrice
                      - Price
                      - TotalCost
                      - TotalPrice
                    properties:
                      Variant:
                        type: string
                        minLength: 1
                        description: Name of the product variant adjusted
                      VariantID:
                        type: string
                        minLength: 1
                        description: Variant ID of the product variant adjusted
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant adjusted
                      Quantity:
                        type: number
                        description: Quantity of the product variant adjusted
                      UnitCost:
                        type: number
                        description: Unit buying cost of the product variant adjusted
                      UnitPrice:
                        type: number
                        description: Unit selling price of the product variant adjusted
                      Price:
                        type: number
                        description: Original Price of the product variant adjusted
                      TotalCost:
                        type: number
                        description: Total unit buying cost of the product variant adjusted
                      TotalPrice:
                        type: number
                        description: Total unit selling price of the product variant
                CountedInventory:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - Variant
                      - VariantID
                      - Code
                      - Counted
                      - Actual
                      - Difference
                    properties:
                      Variant:
                        type: string
                        minLength: 1
                        description: Name of the product variant adjusted
                      VariantID:
                        type: string
                        minLength: 1
                        description: Variant ID of the product variant adjusted
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant adjusted
                      Counted:
                        type: number
                        description: Total counted product of the adjustment
                      Actual:
                        type: number
                        description: Total actual stock product of the adjustment
                      Difference:
                        type: number
                        description: Difference between the counted and the actual product
              required:
                - ID
                - Outlet
                - Date
                - Number
                - Type
                - State
                - Note
                - AdjustedInventory
                - CountedInventory
            example:
              ID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Outlet: Outlet1
              Date: '2020-08-31T00:00:00'
              Number: 20.08.00014
              PIC: JANSEN
              Type: UpdateInventory
              State: InProgress
              Note: ''
              AdjustedInventory:
                - Variant: Denim Shirt (M)
                  VariantID: 6d3b0821-1f48-4ca3-87fa-5d9ce2f9bb1e
                  Code: 1342M
                  Quantity: 7
                  UnitCost: 80405.87
                  UnitPrice: 500000
                  Price: 500000
                  TotalCost: 562841.09
                  TotalPrice: 3500000
              CountedInventory:
                - Variant: Denim Shirt (M)
                  VariantID: 6d3b0821-1f48-4ca3-87fa-5d9ce2f9bb1e
                  Code: 1342M
                  Counted: 5
                  Actual: -2
                  Difference: 7
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  adjustmentDeleted:
    post:
      tags:
        - Adjustment
      operationId: adjustmentDeleted
      summary: Adjustment Deleted
      description: This webhook is triggered when an adjustment is deleted.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique id of the Adjustment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin Outlet of the Adjustment
                Date:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Date of the Adjustment made
                Number:
                  type: string
                  minLength: 1
                  description: Number of the Adjustment
                PIC:
                  type: string
                  description: Person in charge of the adjustment
                Type:
                  type: string
                  minLength: 1
                  description: Type of the Adjustment
                State:
                  type: string
                  minLength: 1
                  description: Adjustment progress / state
                Note:
                  type: string
                  description: Note of the Adjustment
                AdjustedInventory:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - Variant
                      - VariantID
                      - Code
                      - Quantity
                      - UnitCost
                      - UnitPrice
                      - Price
                      - TotalCost
                      - TotalPrice
                    properties:
                      Variant:
                        type: string
                        minLength: 1
                        description: Name of the product variant adjusted
                      VariantID:
                        type: string
                        minLength: 1
                        description: Variant ID of the product variant adjusted
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant adjusted
                      Quantity:
                        type: number
                        description: Quantity of the product variant adjusted
                      UnitCost:
                        type: number
                        description: Unit buying cost of the product variant adjusted
                      UnitPrice:
                        type: number
                        description: Unit selling price of the product variant adjusted
                      Price:
                        type: number
                        description: Original Price of the product variant adjusted
                      TotalCost:
                        type: number
                        description: Total unit buying cost of the product variant adjusted
                      TotalPrice:
                        type: number
                        description: Total unit selling price of the product variant
                CountedInventory:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - Variant
                      - VariantID
                      - Code
                      - Counted
                      - Actual
                      - Difference
                    properties:
                      Variant:
                        type: string
                        minLength: 1
                        description: Name of the product variant adjusted
                      VariantID:
                        type: string
                        minLength: 1
                        description: Variant ID of the product variant adjusted
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant adjusted
                      Counted:
                        type: number
                        description: Total counted product of the adjustment
                      Actual:
                        type: number
                        description: Total actual stock product of the adjustment
                      Difference:
                        type: number
                        description: Difference between the counted and the actual product
              required:
                - ID
                - Outlet
                - Date
                - Number
                - Type
                - State
                - Note
                - AdjustedInventory
                - CountedInventory
            example:
              ID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Outlet: Outlet1
              Date: '2020-08-31T00:00:00'
              Number: 20.08.00014
              PIC: JANSEN
              Type: UpdateInventory
              State: InProgress
              Note: ''
              AdjustedInventory:
                - Variant: Denim Shirt (M)
                  VariantID: 6d3b0821-1f48-4ca3-87fa-5d9ce2f9bb1e
                  Code: 1342M
                  Quantity: 7
                  UnitCost: 80405.87
                  UnitPrice: 500000
                  Price: 500000
                  TotalCost: 562841.09
                  TotalPrice: 3500000
              CountedInventory:
                - Variant: Denim Shirt (M)
                  VariantID: 6d3b0821-1f48-4ca3-87fa-5d9ce2f9bb1e
                  Code: 1342M
                  Counted: 5
                  Actual: -2
                  Difference: 7
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  adjustmentUpdated:
    post:
      tags:
        - Adjustment
      operationId: adjustmentUpdated
      summary: Adjustment Updated
      description: This webhook is triggered when an adjustment is updated.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique id of the Adjustment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin Outlet of the Adjustment
                Date:
                  type: string
                  format: date-time
                  minLength: 1
                  description: Date of the Adjustment made
                Number:
                  type: string
                  minLength: 1
                  description: Number of the Adjustment
                PIC:
                  type: string
                  description: Person in charge of the adjustment
                Type:
                  type: string
                  minLength: 1
                  description: Type of the Adjustment
                State:
                  type: string
                  minLength: 1
                  description: Adjustment progress / state
                Note:
                  type: string
                  description: Note of the Adjustment
                AdjustedInventory:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - Variant
                      - VariantID
                      - Code
                      - Quantity
                      - UnitCost
                      - UnitPrice
                      - Price
                      - TotalCost
                      - TotalPrice
                    properties:
                      Variant:
                        type: string
                        minLength: 1
                        description: Name of the product variant adjusted
                      VariantID:
                        type: string
                        minLength: 1
                        description: Variant ID of the product variant adjusted
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant adjusted
                      Quantity:
                        type: number
                        description: Quantity of the product variant adjusted
                      UnitCost:
                        type: number
                        description: Unit buying cost of the product variant adjusted
                      UnitPrice:
                        type: number
                        description: Unit selling price of the product variant adjusted
                      Price:
                        type: number
                        description: Original Price of the product variant adjusted
                      TotalCost:
                        type: number
                        description: Total unit buying cost of the product variant adjusted
                      TotalPrice:
                        type: number
                        description: Total unit selling price of the product variant
                CountedInventory:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    required:
                      - Variant
                      - VariantID
                      - Code
                      - Counted
                      - Actual
                      - Difference
                    properties:
                      Variant:
                        type: string
                        minLength: 1
                        description: Name of the product variant adjusted
                      VariantID:
                        type: string
                        minLength: 1
                        description: Variant ID of the product variant adjusted
                      Code:
                        type: string
                        minLength: 1
                        description: Code of the product variant adjusted
                      Counted:
                        type: number
                        description: Total counted product of the adjustment
                      Actual:
                        type: number
                        description: Total actual stock product of the adjustment
                      Difference:
                        type: number
                        description: Difference between the counted and the actual product
              required:
                - ID
                - Outlet
                - Date
                - Number
                - Type
                - State
                - Note
                - AdjustedInventory
                - CountedInventory
            example:
              ID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Outlet: Outlet1
              Date: '2020-08-31T00:00:00'
              Number: 20.08.00014
              PIC: JANSEN
              Type: UpdateInventory
              State: InProgress
              Note: ''
              AdjustedInventory:
                - Variant: Denim Shirt (M)
                  VariantID: 6d3b0821-1f48-4ca3-87fa-5d9ce2f9bb1e
                  Code: 1342M
                  Quantity: 7
                  UnitCost: 80405.87
                  UnitPrice: 500000
                  Price: 500000
                  TotalCost: 562841.09
                  TotalPrice: 3500000
              CountedInventory:
                - Variant: Denim Shirt (M)
                  VariantID: 6d3b0821-1f48-4ca3-87fa-5d9ce2f9bb1e
                  Code: 1342M
                  Counted: 5
                  Actual: -2
                  Difference: 7
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  paymentCreated:
    post:
      tags:
        - Invoice Payment
      operationId: paymentCreated
      summary: Payment Created
      description: This webhook is triggered when a payment is created.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the payment
                InvoiceID:
                  type: string
                  minLength: 1
                  description: Unique invoice ID of the payment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the payment
                Number:
                  type: string
                  minLength: 1
                  description: Number of the transaction
                Amount:
                  type: number
                  description: Total amount of the payment
                Method:
                  type: string
                  minLength: 1
                  description: Type/method of the payment
                Date:
                  type: string
                  format: date
                  minLength: 1
                  description: Date of the payment made
                Created:
                  type: string
                  format: date
                  minLength: 1
                  description: Created date of the payment
                Creator:
                  type: string
                  minLength: 1
                  description: Name of person who created the payment
              required:
                - ID
                - InvoiceID
                - Outlet
                - Number
                - Amount
                - Method
                - Date
                - Created
                - Creator
            example:
              ID: 1c2a88a6-d99c-4915-91af-a36110c34c7a
              InvoiceID: 008cdf4c-f5c1-449c-94dd-c2f3741fb1ab
              Outlet: Outlet1
              Number: 2020.07.0001
              Amount: 100000
              Method: Cash
              Date: '2020-07-01'
              Created: '2020-07-31'
              Creator: Hendry
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  paymentDeleted:
    post:
      tags:
        - Invoice Payment
      operationId: paymentDeleted
      summary: Payment Deleted
      description: >-
        This webhook is triggered when a payment is removed from the Orders Menu
        (InvoiceInfo).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the payment
                InvoiceID:
                  type: string
                  minLength: 1
                  description: Unique invoice ID of the payment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the payment
                Number:
                  type: string
                  minLength: 1
                  description: Number of the transaction
                Amount:
                  type: number
                  description: Total amount of the payment
                Method:
                  type: string
                  minLength: 1
                  description: Type or method of the payment
                Date:
                  type: string
                  format: date
                  description: Date when the payment was made
                Created:
                  type: string
                  format: date-time
                  description: Creation timestamp of the payment
                Creator:
                  type: string
                  minLength: 1
                  description: Name of the person who created the payment
              required:
                - ID
                - InvoiceID
                - Outlet
                - Number
                - Amount
                - Method
                - Date
                - Created
                - Creator
            example:
              ID: 1c2a88a6-d99c-4915-91af-a36110c34c7a
              InvoiceID: 008cdf4c-f5c1-449c-94dd-c2f3741fb1ab
              Outlet: Outlet1
              Number: 2020.07.0001
              Amount: 100000
              Method: Cash
              Date: '2020-07-01'
              Created: '2020-07-31'
              Creator: Hendry
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  paymentUpdated:
    post:
      tags:
        - Invoice Payment
      operationId: paymentUpdated
      summary: Payment Updated
      description: >-
        This webhook is triggered when a payment transaction is updated in the
        Orders Menu.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the payment
                InvoiceID:
                  type: string
                  minLength: 1
                  description: Unique invoice ID of the payment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the payment
                Number:
                  type: string
                  minLength: 1
                  description: Number of the transaction
                Amount:
                  type: number
                  description: Total amount of the payment
                Method:
                  type: string
                  minLength: 1
                  description: Type or method of the payment
                Date:
                  type: string
                  format: date
                  description: Date when the payment was made
                Created:
                  type: string
                  format: date-time
                  description: Creation timestamp of the payment
                Creator:
                  type: string
                  minLength: 1
                  description: Name of the person who created the payment
              required:
                - ID
                - InvoiceID
                - Outlet
                - Number
                - Amount
                - Method
                - Date
                - Created
                - Creator
            examples:
              example-1:
                value:
                  ID: 1c2a88a6-d99c-4915-91af-a36110c34c7a
                  InvoiceID: 008cdf4c-f5c1-449c-94dd-c2f3741fb1ab
                  Outlet: Outlet1
                  Number: 2020.07.0001
                  Amount: 100000
                  Method: Cash
                  Date: '2020-07-01'
                  Created: '2020-07-31'
                  Creator: Hendry
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
  paymentWriteoff:
    post:
      tags:
        - Invoice Payment
      summary: Payment Write Off
      description: Triggered when a payment transaction is written off.
      operationId: writeOffPaymentTransaction
      x-tags:
        - Payment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the payment
                InvoiceID:
                  type: string
                  minLength: 1
                  description: Unique invoice ID of the payment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the payment
                Number:
                  type: string
                  minLength: 1
                  description: Number of the transaction
                Amount:
                  type: number
                  description: Total amount of the payment
                Method:
                  type: string
                  minLength: 1
                  description: Type/method of the payment
                Date:
                  type: string
                  minLength: 1
                  description: Date of the payment made
                Created:
                  type: string
                  minLength: 1
                  description: Created date of the payment
                Creator:
                  type: string
                  minLength: 1
                  description: Name of person who created the payment
              required:
                - ID
                - InvoiceID
                - Outlet
                - Number
                - Amount
                - Method
                - Date
                - Created
                - Creator
            example:
              ID: 1c2a88a6-d99c-4915-91af-a36110c34c7a
              InvoiceID: 008cdf4c-f5c1-449c-94dd-c2f3741fb1ab
              Outlet: Outlet1
              Number: 2020.07.0001
              Amount: 100000
              Method: Cash
              Date: '2020-07-01'
              Created: '2020-07-31'
              Creator: Hendry
      responses:
        '200':
          description: Successful processing of the write-off .
        '400':
          description: Bad request due to invalid input data.
  supplierBillPaymentCreated:
    post:
      tags:
        - Bill Payment
      summary: Supplier Bill Payment Created
      description: Triggered when a supplier bill payment is successfully completed.
      operationId: supplierBillPaymentCreated
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the payment
                BillID:
                  type: string
                  minLength: 1
                  description: Unique bill ID of the payment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the payment
                Number:
                  type: string
                  minLength: 1
                  description: Number of the transaction
                Amount:
                  type: number
                  description: Total amount of the payment
                Method:
                  type: string
                  minLength: 1
                  description: Type/method of the payment
                Date:
                  type: string
                  minLength: 1
                  description: Date of the payment made
                Created:
                  type: string
                  minLength: 1
                  description: Created date of the payment
                Creator:
                  type: string
                  minLength: 1
                  description: Name of the person who created the payment
              required:
                - ID
                - BillID
                - Outlet
                - Number
                - Amount
                - Method
                - Date
                - Created
                - Creator
            example:
              ID: f53187c8-1b8e-4075-a227-6867d09179cd
              BillID: 7aaf89d0-52be-448a-8f19-18ef163e21ff
              Outlet: Outlet1
              Number: 2-OT/21/08/0006
              Amount: 60000
              Method: Cash
              Date: '2021-08-20T00:00:00'
              Created: '2021-08-20T10:28:56.6691072'
              Creator: dealpos
      responses:
        '200':
          description: Successfully processed supplier bill payment creation .
        '400':
          description: Invalid input or data format.
  supplierBillPaymentDeleted:
    post:
      summary: Supplier Bill Payment Deleted
      description: Triggered when a supplier bill payment is successfully deleted.
      operationId: supplierBillPaymentDeleted
      tags:
        - Bill Payment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the payment
                BillID:
                  type: string
                  minLength: 1
                  description: Unique bill ID of the payment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the payment
                Number:
                  type: string
                  minLength: 1
                  description: Number of the transaction
                Amount:
                  type: number
                  description: Total amount of the payment
                Method:
                  type: string
                  minLength: 1
                  description: Type/method of the payment
                Date:
                  type: string
                  minLength: 1
                  description: Date of the payment made
                Created:
                  type: string
                  minLength: 1
                  description: Created date of the payment
                Creator:
                  type: string
                  minLength: 1
                  description: Name of the person who created the payment
              required:
                - ID
                - BillID
                - Outlet
                - Number
                - Amount
                - Method
                - Date
                - Created
                - Creator
            example:
              ID: f53187c8-1b8e-4075-a227-6867d09179cd
              BillID: 7aaf89d0-52be-448a-8f19-18ef163e21ff
              Outlet: Outlet1
              Number: 2-OT/21/08/0006
              Amount: 60000
              Method: Cash
              Date: '2021-08-20T00:00:00'
              Created: '2021-08-20T10:28:56.6691072'
              Creator: dealpos
      responses:
        '200':
          description: Successfully processed supplier bill payment deletion .
        '400':
          description: Invalid input or data format.
  supplierBillPaymentUpdated:
    post:
      summary: Supplier Bill Payment Updated
      description: Triggered when a supplier bill payment is successfully updated.
      operationId: supplierBillPaymentUpdated
      tags:
        - Bill Payment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the payment
                BillID:
                  type: string
                  minLength: 1
                  description: Unique bill ID of the payment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the payment
                Number:
                  type: string
                  minLength: 1
                  description: Number of the transaction
                Amount:
                  type: number
                  description: Total amount of the payment
                Method:
                  type: string
                  minLength: 1
                  description: Type/method of the payment
                Date:
                  type: string
                  minLength: 1
                  description: Date of the payment made
                Created:
                  type: string
                  minLength: 1
                  description: Created date of the payment
                Creator:
                  type: string
                  minLength: 1
                  description: Name of the person who created the payment
              required:
                - ID
                - BillID
                - Outlet
                - Number
                - Amount
                - Method
                - Date
                - Created
                - Creator
            example:
              ID: f53187c8-1b8e-4075-a227-6867d09179cd
              BillID: 7aaf89d0-52be-448a-8f19-18ef163e21ff
              Outlet: Outlet1
              Number: 2-OT/21/08/0006
              Amount: 60000
              Method: Cash
              Date: '2021-08-20T00:00:00'
              Created: '2021-08-20T10:28:56.6691072'
              Creator: dealpos
      responses:
        '200':
          description: Successfully processed supplier bill payment update .
        '400':
          description: Invalid input or data format.
  supplierBillPaymentWriteOff:
    post:
      summary: Supplier Bill Payment Write Off
      description: Triggered when a supplier bill payment is successfully Write Off.
      operationId: supplierBillPaymentwriteOff
      tags:
        - Bill Payment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the payment
                BillID:
                  type: string
                  minLength: 1
                  description: Unique bill ID of the payment
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet of the payment
                Number:
                  type: string
                  minLength: 1
                  description: Number of the transaction
                Amount:
                  type: number
                  description: Total amount of the payment
                Method:
                  type: string
                  minLength: 1
                  description: Type/method of the payment
                Date:
                  type: string
                  minLength: 1
                  description: Date of the payment made
                Created:
                  type: string
                  minLength: 1
                  description: Created date of the payment
                Creator:
                  type: string
                  minLength: 1
                  description: Name of the person who created the payment
              required:
                - ID
                - BillID
                - Outlet
                - Number
                - Amount
                - Method
                - Date
                - Created
                - Creator
            example:
              ID: f53187c8-1b8e-4075-a227-6867d09179cd
              BillID: 7aaf89d0-52be-448a-8f19-18ef163e21ff
              Outlet: Outlet1
              Number: 2-OT/21/08/0006
              Amount: 60000
              Method: Cash
              Date: '2021-08-20T00:00:00'
              Created: '2021-08-20T10:28:56.6691072'
              Creator: dealpos
      responses:
        '200':
          description: Successfully processed supplier bill payment Write Off .
        '400':
          description: Invalid input or data format.
  shiftClosed:
    post:
      summary: Cashier Shift Closed
      description: This webhook is triggered when a cashier closes the shift.
      operationId: closeShift
      tags:
        - Shift
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  minLength: 1
                  description: Unique ID of the shift closure .
                Outlet:
                  type: string
                  minLength: 1
                  description: Origin outlet where the shift was closed.
                Register:
                  type: string
                  minLength: 1
                  description: Register associated with the shift.
                Number:
                  type: string
                  minLength: 1
                  description: Number of the transaction or shift record.
                Open:
                  type: string
                  minLength: 1
                  description: Timestamp when the shift was opened.
                Close:
                  type: string
                  minLength: 1
                  description: Timestamp when the shift was closed.
                Cashier:
                  type: string
                  minLength: 1
                  description: Name of the cashier who closed the shift.
                SalesNTax:
                  type: number
                  description: Total sales excluding tax during the shift.
                TotalInvoice:
                  type: number
                  description: Total number of invoices generated in the shift.
                Visitor:
                  type: number
                  description: Total number of visitors during the shift.
              required:
                - ID
                - Outlet
                - Register
                - Number
                - Open
                - Close
                - Cashier
                - SalesNTax
                - TotalInvoice
                - Visitor
              example:
                example-1:
                  ID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
                  Outlet: Outlet1
                  Register: Outlet1
                  Number: 20.05.00001
                  Open: '2020-05-15T15:11:52.327'
                  Close: '2020-05-15T15:49:27.563'
                  Cashier: Jane
                  SalesNTax: 500000
                  TotalInvoice: 3
                  Visitor: 2
      responses:
        '200':
          description: Webhook processed successfully.
        '400':
          description: Invalid payload.
  loyaltyPointFetch:
    post:
      summary: Fetch Loyalty Points
      description: >-
        This webhook is triggered when a customer's loyalty points need to be
        shown in POS. A synchronous response needs to be provided.
      operationId: fetchLoyaltyPoint
      tags:
        - Loyalty Point
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Outlet:
                  type: string
                  description: Outlet name.
                Phone:
                  type: string
                  description: Customer's mobile phone number.
                Email:
                  type: string
                  description: Customer's email address.
                Code:
                  type: string
                  description: Customer code.
              required:
                - Outlet
                - Phone
                - Email
                - Code
              example:
                example:
                  Outlet: Outlet1
                  Phone: '+628159137777'
                  Email: john.doe@gmail.com
                  Code: '4650865270308696'
      responses:
        '200':
          description: Successful response with loyalty point data.
          content:
            application/json:
              example:
                Point: 1208
        '400':
          description: Invalid payload.
  loyaltyPointOrderComplete:
    post:
      summary: Loyalty Point On Order Complete
      description: >-
        This webhook is triggered when a sales transaction is completed,
        updating the customer's loyalty points. A synchronous response is
        required.
      operationId: orderComplete
      tags:
        - Loyalty Point
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: Invoice ID
                Outlet:
                  type: string
                  description: Outlet Name
                Number:
                  type: string
                  description: Invoice Number
                Date:
                  type: string
                  description: Invoice Date
                Payment:
                  type: string
                  description: Payment status
                DueDate:
                  type: string
                  description: Invoice Due Date
                Tag:
                  type: string
                  description: Channel Tagging System
                SalesType:
                  type: string
                  description: Sales channel type
                Customer:
                  type: object
                  properties:
                    Name:
                      type: string
                      description: Customer Name
                    Email:
                      type: string
                      description: Customer email
                    Phone:
                      type: string
                      description: Customer phone number
                    Mobile:
                      type: string
                      description: Customer mobile number
                    Code:
                      type: string
                      description: Customer code
                    ID:
                      type: string
                      description: Customer ID
                CreatorID:
                  type: string
                  description: Unique ID of the creator
                Created:
                  type: string
                  description: Transaction creation date
                Discount1:
                  type: integer
                  description: First discount percentage
                Discount2:
                  type: integer
                  description: Second discount percentage
                DiscountAmount:
                  type: integer
                  description: Total discount amount
                Gross:
                  type: integer
                  description: Total amount before discount
                TaxCalculation:
                  type: string
                  description: Tax calculation type (Add / Include)
                DiscountTotal:
                  type: integer
                  description: Total accumulated discounts
                TaxType:
                  type: string
                  description: Tax type
                Tax:
                  type: integer
                  description: Total tax amount
                Sales:
                  type: integer
                  description: Total sales amount
                Surcharge:
                  type: integer
                  description: Additional expenses (e.g., credit card fees)
                SalesNTax:
                  type: integer
                  description: Sales amount excluding tax
                Coupon:
                  type: string
                  description: Promotion coupon code
                Note:
                  type: string
                  description: Invoice note
                InvoiceID:
                  type: string
                  description: Unique invoice ID
                PointUsed:
                  type: integer
                  description: Loyalty points used
                PointsEarned:
                  type: integer
                  description: Loyalty points earned
                Delivery:
                  type: string
                  description: Delivery status
                Void:
                  type: string
                  description: Invoice void status
                Bin:
                  type: boolean
                  description: Recycle bin status
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: Product variant ID
                      Name:
                        type: string
                        description: Product variant name
                      Code:
                        type: string
                        description: Product variant code
                      Quantity:
                        type: integer
                        description: Quantity of product variant
                      UnitQuantity:
                        type: integer
                        description: Unit quantity measurement
                      Cost:
                        type: integer
                        description: Cost per unit
                      Price:
                        type: integer
                        description: Selling price
                      Discount:
                        type: integer
                        description: Discount percentage
                      DiscountAmount:
                        type: integer
                        description: Discount amount
                      Taxable:
                        type: boolean
                        description: Indicates if taxable
                      LoyaltyPoint:
                        type: boolean
                        description: Loyalty point applicability
                      Expense:
                        type: integer
                        description: Additional expenses
                      NettPrice:
                        type: integer
                        description: Net price after discounts
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        description: Payment date
                      Amount:
                        type: integer
                        description: Payment amount
                      Method:
                        type: string
                        description: Payment method
                      Note:
                        type: string
                        description: Payment notes
            example:
              ID: 4bd2e7fc-d6c8-4966-a111-4c1db26d3606
              Outlet: Outlet1
              Number: B1.23.02.00004
              Date: '2023-02-17T00:00:00'
              Payment: Paid
              DueDate: '0001-01-01T00:00:00'
              Tag: Normal
              SalesType: Normal
              Customer:
                Name: ari2
                Mobile: '081916296998'
                ID: 1b90d0ed-84ff-4e30-bded-13414ea3ea77
              Gross: 90000
              Sales: 90000
              Payments:
                - Date: '2023-02-17T00:00:00'
                  Amount: 90000
                  Method: Cash
      responses:
        '200':
          description: Successful response with loyalty points reward.
          content:
            application/json:
              example:
                reward: 9000
        '400':
          description: Invalid payload.
  loyaltyPointValidateCoupon:
    post:
      summary: Loyalty Point Validate Coupon
      description: >
        This webhook is triggered when the user inputs a promotional coupon from
        the SELL page.

        This is a synchronous API that requires a response.


        | **Property** | **Type** |
        **Description**                               |

        |--------------|----------|-----------------------------------------------|

        | Type         | String   | Promotion Coupon
        Type                         |

        | Amount       | Number   | Total discount percentage or amount
        given     |

        | status       | String   | Status of promotion
        coupon                    |

        | expiredAt    | DateTime | Expiry date of promotion
        coupon               |


        **Example Responses:**


        | **Response-1
        (Percentage)**                                                                                                        
        |

        |-------------------------------------------------------------------------------------------------------------------------------------|

        | {<br>  "Type": "percentageDiscount",<br>  "Amount": 50,<br>  "status":
        "activated",<br>  "expiredAt": "2023-03-19T16:59:59.999Z"<br>} |


        | **Response-2
        (Value)**                                                                                                             
        |

        |-------------------------------------------------------------------------------------------------------------------------------------|

        | {<br>  "Type": "value",<br>  "Amount": 100000,<br>  "status":
        "activated",<br>  "expiredAt": "2023-03-19T16:59:59.999Z"<br>}        |


        | **Response-3 (400 Bad
        Request)**                                                                                                   
        |

        |-------------------------------------------------------------------------------------------------------------------------------------|

        | {<br> "status": "used", <br> "expiredAt": "2023-03-19T16:59:59.999Z",
        <br> "Message": "Coupon 29466091 has been used" <br>}         |
      operationId: validateCoupon
      tags:
        - Loyalty Point
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Key:
                  type: string
                  description: Promotion Coupon Code
                Outlet:
                  type: string
                  description: Outlet Name
                Customer:
                  type: object
                  properties:
                    Email:
                      type: string
                      description: Customer's Email
                    Phone:
                      type: string
                      description: Customer's Mobile Phone Number
            example:
              Key: '1234'
              Outlet: Outlet1
              Customer:
                Email: hendry@dealpos.com
                Phone: '81234567844'
      responses:
        '200':
          description: Successful validation response with discount details.
          content:
            application/json:
              examples:
                Response-1 (Percentage):
                  value:
                    Type: percentageDiscount
                    Amount: 50
                    status: activated
                    expiredAt: '2023-03-19T16:59:59.999Z'
                Response-2 (Value):
                  value:
                    Type: value
                    Amount: 100000
                    status: activated
                    expiredAt: '2023-03-19T16:59:59.999Z'
        '400':
          description: Invalid or expired coupon response.
          content:
            application/json:
              example:
                status: used
                expiredAt: '2023-03-19T16:59:59.999Z'
                Message: Coupon 29466091 has been used
  outletCreated:
    post:
      summary: Outlet Created
      description: >
        This webhook is triggered when a new outlet is created in the Outlets
        menu.
      operationId: outletCreatedEvent
      tags:
        - Outlet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Name:
                  type: string
                  minLength: 1
                  description: Outlet name created
                Code:
                  type: string
                  minLength: 1
                  description: Outlet code
                Suspended:
                  type: boolean
                  description: Suspend state/status of the outlet
              required:
                - Name
                - Code
                - Suspended
            examples:
              example-1:
                summary: Example of a new outlet creation
                value:
                  Name: Outlet5
                  Code: OTL5
                  Suspended: false
      responses:
        '200':
          description: Outlet creation acknowledged successfully.
          content:
            application/json:
              example:
                message: Outlet created successfully
  salesOrderCreated:
    post:
      tags:
        - Sales Order
      operationId: salesOrderCreated
      summary: Sales Order Created
      description: Sends data when a sales order is converted to an invoice.
      requestBody:
        required: true
        content:
          application/json:
            example:
              ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
              Outlet: Outlet1
              Number: 20.09.00020
              Date: '2020-09-02T00:00:00'
              DueDate: '2020-09-10T00:00:00'
              Tag: Take Away
              Customer:
                Name: Hendry
                Email: henz2194w@gmail.com
                Phone: '0215851412'
                Mobile: '0815161688'
                Code: HW0001
              CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
              Created: '2020-09-02T13:52:18.33'
              Discount1: 0
              Discount2: 0
              DiscountAmount: 0
              Gross: 100000
              DiscountTotal: 0
              TaxType: No Tax
              TaxCalculation: Add
              Tax: 0
              TaxRate: 0
              Sales: 100000
              Surcharge: 0
              SalesNTax: 100000
              Coupon: KUPON123
              Note: CONTOH NOTE
              PointUsed: 0
              PointsEarned: 0
              Delivery: Sent
              Void: 'No'
              Variants:
                - VariantID: cdc45c7e-4990-40c3-a41e-3ee5fb1ec200
                  Name: Muffin (Medium)
                  Code: MM3002
                  Quantity: 1
                  UnitQuantity: 1
                  Cost: 213213
                  Price: 100000
                  PriceOriginal: 17389.03
                  Discount: 0
                  DiscountAmount: 0
                  Taxable: true
                  LoyaltyPoint: true
                  Expense: 10000
                  NettPrice: 100000
                  Commission: 0
                  SalesName: FERDI
                  PriceTypeID: 1
                  Note: Combo 1
              OutboundLogistics:
                - Outlet: Outlet2
                  Number: 20.09.00020
                  Date: '2020-09-02T00:00:00'
              Payments:
                - Date: '2020-09-02T00:00:00'
                  Amount: 100000
                  Method: Debit Card
                  Code: 1234-1546-1546
                  Note: Pay with BCA card
            schema:
              type: object
              properties:
                ID:
                  type: string
                  description: Unique ID of the invoice
                Outlet:
                  type: string
                  description: Name of the outlet
                Number:
                  type: string
                  description: Number of the invoice transaction
                Date:
                  type: string
                  description: Sell date of the invoice transaction
                DueDate:
                  type: string
                  description: Due date of the invoice transaction
                Tag:
                  type: string
                  description: >-
                    Channel Tagging system. (ex:Offline / Whatsapp / Shopee /
                    Tokopedia) used in marketplace.dealpos.app. Backwards
                    Compatibility with property request "SalesType"
                Customer:
                  type: object
                  properties:
                    Name:
                      type: string
                      description: Name of the customer
                    Email:
                      type: string
                      description: E-mail of the customer
                    Phone:
                      type: string
                      description: Phone number of the customer
                    Mobile:
                      type: string
                      description: Mobile Phone Number of the customer
                    Code:
                      type: string
                      description: Unique Code of the customer
                  required:
                    - Name
                    - Email
                    - Phone
                    - Mobile
                    - Code
                CreatorID:
                  type: string
                  description: Unique ID of the creator
                Created:
                  type: string
                  description: Invoice created Transaction Date by system
                Discount1:
                  type: integer
                  description: Percentage of discount 1
                Discount2:
                  type: integer
                  description: Percentage of discount 2
                DiscountAmount:
                  type: integer
                  description: Discount Amount per-invoice
                Gross:
                  type: integer
                  description: Total amount of the transaction before discounted
                DiscountTotal:
                  type: integer
                  description: Total accumulation of whole discounts
                TaxType:
                  type: string
                  description: Type name of the tax
                TaxCalculation:
                  type: string
                  description: Calculation tax type (Add or Include)
                Tax:
                  type: integer
                  description: Total amount of the taxes
                TaxRate:
                  type: integer
                  description: Rate of Tax in percentage
                Sales:
                  type: integer
                  description: Total amount of the sales after subtraction
                Surcharge:
                  type: integer
                  description: 'Additional expense (ex: from credit card)'
                SalesNTax:
                  type: integer
                  description: Total amount of sales after taxes
                Coupon:
                  type: string
                  description: Registered Coupon Name/Code
                Note:
                  type: string
                  description: Note of the invoice transaction
                PointUsed:
                  type: integer
                  description: Total point used in the transaction
                PointsEarned:
                  type: integer
                  description: Total point earned from the transaction
                Delivery:
                  type: string
                  description: >-
                    Delivery status / progress of the invoice (Value: Sent /
                    Unsent / Partial)
                Void:
                  type: string
                  description: Void state / status of the invoice (Yes / No)
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: Variant ID
                      Name:
                        type: string
                        description: Variant's Name
                      Code:
                        type: string
                        description: Variant's Code
                      Quantity:
                        type: integer
                        description: Quantity of the variant
                      UnitQuantity:
                        type: integer
                        description: Unit Quantity Measurement of the variant
                      Cost:
                        type: integer
                        description: Unit Cost of variant
                      Price:
                        type: integer
                        description: Selling Price of the variant
                      PriceOriginal:
                        type: number
                        description: Original Price (before discounted) of the variant
                      Discount:
                        type: integer
                        description: Discount Percentage (%) of the variant
                      DiscountAmount:
                        type: integer
                        description: Total discount amount per-after multiply by the qty
                      Taxable:
                        type: boolean
                        description: Taxable state/status of the invoice transaction
                      LoyaltyPoint:
                        type: boolean
                        description: Loyalty state/status of the invoice transaction
                      Expense:
                        type: integer
                        description: Additional Expense of the variant
                      NettPrice:
                        type: integer
                        description: Total amount of the variant after subscration
                      Commission:
                        type: integer
                        description: Sales commision of the invoice transaction
                      SalesName:
                        type: string
                        description: Sales Person Name of the transaction
                      PriceTypeID:
                        type: integer
                        description: Sales price type of the transaction
                      Note:
                        type: string
                        description: Product Variant Note of the invoice transaction
                    required:
                      - VariantID
                      - Name
                      - Code
                      - Quantity
                      - UnitQuantity
                      - Cost
                      - Price
                      - PriceOriginal
                      - Discount
                      - DiscountAmount
                      - Taxable
                      - LoyaltyPoint
                      - Expense
                      - NettPrice
                      - Commission
                      - SalesName
                      - PriceTypeID
                      - Note
                OutboundLogistics:
                  type: array
                  items:
                    type: object
                    properties:
                      Outlet:
                        type: string
                        description: Outlet Name Of Outbound Logistic
                      Number:
                        type: string
                        description: Outbound Logistic Number
                      Date:
                        type: string
                        description: Date of OutboundLogistic
                    required:
                      - Outlet
                      - Number
                      - Date
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                        description: Date of the payment
                      Amount:
                        type: integer
                        description: Total amount of the payment
                      Method:
                        type: string
                        description: Payment method of the invoice transaction
                      Code:
                        type: string
                        description: Code of the payment method
                      Note:
                        type: string
                        description: Note of the payment method
                    required:
                      - Date
                      - Amount
                      - Method
                      - Code
                      - Note
              required:
                - ID
                - Outlet
                - Number
                - Date
                - DueDate
                - Tag
                - Customer
                - CreatorID
                - Created
                - Discount1
                - Discount2
                - DiscountAmount
                - Gross
                - DiscountTotal
                - TaxType
                - TaxCalculation
                - Tax
                - TaxRate
                - Sales
                - Surcharge
                - SalesNTax
                - Coupon
                - Note
                - PointUsed
                - PointsEarned
                - Delivery
                - Void
                - Variants
                - OutboundLogistics
                - Payments
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  salesOrderDeleted:
    post:
      tags:
        - Sales Order
      operationId: salesOrderDeleted
      summary: Sales Order Deleted
      description: Webhook triggered upon sales order deletion.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Outlet:
                  type: string
                  description: Name of the outlet.
                Number:
                  type: string
                  description: Sales order number.
                Date:
                  type: string
                  format: date-time
                  description: Deletion date of the sales order.
                Customer:
                  type: object
                  description: Customer details.
                  properties: {}
                CreatorID:
                  type: string
                  description: ID of the creator.
                Created:
                  type: string
                  format: date-time
                  description: Creation date of the sales order.
                Discount1:
                  type: integer
                  description: Discount percentage (type 1).
                Discount2:
                  type: integer
                  description: Discount percentage (type 2).
                DiscountAmount:
                  type: integer
                  description: Total discount amount.
                Gross:
                  type: integer
                  description: Total gross amount.
                Coupon:
                  type: string
                  description: Coupon used in the transaction.
                Note:
                  type: string
                  description: Additional notes for the sales order.
                PointUsed:
                  type: integer
                  description: Points used in the transaction.
                Delivery:
                  type: string
                  description: Delivery status (e.g., Sent, Partial, Unsent).
                Void:
                  type: string
                  description: Void status (Yes or No).
                Variants:
                  type: array
                  description: Product variants in the sales order.
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                        description: ID of the product variant.
                      Quantity:
                        type: integer
                        description: Quantity of the product.
                      UnitQuantity:
                        type: integer
                        description: Unit measurement for the quantity.
                      Cost:
                        type: integer
                        description: Cost of the product.
                      Price:
                        type: integer
                        description: Selling price of the product.
                      PriceOriginal:
                        type: integer
                        description: Original price of the product.
                      Discount:
                        type: integer
                        description: Discount percentage applied to the product.
                      DiscountAmount:
                        type: integer
                        description: Discount amount for the product.
                      Taxable:
                        type: boolean
                        description: Indicates if the product is taxable.
                      LoyaltyPoint:
                        type: boolean
                        description: >-
                          Indicates if the product contributes to loyalty
                          points.
                      Expense:
                        type: integer
                        description: Additional expenses related to the product.
                      NettPrice:
                        type: integer
                        description: Net price after all deductions.
                      PriceTypeID:
                        type: integer
                        description: Price type identifier.
                      Note:
                        type: string
                        description: Additional notes for the product.
            examples:
              example-1:
                value:
                  Outlet: Offline
                  Number: B1.22.07.00025
                  Date: '2022-07-25T00:00:00'
                  Customer: {}
                  CreatorID: 71e6e3df-257e-4a56-90ad-f6214b267aee
                  Created: '2022-07-25T16:14:03.9'
                  Discount1: 0
                  Discount2: 0
                  DiscountAmount: 0
                  Gross: 7800000
                  Coupon: KUPON123
                  Note: CONTOH NOTE
                  PointUsed: 0
                  Delivery: Sent
                  Void: 'No'
                  Variants:
                    - VariantID: ba629d54-c57c-47ec-a054-86f28eb8a1e8
                      Quantity: 6
                      UnitQuantity: 1
                      Cost: 0
                      Price: 1300000
                      PriceOriginal: 1500000
                      Discount: 0
                      DiscountAmount: 0
                      Taxable: true
                      LoyaltyPoint: true
                      Expense: 0
                      NettPrice: 7800000
                      PriceTypeID: 0
                      Note: CONTOH NOTE
      responses:
        '200':
          description: Successfully received the webhook.
        '400':
          description: Invalid request.
        '500':
          description: Internal server error.
  salesOrderConverted:
    post:
      tags:
        - Sales Order
      operationId: convertSalesOrder
      summary: Sales Order Converted
      description: >-
        This endpoint receives the data when a sales order is converted into an
        invoice.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - ID
                - Outlet
                - Number
                - Date
                - DueDate
                - Tag
                - Customer
                - CreatorID
                - Created
                - Discount1
                - Discount2
                - DiscountAmount
                - Gross
                - DiscountTotal
                - TaxType
                - TaxCalculation
                - Tax
                - TaxRate
                - Sales
                - Surcharge
                - SalesNTax
                - Coupon
                - Note
                - PointUsed
                - PointsEarned
                - Delivery
                - Void
                - Variants
                - OutboundLogistics
                - Payments
              properties:
                ID:
                  type: string
                Outlet:
                  type: string
                Number:
                  type: string
                Date:
                  type: string
                DueDate:
                  type: string
                Tag:
                  type: string
                Customer:
                  type: object
                  required:
                    - Name
                    - Email
                    - Phone
                    - Mobile
                    - Code
                  properties:
                    Name:
                      type: string
                    Email:
                      type: string
                    Phone:
                      type: string
                    Mobile:
                      type: string
                    Code:
                      type: string
                CreatorID:
                  type: string
                Created:
                  type: string
                Discount1:
                  type: integer
                Discount2:
                  type: integer
                DiscountAmount:
                  type: integer
                Gross:
                  type: integer
                DiscountTotal:
                  type: integer
                TaxType:
                  type: string
                TaxCalculation:
                  type: string
                Tax:
                  type: integer
                TaxRate:
                  type: integer
                Sales:
                  type: integer
                Surcharge:
                  type: integer
                SalesNTax:
                  type: integer
                Coupon:
                  type: 'null'
                Note:
                  type: 'null'
                PointUsed:
                  type: integer
                PointsEarned:
                  type: integer
                Delivery:
                  type: string
                Void:
                  type: string
                Variants:
                  type: array
                  items:
                    type: object
                    properties:
                      VariantID:
                        type: string
                      Name:
                        type: string
                      Code:
                        type: string
                      Quantity:
                        type: integer
                      UnitQuantity:
                        type: integer
                      Cost:
                        type: integer
                      Price:
                        type: integer
                      PriceOriginal:
                        type: number
                      Discount:
                        type: integer
                      DiscountAmount:
                        type: integer
                      Taxable:
                        type: boolean
                      LoyaltyPoint:
                        type: boolean
                      Expense:
                        type: integer
                      NettPrice:
                        type: integer
                      Commission:
                        type: integer
                      SalesName:
                        type: 'null'
                      PriceTypeID:
                        type: integer
                      Note:
                        type: string
                OutboundLogistics:
                  type: array
                  items:
                    type: object
                    properties:
                      Outlet:
                        type: string
                      Number:
                        type: string
                      Date:
                        type: string
                Payments:
                  type: array
                  items:
                    type: object
                    properties:
                      Date:
                        type: string
                      Amount:
                        type: integer
                      Method:
                        type: string
                      Code:
                        type: string
                      Note:
                        type: string
      responses:
        '200':
          description: Successfully received the webhook data
        '400':
          description: Invalid data received
      x-examples:
        Example1:
          value:
            ID: e0211b45-358e-4d5c-bf5b-8a31404b125e
            Outlet: Outlet1
            Number: 20.09.00020
            Date: '2020-09-02T00:00:00'
            DueDate: '0001-01-01T00:00:00'
            Tag: Take Away
            Customer:
              Name: hendry
              Email: henz2194w@gmail.com
              Phone: '0215851412'
              Mobile: '0815161688'
              Code: HW0001
            CreatorID: ff7848c9-21f1-4c05-ac9e-1e71d829cc9c
            Created: '2020-09-02T13:52:18.33'
            Discount1: 0
            Discount2: 0
            DiscountAmount: 0
            Gross: 100000
            DiscountTotal: 0
            TaxType: No Tax
            TaxCalculation: Add
            Tax: 0
            TaxRate: 0
            Sales: 100000
            Surcharge: 0
            SalesNTax: 100000
            Coupon: null
            Note: null
            PointUsed: 0
            PointsEarned: 0
            Delivery: Sent
            Void: 'No'
            Variants:
              - VariantID: cdc45c7e-4990-40c3-a41e-3ee5fb1ec200
                Name: Muffin (Medium)
                Code: MM3002
                Quantity: 1
                UnitQuantity: 1
                Cost: 213213
                Price: 100000
                PriceOriginal: 17389.03
                Discount: 0
                DiscountAmount: 0
                Taxable: true
                LoyaltyPoint: true
                Expense: 10000
                NettPrice: 100000
                Commission: 0
                SalesName: null
                PriceTypeID: 1
                Note: Combo 1
            OutboundLogistics:
              - Outlet: Outlet2
                Number: 20.09.00020
                Date: '2020-09-02T00:00:00'
            Payments:
              - Date: '2020-09-02T00:00:00'
                Amount: 100000
                Method: Debit Card
                Code: 1234-1546-1546
                Note: Pay With BCA Card
