> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joinluminous.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Partially update purgatory settings

> **Partial update** — only fields present in the body are written. Omitted
fields keep their stored values. Unknown field names are rejected with a
pointer to `GET /purgatory/settings/schema`.

Settings changes apply to **new** orders by default. Call
`POST /purgatory/jobs/reprocess` afterwards to apply the new rules to
existing non-posted orders.




## OpenAPI

````yaml /api-reference/build.yaml put /purgatory/settings
openapi: 3.0.0
info:
  title: Luminous API
  version: 1.0.0
  description: API documentation for Luminous
servers:
  - url: https://{companyName}.api.joinluminous.com/external/api/v1
    variables:
      companyName:
        default: companyName
        description: Your company-specific subdomain
security: []
tags:
  - name: Products
    description: Get and manage products
  - name: Pricing
    description: Manage price schedules, levels, and customizations
  - name: BOMs
    description: Manage Bills of Materials (BOMs)
  - name: Labels
    description: Label rendering via Labelary ZPL service
  - name: Companies
    description: Manage business accounts and their associated data
  - name: Contacts
    description: Manage contact information for individuals
  - name: Suppliers
    description: Manage suppliers (factories) — vendors used on purchase orders
  - name: Supplier SKUs
    description: Manage per-supplier SKU and unit-cost overrides for products
  - name: Locations
    description: Manage warehouses and locations
  - name: Inventory
    description: Get and adjust product stock levels
  - name: Lots
    description: Create, update, and delete product lots (batches)
  - name: Transfer Orders
    description: Manage transfer orders
  - name: Fulfillment Orders
    description: Manage fulfillment orders and picklists
  - name: Purchase Orders
    description: Get and modify purchase orders
  - name: Receiving Reports
    description: Manage receiving reports
  - name: Payment Obligations
    description: Manage payment obligations for purchase orders
  - name: Sales Orders
    description: Manage sales orders and sales order shipments
  - name: Purgatory
    description: >-
      Inspect and resolve non-posted sales orders in the purgatory staging
      workflow
  - name: PickFlow Shipping
    description: >-
      Provider-agnostic shipping rates, services, packages, and label purchase
      for PickFlow
  - name: Cycle Counts
    description: >-
      Create, drive, and post PickFlow cycle counts — batches, per-warehouse
      sessions, and CSV import/export
  - name: Print Stations
    description: List paired print stations and enqueue print jobs to them
  - name: Invoices
    description: Get and manage invoices
  - name: Work Orders
    description: >-
      Manage work orders — production lifecycle, steps, materials, links,
      shipments, and comments
  - name: Production Batches
    description: Group and manage work orders as production batches
  - name: Bills
    description: >-
      Accounts payable bill management, payments, attachments, allocations, and
      variance
  - name: Prepayments
    description: Manage vendor prepayments and applications
  - name: Vendor Credits
    description: Manage vendor credits and applications
  - name: Vendor Returns
    description: Manage vendor returns and credit generation
  - name: Customer Returns
    description: Manage customer returns (sales returns), receiving, and restock behavior
  - name: Stock Snapshot
    description: Point-in-time stock snapshots with export support
  - name: Consumption
    description: Consumption reports and exports
  - name: Inventory Aging
    description: Cost-layer-based inventory aging reports
  - name: Bills Reports
    description: Accounts payable bills aging reports
  - name: Forecast
    description: Materialized forecast data
  - name: Reports
    description: Close the books, inventory discrepancy, transaction COGS, and EDI reports
  - name: Tags
    description: Add/remove tags across various resources
  - name: Custom Fields
    description: Get and set custom fields across various resources
  - name: Currency
    description: Currency configuration, exchange rates, and conversion
  - name: Integration Mappings
    description: Manage integration mappings for external systems
  - name: Integration Field Mappings
    description: Manage field-level mappings between Luminous and external systems
paths:
  /purgatory/settings:
    put:
      tags:
        - Purgatory
      summary: Partially update purgatory settings
      description: >
        **Partial update** — only fields present in the body are written.
        Omitted

        fields keep their stored values. Unknown field names are rejected with a

        pointer to `GET /purgatory/settings/schema`.


        Settings changes apply to **new** orders by default. Call

        `POST /purgatory/jobs/reprocess` afterwards to apply the new rules to

        existing non-posted orders.
      operationId: updatePurgatorySettings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >
                Purgatory automation settings. All fields are optional in write
                payloads —

                only keys present in the body are updated. See `GET
                /purgatory/settings/schema`

                for field-level types, defaults, and descriptions.
              properties:
                post_empty_orders:
                  type: boolean
                  description: Auto-post sales orders that have no line items.
                post_orders_ignored_all_items:
                  type: boolean
                  description: Auto-post orders whose every line item is ignored.
                post_clean_orders:
                  type: boolean
                  description: >
                    Auto-post orders whose remaining non-ignored lines are all
                    mapped to a

                    product. **Affects inventory** — orders posted this way
                    decrement stock.
                ignore_empty_sku:
                  type: boolean
                  description: Treat line items with an empty SKU as ignored.
                ignore_adjustment_line_item:
                  type: boolean
                  description: >-
                    Treat adjustment lines (coupons, negative qty, etc.) as
                    ignored.
                skip_inventory_for_old_shipments:
                  type: boolean
                  description: >-
                    Do not deduct inventory for shipments older than the
                    threshold.
                skip_inventory_for_old_shipments_days:
                  type: integer
                  minimum: 0
                  description: >-
                    Age in days at which a shipment is considered "old" for the
                    skip rule.
                skip_inventory_for_similar_orders:
                  type: boolean
                  description: >-
                    Skip inventory for shipments that look like duplicates of
                    recently-posted orders.
                similarity_threshold:
                  type: number
                  format: float
                  minimum: 0
                  maximum: 1
                  nullable: true
                  description: >
                    Score (0–1) above which two orders are considered
                    duplicates.

                    Required when `skip_inventory_for_similar_orders` is `true`.
                skip_orders_older_than_date_cutoff:
                  type: string
                  format: date-time
                  nullable: true
                  description: >
                    Orders with `order_date` before this ISO 8601 datetime are
                    skipped by

                    purgatory automation. `null` disables the cutoff.
                skip_orders_older_than_date_cutoff_by_account:
                  type: array
                  description: >
                    Per-app-integration-account `order_date` cutoffs. A matching
                    account row

                    overrides the global `skip_orders_older_than_date_cutoff`
                    for that account;

                    accounts without a row fall back to the global cutoff.
                  items:
                    type: object
                    required:
                      - app_integration_account_id
                      - cutoff
                    properties:
                      app_integration_account_id:
                        type: integer
                        minimum: 1
                        description: >-
                          ID of the app integration account this cutoff applies
                          to.
                      cutoff:
                        type: string
                        format: date-time
                        description: >-
                          ISO 8601 datetime; orders with `order_date` strictly
                          before this are dropped for this account.
                ignored_skus:
                  type: array
                  items:
                    type: string
                  description: >-
                    SKUs to always treat as ignored (exact match,
                    case-insensitive).
                ignored_product_names:
                  type: array
                  items:
                    type: string
                  description: >-
                    Product names to always treat as ignored (exact match,
                    case-insensitive).
                ignored_patterns:
                  type: array
                  items:
                    type: string
                  description: >
                    Substrings or PHP regex patterns (wrap regex in slashes,
                    e.g. `/^test/`)

                    matched against the line item SKU or name.
                push_client_invoice_to_shipstation:
                  type: boolean
                  description: >-
                    Push generated client invoices back to ShipStation as posted
                    orders.
                push_client_invoice_shipstation_store_id:
                  type: integer
                  nullable: true
                  description: ShipStation store ID that receives pushed client invoices.
                push_client_invoice_to_shipstation_automatically:
                  type: boolean
                  description: >-
                    Push client invoices automatically rather than waiting for a
                    manual trigger.
                push_client_invoice_to_shipstation_timing:
                  type: string
                  nullable: true
                  description: >-
                    When the automatic push fires (e.g. `on_invoice_create`,
                    `on_invoice_send`).
      responses:
        '200':
          description: Merged settings after update
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    description: >
                      Purgatory automation settings. All fields are optional in
                      write payloads —

                      only keys present in the body are updated. See `GET
                      /purgatory/settings/schema`

                      for field-level types, defaults, and descriptions.
                    properties:
                      post_empty_orders:
                        type: boolean
                        description: Auto-post sales orders that have no line items.
                      post_orders_ignored_all_items:
                        type: boolean
                        description: Auto-post orders whose every line item is ignored.
                      post_clean_orders:
                        type: boolean
                        description: >
                          Auto-post orders whose remaining non-ignored lines are
                          all mapped to a

                          product. **Affects inventory** — orders posted this
                          way decrement stock.
                      ignore_empty_sku:
                        type: boolean
                        description: Treat line items with an empty SKU as ignored.
                      ignore_adjustment_line_item:
                        type: boolean
                        description: >-
                          Treat adjustment lines (coupons, negative qty, etc.)
                          as ignored.
                      skip_inventory_for_old_shipments:
                        type: boolean
                        description: >-
                          Do not deduct inventory for shipments older than the
                          threshold.
                      skip_inventory_for_old_shipments_days:
                        type: integer
                        minimum: 0
                        description: >-
                          Age in days at which a shipment is considered "old"
                          for the skip rule.
                      skip_inventory_for_similar_orders:
                        type: boolean
                        description: >-
                          Skip inventory for shipments that look like duplicates
                          of recently-posted orders.
                      similarity_threshold:
                        type: number
                        format: float
                        minimum: 0
                        maximum: 1
                        nullable: true
                        description: >
                          Score (0–1) above which two orders are considered
                          duplicates.

                          Required when `skip_inventory_for_similar_orders` is
                          `true`.
                      skip_orders_older_than_date_cutoff:
                        type: string
                        format: date-time
                        nullable: true
                        description: >
                          Orders with `order_date` before this ISO 8601 datetime
                          are skipped by

                          purgatory automation. `null` disables the cutoff.
                      skip_orders_older_than_date_cutoff_by_account:
                        type: array
                        description: >
                          Per-app-integration-account `order_date` cutoffs. A
                          matching account row

                          overrides the global
                          `skip_orders_older_than_date_cutoff` for that account;

                          accounts without a row fall back to the global cutoff.
                        items:
                          type: object
                          required:
                            - app_integration_account_id
                            - cutoff
                          properties:
                            app_integration_account_id:
                              type: integer
                              minimum: 1
                              description: >-
                                ID of the app integration account this cutoff
                                applies to.
                            cutoff:
                              type: string
                              format: date-time
                              description: >-
                                ISO 8601 datetime; orders with `order_date`
                                strictly before this are dropped for this
                                account.
                      ignored_skus:
                        type: array
                        items:
                          type: string
                        description: >-
                          SKUs to always treat as ignored (exact match,
                          case-insensitive).
                      ignored_product_names:
                        type: array
                        items:
                          type: string
                        description: >-
                          Product names to always treat as ignored (exact match,
                          case-insensitive).
                      ignored_patterns:
                        type: array
                        items:
                          type: string
                        description: >
                          Substrings or PHP regex patterns (wrap regex in
                          slashes, e.g. `/^test/`)

                          matched against the line item SKU or name.
                      push_client_invoice_to_shipstation:
                        type: boolean
                        description: >-
                          Push generated client invoices back to ShipStation as
                          posted orders.
                      push_client_invoice_shipstation_store_id:
                        type: integer
                        nullable: true
                        description: >-
                          ShipStation store ID that receives pushed client
                          invoices.
                      push_client_invoice_to_shipstation_automatically:
                        type: boolean
                        description: >-
                          Push client invoices automatically rather than waiting
                          for a manual trigger.
                      push_client_invoice_to_shipstation_timing:
                        type: string
                        nullable: true
                        description: >-
                          When the automatic push fires (e.g.
                          `on_invoice_create`, `on_invoice_send`).
                  schema_url:
                    type: string
                  message:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '422':
          description: Validation error (unknown field or type mismatch)
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errors:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authenticate using a bearer token. To create a token, navigate to
        /settings/api-tokens and click Create API Token.

````