# ERP API reference

Use the [ERP guide](/docs/data-model/erp) for workflows and examples. This reference lists every operation carrying the `commerce` or `costing` topic, including shared tools. Infrastructure changes are marked for IaC.

A trailing `!` means a value is required; `[Type!]` means a list whose entries cannot be null. Defaults below are those declared by the API. Additional business rules are explained in the guide.

## Customers, contacts and addresses

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `getCustomer` | `id: CustomerID!` | `CustomerState` | Read customer by identifier | API |
| `getCustomerBy` | `externalId: String` | `CustomerState` | Read customer using a supplied lookup value | API |
| `listCustomers` | `first: Int`, `last: Int`, `after: String`, `before: String`, `filter: CustomerFilterInput`, `sort: [CustomerSortInput!]` | `CustomerConnection!` | Browse customers | API |
| `listContacts` | `first: Int`, `last: Int`, `after: String`, `before: String`, `filter: ContactFilterInput`, `sort: [ContactSortInput!]` | `ContactConnection!` | Browse contacts | API |
| `getContact` | `id: ContactID!` | `ContactState` | Read contact by identifier | API |
| `getContactBy` | `externalId: String`, `email: String` | `ContactState` | Read contact using a supplied lookup value | API |
| `getAddress` | `id: AddressID!` | `AddressState` | Read address by identifier | API |
| `getAddressBy` | `externalId: String` | `AddressState` | Read address using a supplied lookup value | API |
| `listAddresses` | `first: Int`, `last: Int`, `after: String`, `before: String`, `filter: AddressFilterInput`, `sort: [AddressSortInput!]` | `AddressConnection!` | Browse addresses | API |
| `customerAccountSummary` | `customerId: CustomerID!`, `fromDate: String`, `toDate: String` | `CustomerAccountSummaryPayload!` | Review a customer’s orders, estimates, invoices and account totals | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `upsertCustomer` | `input: UpsertCustomerInput!` | `UpsertCustomerPayload!` | Advanced: Create or update a customer. Prefer create/update for routine changes. | API |
| `createCustomer` | `input: CreateCustomerInput!` | `UpsertCustomerPayload!` | Create a new customer | API |
| `updateCustomer` | `id: CustomerID!`, `input: UpdateCustomerInput!` | `UpsertCustomerPayload!` | Change selected customer fields | API |
| `deleteCustomer` | `id: CustomerID!` | `DeletePayload!` | Delete a customer | API |
| `upsertContact` | `input: UpsertContactInput!` | `UpsertContactPayload!` | Advanced: Create or update a contact. Prefer create/update for routine changes. | API |
| `createContact` | `input: CreateContactInput!` | `UpsertContactPayload!` | Create a new contact | API |
| `updateContact` | `id: ContactID!`, `input: UpdateContactInput!` | `UpsertContactPayload!` | Change selected contact fields | API |
| `deleteContact` | `id: ContactID!` | `DeleteContactPayload!` | Delete a contact | API |
| `upsertAddress` | `input: UpsertAddressInput!` | `UpsertAddressPayload!` | Advanced: Create or update a address. Prefer create/update for routine changes. | API |
| `createAddress` | `input: CreateAddressInput!` | `UpsertAddressPayload!` | Create a new address | API |
| `updateAddress` | `id: AddressID!`, `input: UpdateAddressInput!` | `UpsertAddressPayload!` | Change selected address fields | API |
| `deleteAddress` | `id: AddressID!` | `DeleteAddressPayload!` | Delete a address | API |

## Orders and order lines

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `getOrder` | `id: OrderID!` | `OrderState` | Read order by identifier | API |
| `getOrderBy` | `externalId: String` | `OrderState` | Read order using a supplied lookup value | API |
| `listOrders` | `first: Int`, `after: String`, `filter: OrderFilterInput`, `sort: [OrderSortInput!]` | `OrderConnection!` | Browse orders | API |
| `getOrderLine` | `id: OrderLineID!` | `OrderLineState` | Read order line by identifier | API |
| `listOrderLines` | `first: Int`, `after: String`, `filter: OrderLineFilterInput`, `sort: [OrderLineSortInput!]` | `OrderLineConnection!` | Browse order lines | API |
| `orderLifecycle` | `orderId: OrderID!` | `OrderLifecyclePayload!` | Read an order together with its lines, estimate, invoices, shipments and jobs | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `upsertOrder` | `input: UpsertOrderInput!` | `UpsertOrderPayload!` | Advanced: Create or update a order. Prefer create/update for routine changes. | API |
| `createOrder` | `input: CreateOrderInput!` | `UpsertOrderPayload!` | Create a new order | API |
| `updateOrder` | `id: OrderID!`, `input: UpdateOrderInput!` | `UpsertOrderPayload!` | Change selected order fields | API |
| `createOrderGraph` | `input: CreateOrderGraphInput!` | `CreateOrderGraphPayload!` | Create an order, its lines and optional customer and addresses together | API |
| `deleteOrder` | `id: OrderID!` | `DeletePayload!` | Delete a order | API |
| `upsertOrderLine` | `input: UpsertOrderLineInput!` | `UpsertOrderLinePayload!` | Advanced: Create or update a order line. Prefer create/update for routine changes. | API |
| `createOrderLine` | `input: CreateOrderLineInput!` | `UpsertOrderLinePayload!` | Create a new order line | API |
| `updateOrderLine` | `id: OrderLineID!`, `input: UpdateOrderLineInput!` | `UpsertOrderLinePayload!` | Change selected order line fields | API |
| `deleteOrderLine` | `id: OrderLineID!` | `DeletePayload!` | Delete a order line | API |
| `bulkUpdateOrderStatuses` | `input: BulkUpdateOrderStatusesInput!` | `BulkUpdateOrderStatusesPayload!` | Change the status of several orders in one request | API |

## Read configured costs and check quoting readiness

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `getCostCategory` | `id: CostCategoryID!` | `CostCategoryState` | Read a configured cost category and its unit. | API |
| `getCostCategoryBy` | `externalId: String`, `code: String` | `CostCategoryState` | Find a configured cost category by code or external reference. | API |
| `listCostCategories` | `first: Int`, `last: Int`, `after: String`, `before: String`, `filter: CostCategoryFilterInput`, `sort: [CostCategorySortInput!]` | `CostCategoryConnection!` | Browse configured cost categories. | API |
| `getCostRate` | `id: CostRateID!` | `CostRateState` | Read a configured rate, currency and version. | API |
| `listCostRates` | `first: Int`, `last: Int`, `after: String`, `before: String`, `filter: CostRateFilterInput`, `sort: [CostRateSortInput!]` | `CostRateConnection!` | Browse configured rates and their effective dates. | API |
| `getOperationCostMapping` | `id: OperationCostMappingID!` | `OperationCostMappingState` | Read the cost mapping for a production operation. | API |
| `listOperationCostMappings` | `first: Int`, `after: String`, `filter: OperationCostMappingFilterInput`, `sort: [OperationCostMappingSortInput!]` | `OperationCostMappingConnection!` | Browse configured operation cost mappings. | API |
| `quotingReadinessCheck` | None | `QuotingReadinessPayload!` | Check for gaps in the configuration used for automated quoting. | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `createCostCategory` | `input: CreateCostCategoryInput!` | `UpsertCostCategoryPayload!` | Manage through IaC: create a cost category. | IaC |
| `updateCostCategory` | `id: CostCategoryID!`, `input: UpdateCostCategoryInput!` | `UpsertCostCategoryPayload!` | Manage through IaC: change a cost category. | IaC |
| `upsertCostCategory` | `input: UpsertCostCategoryInput!` | `UpsertCostCategoryPayload!` | Manage through IaC: create or update a cost category. | IaC |
| `deleteCostCategory` | `id: CostCategoryID!` | `DeletePayload!` | Manage through IaC: delete a cost category. | IaC |
| `upsertCostRate` | `input: UpsertCostRateInput!` | `UpsertCostRatePayload!` | Manage through IaC: create or update a cost rate. | IaC |
| `createCostRate` | `input: CreateCostRateInput!` | `UpsertCostRatePayload!` | Manage through IaC: create a cost rate. | IaC |
| `updateCostRate` | `id: CostRateID!`, `input: UpdateCostRateInput!` | `UpsertCostRatePayload!` | Manage through IaC: change a cost rate. | IaC |
| `upsertOperationCostMapping` | `input: UpsertOperationCostMappingInput!` | `UpsertOperationCostMappingPayload!` | Manage through IaC: create or update an operation cost mapping. | IaC |
| `createOperationCostMapping` | `input: CreateOperationCostMappingInput!` | `UpsertOperationCostMappingPayload!` | Manage through IaC: create an operation cost mapping. | IaC |
| `updateOperationCostMapping` | `id: OperationCostMappingID!`, `input: UpdateOperationCostMappingInput!` | `UpsertOperationCostMappingPayload!` | Manage through IaC: change an operation cost mapping. | IaC |
| `deleteOperationCostMapping` | `id: OperationCostMappingID!` | `DeletePayload!` | Manage through IaC: delete an operation cost mapping. | IaC |
| `exportCostConfiguration` | None | `ExportCostConfigurationPayload!` | Export configured costs and mappings for review. | API |
| `importCostConfiguration` | `input: ImportCostConfigurationInput!` | `ImportCostConfigurationPayload!` | Advanced configuration import; manage routine provisioning through IaC. | Advanced reference |
| `deleteCostRate` | `id: CostRateID!` | `DeletePayload!` | Manage through IaC: delete an unused cost rate; dependent costs or later versions prevent deletion. | IaC |

## Estimates and revisions

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `getEstimate` | `id: EstimateID!` | `EstimateState` | Read estimate by identifier | API |
| `getEstimateBy` | `externalId: String` | `EstimateState` | Read estimate using a supplied lookup value | API |
| `listEstimates` | `first: Int`, `after: String`, `filter: EstimateFilterInput`, `sort: [EstimateSortInput!]` | `EstimateConnection!` | Browse estimates | API |
| `getEstimateLine` | `id: EstimateLineID!` | `EstimateLineState` | Read estimate line by identifier | API |
| `listEstimateLines` | `first: Int`, `after: String`, `filter: EstimateLineFilterInput`, `sort: [EstimateLineSortInput!]` | `EstimateLineConnection!` | Browse estimate lines | API |
| `listEstimateCostBreakdowns` | `estimateLineId: EstimateLineID!`, `first: Int`, `after: String` | `EstimateCostBreakdownConnection!` | Read the cost breakdowns behind an estimate line | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `upsertEstimate` | `input: UpsertEstimateInput!` | `UpsertEstimatePayload!` | Advanced: Create or update a estimate. Prefer create/update for routine changes. | API |
| `createEstimate` | `input: CreateEstimateInput!` | `UpsertEstimatePayload!` | Create a new estimate | API |
| `updateEstimate` | `id: EstimateID!`, `input: UpdateEstimateInput!` | `UpsertEstimatePayload!` | Change selected estimate fields | API |
| `deleteEstimate` | `id: EstimateID!` | `DeletePayload!` | Delete a estimate | API |
| `upsertEstimateLine` | `input: UpsertEstimateLineInput!` | `UpsertEstimateLinePayload!` | Advanced: Create or update a estimate line. Prefer create/update for routine changes. | API |
| `createEstimateLine` | `input: CreateEstimateLineInput!` | `UpsertEstimateLinePayload!` | Create a new estimate line | API |
| `updateEstimateLine` | `id: EstimateLineID!`, `input: UpdateEstimateLineInput!` | `UpsertEstimateLinePayload!` | Change selected estimate line fields | API |
| `deleteEstimateLine` | `id: EstimateLineID!` | `DeletePayload!` | Delete a estimate line | API |
| `convertEstimateToOrder` | `input: ConvertEstimateToOrderInput!` | `ConvertEstimateToOrderPayload!` | Create an order and its lines from an estimate | API |
| `reviseEstimate` | `input: ReviseEstimateInput!` | `ReviseEstimatePayload!` | Create a new draft revision with the original estimate’s lines | API |
| `generateEstimate` | `input: GenerateEstimateInput!` | `GenerateEstimatePayload!` | Prepare an estimate from production requirements and calculated costs | API |
| `duplicateEstimateForCustomer` | `input: DuplicateEstimateForCustomerInput!` | `DuplicateEstimateForCustomerPayload!` | Copy an estimate for another customer, optionally adjusting prices | API |

## From a sale to production

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `createJobsFromOrder` | `input: CreateJobsFromOrderInput!` | `CreateJobsFromOrderPayload!` | Create production jobs from selected order lines | API |
| `acceptEstimateAndCreateJobs` | `input: AcceptEstimateInput!` | `AcceptEstimatePayload!` | Accept an estimate and create its order and production jobs | API |

## Record and review actual job costs

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `getRecordedCost` | `id: RecordedCostID!` | `RecordedCostState` | Read an actual cost entry. | API |
| `listRecordedCosts` | `first: Int`, `last: Int`, `after: String`, `before: String`, `filter: RecordedCostFilterInput`, `sort: [RecordedCostSortInput!]` | `RecordedCostConnection!` | Browse actual costs by job, category, currency or date. | API |
| `jobCostingSummary` | `jobId: JobID!` | `JobCostingSummaryPayload!` | Compare a job’s material and operation costs with recorded actual costs. | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `upsertRecordedCost` | `input: UpsertRecordedCostInput!` | `UpsertRecordedCostPayload!` | Advanced: create or replace an actual cost entry. Prefer create/update for routine changes. | API |
| `createRecordedCost` | `input: CreateRecordedCostInput!` | `UpsertRecordedCostPayload!` | Record a new actual cost incurred. | API |
| `updateRecordedCost` | `id: RecordedCostID!`, `input: UpdateRecordedCostInput!` | `UpsertRecordedCostPayload!` | Correct selected fields on an actual cost entry. | API |
| `deleteRecordedCost` | `id: RecordedCostID!` | `DeletePayload!` | Delete an incorrectly recorded cost. | API |

## Invoices, credit notes and payments

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `getInvoice` | `id: InvoiceID!` | `InvoiceState` | Read invoice by identifier | API |
| `listInvoices` | `first: Int`, `after: String`, `filter: InvoiceFilterInput`, `sort: [InvoiceSortInput!]` | `InvoiceConnection!` | Browse invoices | API |
| `getInvoiceLine` | `id: InvoiceLineID!` | `InvoiceLineState` | Read invoice line by identifier | API |
| `listInvoiceLines` | `first: Int`, `after: String`, `filter: InvoiceLineFilterInput`, `sort: [InvoiceLineSortInput!]` | `InvoiceLineConnection!` | Browse invoice lines | API |
| `getPayment` | `id: PaymentID!` | `PaymentState` | Read payment by identifier | API |
| `listPayments` | `first: Int`, `after: String`, `filter: PaymentFilterInput`, `sort: [PaymentSortInput!]` | `PaymentConnection!` | Browse payments | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `upsertInvoice` | `input: UpsertInvoiceInput!` | `UpsertInvoicePayload!` | Advanced: Create or update a invoice. Prefer create/update for routine changes. | API |
| `createInvoice` | `input: CreateInvoiceInput!` | `UpsertInvoicePayload!` | Create a new invoice | API |
| `updateInvoice` | `id: InvoiceID!`, `input: UpdateInvoiceInput!` | `UpsertInvoicePayload!` | Change selected invoice fields | API |
| `deleteInvoice` | `id: InvoiceID!` | `DeletePayload!` | Delete a invoice | API |
| `upsertInvoiceLine` | `input: UpsertInvoiceLineInput!` | `UpsertInvoiceLinePayload!` | Advanced: Create or update a invoice line. Prefer create/update for routine changes. | API |
| `createInvoiceLine` | `input: CreateInvoiceLineInput!` | `UpsertInvoiceLinePayload!` | Create a new invoice line | API |
| `updateInvoiceLine` | `id: InvoiceLineID!`, `input: UpdateInvoiceLineInput!` | `UpsertInvoiceLinePayload!` | Change selected invoice line fields | API |
| `deleteInvoiceLine` | `id: InvoiceLineID!` | `DeletePayload!` | Delete a invoice line | API |
| `recordPayment` | `input: OTCRecordPaymentInput!` | `OTCRecordPaymentPayload!` | Record an invoice payment and update the invoice and order payment totals together | API |
| `deletePayment` | `id: PaymentID!` | `DeletePayload!` | Remove a payment and recalculate the invoice and order payment totals | API |
| `invoiceOrder` | `input: InvoiceOrderInput!` | `InvoiceOrderPayload!` | Generate one invoice and its lines from an order | API |
| `issueCreditNote` | `input: IssueCreditNoteInput!` | `IssueCreditNotePayload!` | Issue a credit note against an invoice | API |

## Suppliers and purchase orders

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `getSupplier` | `id: SupplierID!` | `SupplierState` | Read supplier by identifier | API |
| `listSuppliers` | `first: Int`, `after: String`, `filter: SupplierFilterInput`, `sort: [SupplierSortInput!]` | `SupplierConnection!` | Browse suppliers | API |
| `getPurchaseOrder` | `id: PurchaseOrderID!` | `PurchaseOrderState` | Read purchase order by identifier | API |
| `listPurchaseOrders` | `first: Int`, `after: String`, `filter: PurchaseOrderFilterInput`, `sort: [PurchaseOrderSortInput!]` | `PurchaseOrderConnection!` | Browse purchase orders | API |
| `getPurchaseOrderLine` | `id: PurchaseOrderLineID!` | `PurchaseOrderLineState` | Read purchase order line by identifier | API |
| `listPurchaseOrderLines` | `first: Int`, `after: String`, `filter: PurchaseOrderLineFilterInput`, `sort: [PurchaseOrderLineSortInput!]` | `PurchaseOrderLineConnection!` | Browse purchase order lines | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `upsertSupplier` | `input: UpsertSupplierInput!` | `UpsertSupplierPayload!` | Manage through IaC: create or update a supplier | IaC |
| `createSupplier` | `input: CreateSupplierInput!` | `UpsertSupplierPayload!` | Manage through IaC: create a new supplier | IaC |
| `updateSupplier` | `id: SupplierID!`, `input: UpdateSupplierInput!` | `UpsertSupplierPayload!` | Manage through IaC: change selected supplier fields | IaC |
| `deleteSupplier` | `id: SupplierID!` | `DeletePayload!` | Manage through IaC: delete a supplier | IaC |
| `upsertPurchaseOrder` | `input: UpsertPurchaseOrderInput!` | `UpsertPurchaseOrderPayload!` | Create or update a purchase order | API |
| `updatePurchaseOrder` | `id: PurchaseOrderID!`, `input: UpdatePurchaseOrderInput!` | `UpsertPurchaseOrderPayload!` | Change selected purchase order fields | API |
| `deletePurchaseOrder` | `id: PurchaseOrderID!` | `DeletePayload!` | Delete a purchase order | API |
| `upsertPurchaseOrderLine` | `input: UpsertPurchaseOrderLineInput!` | `UpsertPurchaseOrderLinePayload!` | Advanced: Create or update a purchase order line. Prefer create/update for routine changes. | API |
| `createPurchaseOrderLine` | `input: CreatePurchaseOrderLineInput!` | `UpsertPurchaseOrderLinePayload!` | Create a new purchase order line | API |
| `updatePurchaseOrderLine` | `id: PurchaseOrderLineID!`, `input: UpdatePurchaseOrderLineInput!` | `UpsertPurchaseOrderLinePayload!` | Change selected purchase order line fields | API |
| `deletePurchaseOrderLine` | `id: PurchaseOrderLineID!` | `DeletePayload!` | Delete a purchase order line | API |

## Products, pricing and tax

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `listCustomerPriceOverrides` | `first: Int`, `after: String`, `filter: CustomerPriceOverrideFilterInput`, `sort: [CustomerPriceOverrideSortInput!]` | `CustomerPriceOverrideConnection!` | Browse customer price overrides | API |
| `getTaxCode` | `id: TaxCodeID!` | `TaxCodeState` | Read tax code by identifier | API |
| `listTaxCodes` | `first: Int`, `after: String`, `filter: TaxCodeFilterInput`, `sort: [TaxCodeSortInput!]` | `TaxCodeConnection!` | Browse tax codes | API |
| `getPriceBracket` | `id: PriceBracketID!` | `PriceBracketState` | Read price bracket by identifier | API |
| `listPriceBrackets` | `first: Int`, `after: String`, `filter: PriceBracketFilterInput`, `sort: [PriceBracketSortInput!]` | `PriceBracketConnection!` | Browse price brackets | API |
| `getProduct` | `id: ProductID!` | `ProductState` | Read product by identifier | API |
| `listProducts` | `first: Int`, `after: String`, `filter: ProductFilterInput`, `sort: [ProductSortInput!]` | `ProductConnection!` | Browse products | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `upsertCustomerPriceOverride` | `input: UpsertCustomerPriceOverrideInput!` | `UpsertCustomerPriceOverridePayload!` | Advanced: Create or update a customer price override. Prefer create/update for routine changes. | API |
| `createCustomerPriceOverride` | `input: CreateCustomerPriceOverrideInput!` | `UpsertCustomerPriceOverridePayload!` | Create a new customer price override | API |
| `updateCustomerPriceOverride` | `id: CustomerPriceOverrideID!`, `input: UpdateCustomerPriceOverrideInput!` | `UpsertCustomerPriceOverridePayload!` | Change selected customer price override fields | API |
| `deleteCustomerPriceOverride` | `id: CustomerPriceOverrideID!` | `DeletePayload!` | Delete a customer price override | API |
| `upsertTaxCode` | `input: UpsertTaxCodeInput!` | `UpsertTaxCodePayload!` | Manage through IaC: create or update a tax code | IaC |
| `createTaxCode` | `input: CreateTaxCodeInput!` | `UpsertTaxCodePayload!` | Manage through IaC: create a new tax code | IaC |
| `updateTaxCode` | `id: TaxCodeID!`, `input: UpdateTaxCodeInput!` | `UpsertTaxCodePayload!` | Manage through IaC: change selected tax code fields | IaC |
| `deleteTaxCode` | `id: TaxCodeID!` | `DeletePayload!` | Manage through IaC: delete a tax code | IaC |
| `upsertPriceBracket` | `input: UpsertPriceBracketInput!` | `UpsertPriceBracketPayload!` | Manage through IaC: create or update a price bracket | IaC |
| `createPriceBracket` | `input: CreatePriceBracketInput!` | `UpsertPriceBracketPayload!` | Manage through IaC: create a new price bracket | IaC |
| `updatePriceBracket` | `id: PriceBracketID!`, `input: UpdatePriceBracketInput!` | `UpsertPriceBracketPayload!` | Manage through IaC: change selected price bracket fields | IaC |
| `deletePriceBracket` | `id: PriceBracketID!` | `DeletePayload!` | Manage through IaC: delete a price bracket | IaC |
| `upsertProduct` | `input: UpsertProductInput!` | `UpsertProductPayload!` | Manage through IaC: create or update a product | IaC |
| `createProduct` | `input: CreateProductInput!` | `UpsertProductPayload!` | Manage through IaC: create a new product | IaC |
| `updateProduct` | `id: ProductID!`, `input: UpdateProductInput!` | `UpsertProductPayload!` | Manage through IaC: change selected product fields | IaC |
| `deleteProduct` | `id: ProductID!` | `DeletePayload!` | Manage through IaC: delete a product | IaC |

## Business units and cost centres

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `getBusinessUnit` | `id: BusinessUnitID!` | `BusinessUnitState` | Read business unit by identifier | API |
| `getBusinessUnitBy` | `externalId: String`, `code: String` | `BusinessUnitState` | Read business unit using a supplied lookup value | API |
| `listBusinessUnits` | `first: Int`, `last: Int`, `after: String`, `before: String`, `filter: BusinessUnitFilterInput`, `sort: [BusinessUnitSortInput!]` | `BusinessUnitConnection!` | Browse business units | API |
| `getCostCenter` | `id: CostCenterID!` | `CostCenterState` | Read cost center by identifier | API |
| `getCostCenterBy` | `externalId: String`, `code: String` | `CostCenterState` | Read cost center using a supplied lookup value | API |
| `listCostCenters` | `first: Int`, `last: Int`, `after: String`, `before: String`, `filter: CostCenterFilterInput`, `sort: [CostCenterSortInput!]` | `CostCenterConnection!` | Browse cost centers | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `upsertBusinessUnit` | `input: UpsertBusinessUnitInput!` | `UpsertBusinessUnitPayload!` | Manage through IaC: create or update a business unit | IaC |
| `createBusinessUnit` | `input: CreateBusinessUnitInput!` | `UpsertBusinessUnitPayload!` | Manage through IaC: create a new business unit | IaC |
| `updateBusinessUnit` | `id: BusinessUnitID!`, `input: UpdateBusinessUnitInput!` | `UpsertBusinessUnitPayload!` | Manage through IaC: change selected business unit fields | IaC |
| `deleteBusinessUnit` | `id: BusinessUnitID!` | `DeletePayload!` | Manage through IaC: delete a business unit | IaC |
| `upsertCostCenter` | `input: UpsertCostCenterInput!` | `UpsertCostCenterPayload!` | Manage through IaC: create or update a cost center | IaC |
| `createCostCenter` | `input: CreateCostCenterInput!` | `UpsertCostCenterPayload!` | Manage through IaC: create a new cost center | IaC |
| `updateCostCenter` | `id: CostCenterID!`, `input: UpdateCostCenterInput!` | `UpsertCostCenterPayload!` | Manage through IaC: change selected cost center fields | IaC |
| `deleteCostCenter` | `id: CostCenterID!` | `DeletePayload!` | Manage through IaC: delete a cost center | IaC |

## Order fulfilment

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `orderFulfillmentCompletion` | `orderId: OrderID!` | `OrderFulfillmentCompletion!` | Check whether every order line meets the current completion milestone | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `completeOrderFulfillment` | `orderId: OrderID!`, `expectedCompletionPoint: FulfillmentCompletionPoint!` | `UpsertOrderPayload!` | Complete an order after checking its fulfilment milestone | API |

## Notes on commercial records

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `getEntityNote` | `id: EntityNoteIDSpecTypedID!` | `EntityNote` | Read a note attached to a record you can access | API |
| `getEntityNoteBySource` | `integrationInstanceId: IntegrationInstanceID!`, `key: String!` | `EntityNote` | Find a note by its source integration and key | API |
| `entityNotes` | `filter: EntityNoteFilter`, `first: Int`, `after: String` | `EntityNotePage!` | Browse notes on a record | API |
| `searchEntityNotes` | `query: String!`, `filter: EntityNoteFilter`, `first: Int`, `after: String` | `EntityNoteSearchPage!` | Search notes you are allowed to read | API |

### Mutation

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `createEntityNote` | `input: CreateEntityNoteInput!` | `EntityNotePayload!` | Add a note to a record | API |
| `updateEntityNote` | `id: EntityNoteIDSpecTypedID!`, `expectedVersion: Int!`, `input: UpdateEntityNoteInput!` | `EntityNotePayload!` | Edit a note using its current version | API |
| `deleteEntityNote` | `id: EntityNoteIDSpecTypedID!`, `expectedVersion: Int!` | `DeletePayload!` | Delete a note using its current version | API |
| `reindexEntityNotes` | `filter: EntityNoteFilter`, `first: Int`, `after: String` | `EntityNoteReindexResult!` | Request refreshed search indexing for a selected set of notes | API |

## Examples and shared API tools

### Query

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `topicExamples` | `names: [String!]!` | `[TopicExample!]!` | Fetch named operations, example variables and illustrative responses | API |
| `magicQuery` | `query: QueryScalar!` | `JSON!` | Read data with a compact named query | API |
| `getMagicQuerySchema` | `query: QueryScalar!` | `MagicQuerySchema!` | Inspect the inputs and result of a compact named query | API |
| `listMagicQueries` | None | `[MagicQueryInfo!]!` | Discover the available compact named queries | API |
| `getMagicQueryGraphQL` | `query: QueryScalar!` | `MagicQueryOperation!` | Inspect the GraphQL operation for a compact named query | API |
| `listDataChangeEventTopics` | None | `[DataChangeEventGroup!]!` | Discover record-change event topics | API |
| `generateDefaultDataQuery` | `topic: String!` | `String` | Prepare a query for a record-change event | API |
| `ping` | None | `String!` | Check whether the API responds | API |
| `iacSchema` | None | `IaCSchemaDocument!` | Read the infrastructure schema for IaC tooling | API |
| `iacValidate` | `validator: String!`, `source: String!`, `role: String` | `IaCValidationResult!` | Validate an IaC source document | API |
| `iacGuides` | None | `[IaCGuide!]!` | Read IaC authoring guides | API |
| `helpChapters` | None | `[HelpChapterInfo!]!` | Discover help chapters | API |
| `helpChapter` | `family: String!`, `slug: String!` | `HelpChapter` | Read a help chapter | API |
| `searchHelp` | `query: String!`, `family: String` | `HelpSearchResult!` | Find help by search term | API |
| `schemaAuthoringCatalog` | None | `JSON!` | Discover supported schema authoring features | API |
| `compileSchemaXML` | `sourceXML: String!` | `String!` | Convert an authored XML schema to JSON Schema | API |
| `renderSchemaXML` | `schemaJSON: String!` | `String!` | Convert JSON Schema to authored XML | API |
| `iacSchemaDocument` | `ref: String!` | `IaCSchemaDocumentPayload!` | Read a schema document used by IaC tooling | API |

### Subscription

| Operation | Arguments | Result | Use it to | Use through |
| --- | --- | --- | --- | --- |
| `dataChangeEvents` | `topics: [String!]!` | `DataChangeEvent!` | Subscribe to record-change events | API |

## Types

These tables cover operation inputs, their nested inputs, result envelopes, records and immediate related results. Type names also identify relationships to other topics; consult those topics for their workflows. Scalar names such as `OrderID`, `ISO8601` and `CurrencyISO` describe the expected identifier, date-time or currency value.

### AcceptEstimateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateId` | `EstimateID!` | — | — |
| `orderNumber` | `String` | — | — |
| `orderDate` | `String` | — | — |
| `notes` | `String` | — | — |
| `jobPriority` | `Int` | — | — |

### AcceptEstimatePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `order` | `OrderState` | — | — |
| `orderLines` | `[OrderLineState!]` | — | — |
| `jobs` | `[JobState!]` | — | — |
| `components` | `[ComponentState!]` | — | — |
| `operations` | `[OperationState!]` | — | — |
| `updatedEstimate` | `EstimateState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### AddressConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[AddressEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### AddressEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `AddressState!` | — | — |
| `cursor` | `String!` | — | — |

### AddressFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customerId` | `IDFilter` | — | — |
| `contactId` | `IDFilter` | — | — |
| `externalId` | `StringFilter` | — | — |
| `addressType` | `StringFilter` | — | — |
| `city` | `StringFilter` | — | — |
| `country` | `StringFilter` | — | — |
| `isDefault` | `BoolFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |
| `updatedAt` | `DateFilter` | — | — |

### AddressSortField

`CITY`, `COUNTRY`, `CREATED_AT`, `UPDATED_AT`

### AddressSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `AddressSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### AddressState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `timezone` | `String` | — | — |
| `id` | `AddressID!` | — | — |
| `customerId` | `CustomerID` | — | — |
| `contactId` | `ContactID` | — | — |
| `supplierId` | `SupplierID` | — | — |
| `externalId` | `String` | — | — |
| `addressType` | `AddressType!` | — | — |
| `street1` | `String!` | — | — |
| `street2` | `String` | — | — |
| `city` | `String!` | — | — |
| `state` | `String` | — | — |
| `postalCode` | `String` | — | — |
| `country` | `String!` | — | — |
| `isDefault` | `Boolean!` | — | — |
| `createdAt` | `ISO8601!` | — | — |
| `updatedAt` | `ISO8601!` | — | — |

### AddressType

`BILLING`, `SHIPPING`, `BOTH`

### BindingSide

`LEFT`, `RIGHT`, `TOP`

### BindingType

`SADDLE_STITCH`, `PERFECT_BOUND`, `CASE_BOUND`, `WIRE_BOUND`, `FLATWORK`, `FOLDED`, `OTHER`

### BoolFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `eq` | `Boolean` | — | — |

### BulkUpdateOrderStatusesInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderIds` | `[OrderID!]!` | — | — |
| `status` | `OrderStatus!` | — | — |
| `notes` | `String` | — | — |

### BulkUpdateOrderStatusesPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `updatedOrders` | `[OrderState!]` | — | — |
| `failedOrderIds` | `[OrderID!]` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### BusinessUnitConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[BusinessUnitEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### BusinessUnitEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `BusinessUnitState!` | — | — |
| `cursor` | `String!` | — | — |

### BusinessUnitFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `externalId` | `StringFilter` | — | — |
| `name` | `StringFilter` | — | — |
| `code` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |
| `updatedAt` | `DateFilter` | — | — |

### BusinessUnitSortField

`NAME`, `CODE`, `CREATED_AT`, `UPDATED_AT`

### BusinessUnitSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `BusinessUnitSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### BusinessUnitState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `BusinessUnitID!` | — | — |
| `externalId` | `String` | — | — |
| `parentId` | `BusinessUnitID` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `description` | `String` | — | — |
| `isActive` | `Boolean!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### CalculatedOperationDuration

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `operationIndex` | `Int!` | — | — |
| `setupSeconds` | `Float` | — | — |
| `runSeconds` | `Float` | — | — |
| `setupSource` | `String` | — | — |
| `runSource` | `String` | — | — |
| `workCenterId` | `WorkCenterID` | — | — |
| `capabilityId` | `CapabilityID` | — | — |
| `productionQuantity` | `Float` | — | — |
| `productionUnit` | `MeasurementUnit` | — | — |
| `nominalRate` | `Float` | — | — |
| `rateProfile` | `String` | — | — |
| `efficiencyFactor` | `Float` | — | — |
| `wasteFactor` | `Float!` | — | — |
| `cleanupSeconds` | `Float` | — | — |

### CarrierState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CarrierID!` | — | — |
| `name` | `String!` | — | — |
| `code` | `String` | — | — |
| `serviceName` | `String` | — | — |
| `trackingUrlTemplate` | `String` | — | — |
| `pickUpCutoff` | `String` | — | — |
| `transitDays` | `Int` | — | — |
| `accountNumber` | `String` | — | — |
| `contactName` | `String` | — | — |
| `contactPhone` | `String` | — | — |
| `contactEmail` | `String` | — | — |
| `isActive` | `Boolean!` | — | — |
| `notes` | `String` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### CommercialKind

`BANNER`, `BROCHURE`, `BUSINESS_CARD`, `CATALOG`, `COMPLIMENT_SLIP`, `ENVELOPE`, `HARDCOVER_BOOK`, `LABEL`, `LETTERHEAD`, `MAGAZINE`, `POSTCARD`, `SOFTCOVER_BOOK`, `OTHER`

### ComponentArtworkFileState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ComponentArtworkFileID!` | — | — |
| `componentId` | `ComponentID!` | — | — |
| `fileId` | `FileID` | — | — |
| `externalUri` | `String` | — | — |
| `usageRole` | `ComponentFileUsageRole!` | — | — |
| `description` | `String` | — | — |
| `pageCount` | `Int` | — | — |
| `pageRange` | `String` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `file` | `FileState` | — | — |
| `component` | `ComponentState` | — | — |

### ComponentColorInfo

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `front` | `ColorSide` | — | — |
| `back` | `ColorSide` | — | — |
| `frontColorCount` | `Int!` | — | — |
| `backColorCount` | `Int!` | — | — |

### ComponentFileUsageRole

`ARTWORK`, `TEMPLATE`, `DATA`, `PATH`, `OTHER`

### ComponentGroupKind

`TEXT_BLOCK`, `CASE`, `ENDPAPER`, `INSERT`, `OTHER`

### ComponentGroupState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ComponentGroupID!` | — | — |
| `jobId` | `JobID!` | — | — |
| `name` | `String!` | — | — |
| `kind` | `ComponentGroupKind!` | — | — |
| `description` | `String` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `ISO8601!` | — | — |
| `updatedAt` | `ISO8601!` | — | — |
| `job` | `JobState` | — | — |
| `components` | `[ComponentState!]!` | — | — |
| `operations` | `[OperationState!]!` | — | — |
| `totalPageCount` | `Int` | — | — |

### ComponentImposingInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `totalPages` | `Int!` | — | — |
| `finishedWidth` | `Float!` | — | — |
| `finishedHeight` | `Float!` | — | — |
| `bleed` | `Float` | — | — |
| `bindingType` | `String` | — | — |
| `bindingSide` | `BindingSide` | — | — |
| `mode` | `String` | — | — |
| `quantity` | `Int` | — | — |
| `substrates` | `[ProducibilitySubstrateInput!]!` | — | — |
| `frontColorCount` | `Int` | — | — |
| `backColorCount` | `Int` | — | — |
| `preferredPrintProcess` | `String` | — | — |
| `requiresPrinting` | `Boolean` | — | — |
| `finishing` | `InferenceFinishingInput` | — | — |

### ComponentKind

`CONTENT`, `COVER`, `INSERT`, `MAIN`, `TEXT`, `DUST_JACKET`, `ENDPAPER`, `OUTSERT`, `OTHER`

### ComponentLayout

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `substrate` | `LayoutDimension` | — | — |
| `trimBox` | `LayoutBox` | — | — |
| `bleed` | `BleedSpec` | — | — |
| `bleedBox` | `LayoutBox` | — | — |
| `safeBox` | `LayoutBox` | — | — |
| `layers` | `[LayoutLayer!]!` | — | — |
| `allowance` | `LayoutAllowance` | — | — |

### ComponentRoleInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `role` | `String!` | — | — |
| `imposing` | `ComponentImposingInput!` | — | — |

### ComponentState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ComponentID!` | — | — |
| `jobId` | `JobID!` | — | — |
| `componentGroupId` | `ComponentGroupID` | — | — |
| `componentNumber` | `String` | — | — |
| `externalId` | `String` | — | — |
| `name` | `String!` | — | — |
| `description` | `String` | — | — |
| `kind` | `ComponentKind!` | — | — |
| `quantity` | `Int!` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `ISO8601!` | — | — |
| `updatedAt` | `ISO8601!` | — | — |
| `job` | `JobState` | — | — |
| `componentGroup` | `ComponentGroupState` | — | — |
| `operations` | `[OperationState!]!` | — | — |
| `milestones` | `[MilestoneState!]!` | — | — |
| `totalPages` | `Int` | — | — |
| `colors` | `ComponentColorInfo` | — | — |
| `layout` | `ComponentLayout` | — | — |
| `media` | `Media` | — | — |
| `finishedSize` | `Media` | — | — |
| `finishing` | `FinishingSpec` | — | — |
| `desiredSubstrateId` | `SubstrateID` | — | — |
| `actualSubstrateId` | `SubstrateID` | — | — |
| `artworkFiles` | `[ComponentArtworkFileState!]!` | — | — |
| `impositionSpecs` | `[ImpositionSpecState!]!` | — | — |
| `prepressOperations` | `[PrepressOperationState!]!` | — | — |
| `preflightReports` | `[PreflightReportState!]!` | — | — |
| `desiredSubstrate` | `SubstrateState` | — | — |
| `actualSubstrate` | `SubstrateState` | — | — |

### ConsolidationCompatibility

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `outcome` | `RequirementAssessmentOutcome!` | — | — |
| `diagnostics` | `[String!]!` | — | — |

### ContactConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[ContactEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### ContactEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `ContactState!` | — | — |
| `cursor` | `String!` | — | — |

### ContactFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customerId` | `IDFilter` | — | — |
| `firstName` | `StringFilter` | — | — |
| `lastName` | `StringFilter` | — | — |
| `email` | `StringFilter` | — | — |
| `isPrimary` | `BoolFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |
| `updatedAt` | `DateFilter` | — | — |

### ContactSortField

`LAST_NAME`, `FIRST_NAME`, `CREATED_AT`, `UPDATED_AT`

### ContactSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `ContactSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### ContactState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ContactID!` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `externalId` | `String` | — | — |
| `firstName` | `String!` | — | — |
| `lastName` | `String!` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `jobTitle` | `String` | — | — |
| `isPrimary` | `Boolean!` | — | — |
| `createdAt` | `ISO8601!` | — | — |
| `updatedAt` | `ISO8601!` | — | — |

### ConvertEstimateToOrderInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateId` | `EstimateID!` | — | — |
| `orderNumber` | `String` | — | — |
| `orderDate` | `String` | — | — |
| `notes` | `String` | — | — |

### ConvertEstimateToOrderPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `order` | `OrderState` | — | — |
| `orderLines` | `[OrderLineState!]` | — | — |
| `updatedEstimate` | `EstimateState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### CostCategoryConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[CostCategoryEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### CostCategoryEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `CostCategoryState!` | — | — |
| `cursor` | `String!` | — | — |

### CostCategoryFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `externalId` | `StringFilter` | — | — |
| `name` | `StringFilter` | — | — |
| `code` | `StringFilter` | — | — |
| `unit` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |
| `updatedAt` | `DateFilter` | — | — |

### CostCategorySortField

`NAME`, `CODE`, `CREATED_AT`, `UPDATED_AT`

### CostCategorySortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `CostCategorySortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### CostCategoryState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CostCategoryID!` | — | — |
| `externalId` | `String` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `description` | `String` | — | — |
| `unit` | `CostCategoryUnit!` | — | — |
| `isActive` | `Boolean!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### CostCategoryUnit

`HOURS`, `MINUTES`, `SHEETS`, `IMPRESSIONS`, `PLATES`, `CLICKS`, `SQM`, `METERS`, `KG`, `UNITS`, `PIECES`, `ROLLS`, `LITERS`

### CostCenterConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[CostCenterEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### CostCenterEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `CostCenterState!` | — | — |
| `cursor` | `String!` | — | — |

### CostCenterFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `externalId` | `StringFilter` | — | — |
| `businessUnitId` | `IDFilter` | — | — |
| `name` | `StringFilter` | — | — |
| `code` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |
| `updatedAt` | `DateFilter` | — | — |

### CostCenterSortField

`NAME`, `CODE`, `CREATED_AT`, `UPDATED_AT`

### CostCenterSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `CostCenterSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### CostCenterState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CostCenterID!` | — | — |
| `externalId` | `String` | — | — |
| `businessUnitId` | `BusinessUnitID!` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `description` | `String` | — | — |
| `isActive` | `Boolean!` | — | — |
| `createdAt` | `ISO8601!` | — | — |
| `updatedAt` | `ISO8601!` | — | — |

### CostImportMode

`MERGE`, `REPLACE`

### CostLineItem

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `description` | `String!` | — | — |
| `category` | `String!` | — | — |
| `quantity` | `Float!` | — | — |
| `unitCost` | `Float!` | — | — |
| `totalCost` | `Float!` | — | — |
| `currency` | `CurrencyISO` | — | — |

### CostRateConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[CostRateEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### CostRateEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `CostRateState!` | — | — |
| `cursor` | `String!` | — | — |

### CostRateFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `costCategoryId` | `IDFilter` | — | — |
| `costCenterId` | `IDFilter` | — | — |
| `isCurrent` | `BoolFilter` | — | — |
| `currency` | `StringFilter` | — | — |
| `effectiveFrom` | `DateFilter` | — | — |
| `effectiveTo` | `DateFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |

### CostRateSortField

`RATE`, `EFFECTIVE_FROM`, `CREATED_AT`, `VERSION`

### CostRateSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `CostRateSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### CostRateState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CostRateID!` | — | — |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costCenterId` | `CostCenterID` | — | — |
| `parentVersionId` | `CostRateID` | — | — |
| `version` | `Int!` | — | — |
| `isCurrent` | `Boolean!` | — | — |
| `rate` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `effectiveFrom` | `ISO8601!` | — | — |
| `effectiveTo` | `ISO8601` | — | — |
| `createdAt` | `ISO8601!` | — | — |

### CostType

`SETUP`, `RUN`, `MATERIAL`

### CreateAddressInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `timezone` | `String` | — | — |
| `customerId` | `CustomerID` | — | — |
| `contactId` | `ContactID` | — | — |
| `supplierId` | `SupplierID` | — | — |
| `externalId` | `String` | — | — |
| `addressType` | `AddressType!` | — | — |
| `street1` | `String!` | — | — |
| `street2` | `String` | — | — |
| `city` | `String!` | — | — |
| `state` | `String` | — | — |
| `postalCode` | `String` | — | — |
| `country` | `String!` | — | — |
| `isDefault` | `Boolean` | — | — |

### CreateBusinessUnitInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `externalId` | `String` | — | — |
| `parentId` | `BusinessUnitID` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `description` | `String` | — | — |
| `isActive` | `Boolean` | — | — |

### CreateContactInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customerId` | `CustomerID!` | — | — |
| `externalId` | `String` | — | — |
| `firstName` | `String!` | — | — |
| `lastName` | `String!` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `jobTitle` | `String` | — | — |
| `isPrimary` | `Boolean` | — | — |

### CreateCostCategoryInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `externalId` | `String` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `description` | `String` | — | — |
| `unit` | `CostCategoryUnit!` | — | — |
| `isActive` | `Boolean` | — | — |

### CreateCostCenterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `externalId` | `String` | — | — |
| `businessUnitId` | `BusinessUnitID!` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `description` | `String` | — | — |
| `isActive` | `Boolean` | — | — |

### CreateCostRateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costCenterId` | `CostCenterID` | — | — |
| `rate` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `effectiveFrom` | `ISO8601` | — | — |
| `effectiveTo` | `ISO8601` | — | — |

### CreateCustomerInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String!` | — | — |
| `externalId` | `String` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `notes` | `String` | — | — |
| `isActive` | `Boolean` | — | — |
| `creditLimit` | `Float` | — | — |
| `creditCurrency` | `CurrencyISO` | — | — |
| `paymentTermsDays` | `Int` | — | — |
| `isCreditHold` | `Boolean` | — | — |
| `creditHoldReason` | `String` | — | — |
| `defaultTaxCodeId` | `TaxCodeID` | — | — |
| `isTaxExempt` | `Boolean` | — | — |
| `taxExemptReference` | `String` | — | — |
| `createdAt` | `ISO8601` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### CreateCustomerPriceOverrideInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customerId` | `CustomerID!` | — | — |
| `overrideType` | `PriceOverrideType!` | — | — |
| `scope` | `PriceOverrideScope!` | — | — |
| `operationKind` | `String` | — | — |
| `costCategoryId` | `CostCategoryID` | — | — |
| `value` | `Float!` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `priority` | `Int` | — | — |
| `isActive` | `Boolean` | — | — |
| `effectiveFrom` | `ISO8601` | — | — |
| `effectiveTo` | `ISO8601` | — | — |
| `notes` | `String` | — | — |

### CreateEntityNoteInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `targetId` | `ID!` | — | — |
| `body` | `String!` | — | — |
| `attribution` | `EntityNoteAttributionInput` | — | — |
| `source` | `EntityNoteSourceInput` | — | — |

### CreateEstimateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateNumber` | `String!` | — | — |
| `externalId` | `String` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `status` | `EstimateStatus` | — | — |
| `issueDate` | `ISO8601!` | — | — |
| `validUntil` | `ISO8601` | — | — |
| `acceptedAt` | `ISO8601` | — | — |
| `rejectedAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float!` | — | — |
| `taxAmount` | `Float!` | — | — |
| `totalAmount` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `taxRate` | `Float` | — | — |
| `convertedToOrderId` | `OrderID` | — | — |
| `revisionNumber` | `Int` | — | — |
| `parentEstimateId` | `EstimateID` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `createdAt` | `ISO8601` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### CreateEstimateLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateId` | `EstimateID!` | — | — |
| `lineNumber` | `Int!` | — | — |
| `productId` | `ProductID` | — | — |
| `productSku` | `String` | — | — |
| `productName` | `String!` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `estimatedCost` | `Float` | — | — |
| `estimatedMarginPercent` | `Float` | — | — |
| `notes` | `String` | — | — |
| `sortOrder` | `Int` | — | — |
| `attachments` | `[EstimateLineFileAttachmentInput!]` | — | — |

### CreateInvoiceInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceNumber` | `String!` | — | — |
| `kind` | `InvoiceKind!` | — | — |
| `orderId` | `OrderID` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `status` | `InvoiceStatus` | — | — |
| `issueDate` | `ISO8601!` | — | — |
| `dueDate` | `ISO8601` | — | — |
| `paidAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float!` | — | — |
| `taxAmount` | `Float!` | — | — |
| `totalAmount` | `Float!` | — | — |
| `paidAmount` | `Float` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `taxRate` | `Float` | — | — |
| `creditedInvoiceId` | `InvoiceID` | — | — |
| `paymentTerms` | `String` | — | — |
| `paymentMethod` | `String` | — | — |
| `paymentReference` | `String` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `attachments` | `[InvoiceFileAttachmentInput!]` | — | — |

### CreateInvoiceLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceId` | `InvoiceID!` | — | — |
| `lineNumber` | `Int!` | — | — |
| `orderLineId` | `OrderLineID` | — | — |
| `jobId` | `JobID` | — | — |
| `productSku` | `String` | — | — |
| `description` | `String!` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `sortOrder` | `Int` | — | — |

### CreateJobsFromOrderInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderId` | `OrderID!` | — | — |
| `jobs` | `[JobFromOrderLineInput!]!` | — | — |

### CreateJobsFromOrderPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `order` | `OrderState` | — | — |
| `jobs` | `[JobState!]` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### CreateOperationCostMappingInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `operationKind` | `String!` | — | — |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costType` | `CostType!` | — | — |
| `defaultQuantityFormula` | `String` | — | — |
| `isActive` | `Boolean` | — | — |

### CreateOrderGraphInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `order` | `UpsertOrderInput!` | — | — |
| `customer` | `UpsertCustomerInput` | — | — |
| `billingAddress` | `UpsertAddressInput` | — | — |
| `shippingAddress` | `UpsertAddressInput` | — | — |
| `lines` | `[UpsertOrderLineInput!]!` | — | — |

### CreateOrderGraphPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `order` | `OrderState` | — | — |
| `customer` | `CustomerState` | — | — |
| `billingAddress` | `AddressState` | — | — |
| `shippingAddress` | `AddressState` | — | — |
| `lines` | `[OrderLineState!]` | — | — |
| `jobs` | `[JobState!]` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### CreateOrderInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderNumber` | `String!` | — | — |
| `externalId` | `String` | — | — |
| `poReference` | `String` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `shippingAddressId` | `AddressID` | — | — |
| `estimateId` | `EstimateID` | — | — |
| `status` | `OrderStatus` | — | — |
| `paymentStatus` | `PaymentStatus` | — | — |
| `orderDate` | `ISO8601` | — | — |
| `requiredDeliveryDate` | `ISO8601` | — | — |
| `promisedDeliveryDate` | `ISO8601` | — | — |
| `confirmedAt` | `ISO8601` | — | — |
| `completedAt` | `ISO8601` | — | — |
| `cancelledAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float` | — | — |
| `taxAmount` | `Float` | — | — |
| `totalAmount` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `taxRate` | `Float` | — | — |
| `shippingMethod` | `String` | — | — |
| `shippingCost` | `Float` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `createdAt` | `ISO8601` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### CreateOrderLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderId` | `OrderID!` | — | — |
| `lineNumber` | `Int!` | — | — |
| `productId` | `ProductID` | — | — |
| `productSku` | `String` | — | — |
| `productName` | `String!` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float!` | — | — |
| `jobId` | `JobID` | — | — |
| `estimateLineId` | `EstimateLineID` | — | — |
| `productTemplateId` | `ProductTemplateID` | — | — |
| `productTemplateVersion` | `Int` | — | — |
| `templateConfig` | `JSON` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `notes` | `String` | — | — |
| `groupKey` | `String` | — | — |
| `sortOrder` | `Int` | — | — |
| `attachments` | `[OrderLineFileAttachmentInput!]` | — | — |
| `createdAt` | `ISO8601` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### CreatePriceBracketInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String` | — | — |
| `scopeType` | `PriceBracketScopeType!` | — | — |
| `scopeReference` | `String!` | — | — |
| `customerId` | `CustomerID` | — | — |
| `minQuantity` | `Int!` | — | — |
| `maxQuantity` | `Int` | — | — |
| `rate` | `Float!` | — | — |
| `rateType` | `PriceBracketRateType!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `isActive` | `Boolean` | — | — |
| `validFrom` | `ISO8601` | — | — |
| `validUntil` | `ISO8601` | — | — |

### CreateProductInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String!` | — | — |
| `sku` | `String!` | — | — |
| `description` | `String` | — | — |
| `productType` | `ProductType` | — | — |
| `basePrice` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `costPrice` | `Float` | — | — |
| `defaultProductionKind` | `String` | — | — |
| `defaultCommercialKind` | `String` | — | — |
| `defaultQuantity` | `Int` | — | — |
| `category` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `isActive` | `Boolean` | — | — |
| `notes` | `String` | — | — |

### CreatePurchaseOrderLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `purchaseOrderId` | `PurchaseOrderID!` | — | — |
| `lineNumber` | `Int` | — | — |
| `substrateId` | `SubstrateID` | — | — |
| `description` | `String!` | — | — |
| `supplierProductCode` | `String` | — | — |
| `quantity` | `Float!` | — | — |
| `unit` | `MeasurementUnit` | — | — |
| `unitPrice` | `Float!` | — | — |
| `lineTotal` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `receivedQuantity` | `Float` | — | — |
| `receivedAt` | `ISO8601` | — | — |
| `notes` | `String` | — | — |
| `sortOrder` | `Int` | — | — |

### CreateRecordedCostInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costCenterId` | `CostCenterID` | — | — |
| `costRateId` | `CostRateID` | — | — |
| `jobId` | `JobID` | — | — |
| `quantity` | `Float!` | — | — |
| `unitRate` | `Float` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `description` | `String` | — | — |
| `referenceType` | `String` | — | — |
| `referenceId` | `String` | — | — |
| `recordedAt` | `ISO8601` | — | — |

### CreateSupplierInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String!` | — | — |
| `code` | `String` | — | — |
| `category` | `SupplierCategory` | — | — |
| `externalId` | `String` | — | — |
| `contactName` | `String` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `website` | `String` | — | — |
| `accountNumber` | `String` | — | — |
| `paymentTerms` | `String` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `leadTimeDays` | `Int` | — | — |
| `isActive` | `Boolean` | — | — |
| `notes` | `String` | — | — |
| `tags` | `[String!]` | — | — |

### CreateTaxCodeInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `rate` | `Float!` | — | — |
| `jurisdiction` | `String` | — | — |
| `description` | `String` | — | — |
| `isDefault` | `Boolean` | — | — |
| `isActive` | `Boolean` | — | — |

### CreditNoteLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `description` | `String!` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `orderLineId` | `OrderLineID` | — | — |
| `taxRate` | `Float` | — | — |

### CustomerAccountSummaryPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customer` | `CustomerState` | — | — |
| `orders` | `[OrderState!]!` | — | — |
| `estimates` | `[EstimateState!]!` | — | — |
| `invoices` | `[InvoiceState!]!` | — | — |
| `totalInvoiced` | `Float!` | — | — |
| `totalPaid` | `Float!` | — | — |
| `totalOutstanding` | `Float!` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### CustomerConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[CustomerEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### CustomerEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `CustomerState!` | — | — |
| `cursor` | `String!` | — | — |

### CustomerFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `StringFilter` | — | — |
| `externalId` | `StringFilter` | — | — |
| `email` | `StringFilter` | — | — |
| `phone` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |
| `updatedAt` | `DateFilter` | — | — |

### CustomerPriceOverrideConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[CustomerPriceOverrideEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### CustomerPriceOverrideEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `CustomerPriceOverrideState!` | — | — |
| `cursor` | `String!` | — | — |

### CustomerPriceOverrideFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customerId` | `IDFilter` | — | — |
| `overrideType` | `StringFilter` | — | — |
| `scope` | `StringFilter` | — | — |
| `operationKind` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |

### CustomerPriceOverrideSortField

`PRIORITY`, `CUSTOMER_ID`, `OVERRIDE_TYPE`, `CREATED_AT`, `UPDATED_AT`

### CustomerPriceOverrideSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `CustomerPriceOverrideSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### CustomerPriceOverrideState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CustomerPriceOverrideID!` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `overrideType` | `PriceOverrideType!` | — | — |
| `scope` | `PriceOverrideScope!` | — | — |
| `operationKind` | `String` | — | — |
| `costCategoryId` | `CostCategoryID` | — | — |
| `value` | `Float!` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `priority` | `Int!` | — | — |
| `isActive` | `Boolean!` | — | — |
| `effectiveFrom` | `ISO8601` | — | — |
| `effectiveTo` | `ISO8601` | — | — |
| `notes` | `String` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### CustomerSortField

`NAME`, `CREATED_AT`, `UPDATED_AT`

### CustomerSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `CustomerSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### CustomerState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CustomerID!` | — | — |
| `name` | `String!` | — | — |
| `externalId` | `String` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `notes` | `String` | — | — |
| `isActive` | `Boolean!` | — | — |
| `creditLimit` | `Float` | — | — |
| `creditCurrency` | `CurrencyISO` | — | — |
| `paymentTermsDays` | `Int` | — | — |
| `isCreditHold` | `Boolean!` | — | — |
| `creditHoldReason` | `String` | — | — |
| `defaultTaxCodeId` | `TaxCodeID` | — | — |
| `isTaxExempt` | `Boolean!` | — | — |
| `taxExemptReference` | `String` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `contacts` | `[ContactState!]!` | — | — |
| `addresses` | `[AddressState!]!` | — | — |

### DateFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `eq` | `ISO8601` | — | — |
| `neq` | `ISO8601` | — | — |
| `gt` | `ISO8601` | — | — |
| `gte` | `ISO8601` | — | — |
| `lt` | `ISO8601` | — | — |
| `lte` | `ISO8601` | — | — |

### DeleteAddressPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `success` | `Boolean!` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### DeleteContactPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `success` | `Boolean!` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### DeletePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `success` | `Boolean!` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### DeliveryAddressSnapshot

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `recipientName` | `String` | — | — |
| `recipientOrganization` | `String` | — | — |
| `recipientContactId` | `ContactID` | — | — |
| `street1` | `String` | — | — |
| `street2` | `String` | — | — |
| `city` | `String` | — | — |
| `region` | `String` | — | — |
| `postalCode` | `String` | — | — |
| `country` | `String` | — | — |

### DocumentAttachmentRole

`ORIGINAL_DOCUMENT`, `ACKNOWLEDGEMENT`, `SPECIFICATION`, `RECEIPT`, `CORRESPONDENCE`, `OTHER`

### DuplicateEstimateForCustomerInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateId` | `EstimateID!` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `estimateNumber` | `String` | — | — |
| `adjustPricePercent` | `Float` | — | — |
| `notes` | `String` | — | — |

### DuplicateEstimateForCustomerPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimate` | `EstimateState` | — | — |
| `estimateLines` | `[EstimateLineState!]` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### EntityNote

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `EntityNoteIDSpecTypedID!` | — | — |
| `targetId` | `ID!` | — | — |
| `body` | `String!` | — | — |
| `version` | `Int!` | — | — |
| `contentVersion` | `Int!` | — | — |
| `authorUserId` | `UserID` | — | — |
| `externalAuthorId` | `String` | — | — |
| `externalAuthorName` | `String` | — | — |
| `authoredAt` | `ISO8601` | — | — |
| `sourceIntegrationInstanceId` | `IntegrationInstanceID` | — | — |
| `sourceKey` | `String` | — | — |
| `sourceRevision` | `String` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `updatedByUserId` | `UserID` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### EntityNoteAttributionInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `userId` | `UserID` | — | — |
| `externalAuthorId` | `String` | — | — |
| `externalAuthorName` | `String` | — | — |
| `authoredAt` | `ISO8601` | — | — |

### EntityNoteFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `targetId` | `ID` | — | — |
| `authorUserId` | `UserID` | — | — |
| `sourceIntegrationInstanceId` | `IntegrationInstanceID` | — | — |

### EntityNotePage

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `notes` | `[EntityNote!]!` | — | — |
| `nextCursor` | `String` | — | — |
| `totalCount` | `Int!` | — | — |

### EntityNotePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `entityNote` | `EntityNote` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### EntityNoteReindexResult

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `queuedCount` | `Int!` | — | — |
| `nextCursor` | `String` | — | — |

### EntityNoteSearchHit

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `note` | `EntityNote!` | — | — |
| `similarity` | `Float!` | — | — |

### EntityNoteSearchPage

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `hits` | `[EntityNoteSearchHit!]!` | — | — |
| `nextCursor` | `String` | — | — |
| `visibleCount` | `Int!` | — | — |
| `indexedCount` | `Int!` | — | — |
| `indexingComplete` | `Boolean!` | — | — |
| `embeddingAvailable` | `Boolean!` | — | — |

### EntityNoteSourceInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `integrationInstanceId` | `IntegrationInstanceID!` | — | — |
| `key` | `String!` | — | — |
| `revision` | `String` | — | — |

### EstimateConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[EstimateEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### EstimateCostBreakdownConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[EstimateCostBreakdownEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### EstimateCostBreakdownEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `EstimateCostBreakdownState!` | — | — |
| `cursor` | `String!` | — | — |

### EstimateCostBreakdownState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `EstimateCostBreakdownID!` | — | — |
| `estimateLineId` | `EstimateLineID!` | — | — |
| `operationKind` | `String!` | — | — |
| `operationName` | `String!` | — | — |
| `costCategoryCode` | `String!` | — | — |
| `costType` | `CostType!` | — | — |
| `quantity` | `Float!` | — | — |
| `unit` | `String!` | — | — |
| `unitRate` | `Float!` | — | — |
| `wasteFactor` | `Float!` | — | — |
| `subtotal` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `ISO8601!` | — | — |

### EstimateEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `EstimateState!` | — | — |
| `cursor` | `String!` | — | — |

### EstimateFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateNumber` | `StringFilter` | — | — |
| `status` | `EstimateStatusFilter` | — | — |
| `customerId` | `IDFilter` | — | — |
| `externalId` | `StringFilter` | — | — |

### EstimateLineConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[EstimateLineEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### EstimateLineEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `EstimateLineState!` | — | — |
| `cursor` | `String!` | — | — |

### EstimateLineFileAttachment

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `EstimateLineFileID!` | — | — |
| `estimateLineId` | `EstimateLineID!` | — | — |
| `fileId` | `FileID!` | — | — |
| `componentLocalId` | `String!` | — | — |
| `usageRole` | `ComponentFileUsageRole!` | — | — |
| `pageRange` | `String` | — | — |
| `description` | `String` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### EstimateLineFileAttachmentInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `fileId` | `FileID!` | — | — |
| `componentLocalId` | `String!` | — | — |
| `usageRole` | `ComponentFileUsageRole` | — | — |
| `pageRange` | `String` | — | — |
| `description` | `String` | — | — |
| `sortOrder` | `Int` | — | — |

### EstimateLineFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateId` | `IDFilter` | — | — |
| `productName` | `StringFilter` | — | — |

### EstimateLineSortField

`LINE_NUMBER`, `PRODUCT_NAME`, `LINE_TOTAL`, `CREATED_AT`

### EstimateLineSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `EstimateLineSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### EstimateLineState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `EstimateLineID!` | — | — |
| `estimateId` | `EstimateID!` | — | — |
| `lineNumber` | `Int!` | — | — |
| `productId` | `ProductID` | — | — |
| `productSku` | `String` | — | — |
| `productName` | `String!` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `estimatedCost` | `Float` | — | — |
| `estimatedMarginPercent` | `Float` | — | — |
| `notes` | `String` | — | — |
| `productionBlueprintJSON` | `JSON` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `estimate` | `EstimateState` | — | — |
| `product` | `ProductState` | — | — |
| `attachments` | `[EstimateLineFileAttachment!]!` | — | — |

### EstimateSortField

`ESTIMATE_NUMBER`, `STATUS`, `ISSUE_DATE`, `TOTAL_AMOUNT`, `CREATED_AT`

### EstimateSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `EstimateSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### EstimateState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `EstimateID!` | — | — |
| `estimateNumber` | `String!` | — | — |
| `externalId` | `String` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `status` | `EstimateStatus!` | — | — |
| `issueDate` | `ISO8601!` | — | — |
| `validUntil` | `ISO8601` | — | — |
| `acceptedAt` | `ISO8601` | — | — |
| `rejectedAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float!` | — | — |
| `taxAmount` | `Float!` | — | — |
| `totalAmount` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `taxRate` | `Float` | — | — |
| `convertedToOrderId` | `OrderID` | — | — |
| `revisionNumber` | `Int!` | — | — |
| `parentEstimateId` | `EstimateID` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `customer` | `CustomerState` | — | — |
| `contact` | `ContactState` | — | — |
| `estimateLines` | `[EstimateLineState!]!` | — | — |
| `convertedToOrder` | `OrderState` | — | — |
| `createdByUser` | `UserState` | — | — |

### EstimateStatus

`DRAFT`, `SENT`, `ACCEPTED`, `REJECTED`, `EXPIRED`, `REVISED`

### EstimateStatusFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `eq` | `EstimateStatus` | — | — |
| `neq` | `EstimateStatus` | — | — |
| `in` | `[EstimateStatus!]` | — | — |
| `notIn` | `[EstimateStatus!]` | — | — |

### ExportCostConfigurationPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `csv` | `String!` | — | — |
| `rowCount` | `Int!` | — | — |

### FieldError

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `code` | `String` | — | — |
| `source` | `SourceDiagnostic` | — | — |
| `path` | `String!` | — | — |
| `message` | `String!` | — | — |

### FinishingSpec

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `varnishType` | `String` | — | — |
| `dieType` | `String` | — | — |
| `foilColor` | `PrintColor` | — | — |
| `embossType` | `String` | — | — |
| `depth` | `Length` | — | — |

### FulfillmentCompletionPoint

`DISPATCH`, `DELIVERY`

### GenerateEstimateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `validUntilDays` | `Int` | — | — |
| `marginPercent` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `items` | `[QuoteItemInput!]!` | — | — |
| `estimateNumber` | `String` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |

### GenerateEstimatePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimate` | `EstimateState` | — | — |
| `estimateLines` | `[EstimateLineState!]` | — | — |
| `costBreakdowns` | `[EstimateCostBreakdownState!]` | — | — |
| `feasibilityResults` | `[QuoteItemFeasibility!]` | — | — |
| `operationDurations` | `[QuoteItemOperationDuration!]` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### IDFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `eq` | `ID` | — | — |
| `neq` | `ID` | — | — |
| `in` | `[ID!]` | — | — |
| `notIn` | `[ID!]` | — | — |

### ImportCostConfigurationInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `csv` | `String!` | — | — |
| `mode` | `CostImportMode` | — | — |

### ImportCostConfigurationPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `importedCategories` | `Int!` | — | — |
| `importedMappings` | `Int!` | — | — |
| `importedRates` | `Int!` | — | — |
| `skippedRows` | `Int!` | — | — |
| `warnings` | `[String!]!` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### ImposingConfigInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `components` | `[ComponentRoleInput!]` | — | — |
| `primaryRole` | `String` | — | — |
| `planSelection` | `PlanSelectionInput` | — | — |
| `textBlock` | `ComponentImposingInput` | — | — |
| `cover` | `ComponentImposingInput` | — | — |
| `endpaper` | `ComponentImposingInput` | — | — |

### ImpositionLayoutStatus

`ENGINE`, `SYNTHESIZED`, `PROVISIONAL`, `NONE`

### ImpositionOrientation

`PORTRAIT`, `LANDSCAPE`, `BEST_FIT`

### ImpositionScheme

`WORK_AND_TURN`, `WORK_AND_TUMBLE`, `SHEETWISE`, `WEB_PERFECT`, `OTHER`

### ImpositionSpecState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ImpositionSpecID!` | — | — |
| `componentId` | `ComponentID!` | — | — |
| `name` | `String` | — | — |
| `description` | `String` | — | — |
| `isPrimary` | `Boolean!` | — | — |
| `pagesUp` | `Int` | — | — |
| `sheetsPerForm` | `Int` | — | — |
| `totalForms` | `Int` | — | — |
| `totalPages` | `Int` | — | — |
| `scheme` | `ImpositionScheme` | — | — |
| `orientation` | `ImpositionOrientation` | — | — |
| `bindingType` | `BindingType` | — | — |
| `gutterH` | `Length` | — | — |
| `gutterV` | `Length` | — | — |
| `layout` | `SheetLayout` | — | — |
| `layoutStatus` | `ImpositionLayoutStatus!` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `component` | `ComponentState` | — | — |

### InferenceFinishingInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `laminating` | `Boolean` | — | — |
| `spotVarnish` | `Boolean` | — | — |
| `foilStamping` | `Boolean` | — | — |
| `embossing` | `Boolean` | — | — |
| `debossing` | `Boolean` | — | — |
| `dieCutting` | `Boolean` | — | — |
| `creasing` | `Boolean` | — | — |
| `perforation` | `Boolean` | — | — |
| `drilling` | `Boolean` | — | — |
| `orderedSteps` | `[String!]` | — | — |

### InferenceSpecInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `componentKind` | `String!` | — | — |
| `productionKind` | `String` | — | — |
| `requiresPrinting` | `Boolean` | — | — |
| `frontColorCount` | `Int` | — | — |
| `backColorCount` | `Int` | — | — |
| `hasSpotColors` | `Boolean` | — | — |
| `spotColorCount` | `Int` | — | — |
| `preferredPrintProcess` | `String` | — | — |
| `printFormat` | `String` | — | — |
| `feedType` | `String` | — | — |
| `curingMethod` | `String` | — | — |
| `totalPages` | `Int` | — | — |
| `quantity` | `Int` | — | — |
| `finishing` | `InferenceFinishingInput` | — | — |
| `requiresEndpapers` | `Boolean` | — | — |
| `requiresHeadBands` | `Boolean` | — | — |
| `requiresPreCut` | `Boolean` | — | — |
| `substrateWidthMm` | `Float` | — | — |
| `substrateHeightMm` | `Float` | — | — |
| `substrateWeightGsm` | `Float` | — | — |
| `substrateThicknessMm` | `Float` | — | — |
| `substrateCoating` | `String` | — | — |

### InvoiceConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[InvoiceEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### InvoiceEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `InvoiceState!` | — | — |
| `cursor` | `String!` | — | — |

### InvoiceFileAttachment

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `InvoiceFileID!` | — | — |
| `invoiceId` | `InvoiceID!` | — | — |
| `fileId` | `FileID!` | — | — |
| `documentRole` | `DocumentAttachmentRole!` | — | — |
| `description` | `String` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### InvoiceFileAttachmentInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `fileId` | `FileID!` | — | — |
| `documentRole` | `DocumentAttachmentRole` | — | — |
| `description` | `String` | — | — |
| `sortOrder` | `Int` | — | — |

### InvoiceFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceNumber` | `StringFilter` | — | — |
| `status` | `InvoiceStatusFilter` | — | — |
| `kind` | `StringFilter` | — | — |
| `customerId` | `IDFilter` | — | — |

### InvoiceKind

`INVOICE`, `CREDIT_NOTE`, `PROFORMA`

### InvoiceLineConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[InvoiceLineEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### InvoiceLineEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `InvoiceLineState!` | — | — |
| `cursor` | `String!` | — | — |

### InvoiceLineFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceId` | `IDFilter` | — | — |
| `jobId` | `IDFilter` | — | — |

### InvoiceLineSortField

`LINE_NUMBER`, `LINE_TOTAL`, `CREATED_AT`

### InvoiceLineSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `InvoiceLineSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### InvoiceLineState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `InvoiceLineID!` | — | — |
| `invoiceId` | `InvoiceID!` | — | — |
| `lineNumber` | `Int!` | — | — |
| `orderLineId` | `OrderLineID` | — | — |
| `jobId` | `JobID` | — | — |
| `productSku` | `String` | — | — |
| `description` | `String!` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `invoice` | `InvoiceState` | — | — |
| `orderLine` | `OrderLineState` | — | — |
| `job` | `JobState` | — | — |

### InvoiceOrderInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderId` | `OrderID!` | — | — |
| `invoiceNumber` | `String!` | — | — |
| `issueDate` | `String` | — | — |
| `dueDate` | `String` | — | — |
| `paymentTerms` | `String` | — | — |
| `notes` | `String` | — | — |

### InvoiceOrderPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoice` | `InvoiceState` | — | — |
| `invoiceLines` | `[InvoiceLineState!]` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### InvoiceSortField

`INVOICE_NUMBER`, `STATUS`, `ISSUE_DATE`, `TOTAL_AMOUNT`, `DUE_DATE`, `CREATED_AT`

### InvoiceSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `InvoiceSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### InvoiceState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `InvoiceID!` | — | — |
| `invoiceNumber` | `String!` | — | — |
| `kind` | `InvoiceKind!` | — | — |
| `orderId` | `OrderID` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `status` | `InvoiceStatus!` | — | — |
| `issueDate` | `ISO8601!` | — | — |
| `dueDate` | `ISO8601` | — | — |
| `paidAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float!` | — | — |
| `taxAmount` | `Float!` | — | — |
| `totalAmount` | `Float!` | — | — |
| `paidAmount` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `taxRate` | `Float` | — | — |
| `creditedInvoiceId` | `InvoiceID` | — | — |
| `paymentTerms` | `String` | — | — |
| `paymentMethod` | `String` | — | — |
| `paymentReference` | `String` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `customer` | `CustomerState` | — | — |
| `order` | `OrderState` | — | — |
| `invoiceLines` | `[InvoiceLineState!]!` | — | — |
| `createdByUser` | `UserState` | — | — |
| `attachments` | `[InvoiceFileAttachment!]!` | — | — |

### InvoiceStatus

`DRAFT`, `SENT`, `PARTIALLY_PAID`, `PAID`, `OVERDUE`, `VOID`, `CREDITED`

### InvoiceStatusFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `eq` | `InvoiceStatus` | — | — |
| `neq` | `InvoiceStatus` | — | — |
| `in` | `[InvoiceStatus!]` | — | — |
| `notIn` | `[InvoiceStatus!]` | — | — |

### ISOPaperSubstrate

`PS1`, `PS2`, `PS3`, `PS4`, `PS5`, `PS6`, `PS7`, `PS8`

### IssueCreditNoteInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceId` | `InvoiceID!` | — | — |
| `creditNoteNumber` | `String!` | — | — |
| `reason` | `String` | — | — |
| `lines` | `[CreditNoteLineInput!]` | — | — |

### IssueCreditNotePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `creditNote` | `InvoiceState` | — | — |
| `creditNoteLines` | `[InvoiceLineState!]` | — | — |
| `originalInvoice` | `InvoiceState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### JobCostingSummaryPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `job` | `JobState` | — | — |
| `materialCosts` | `[CostLineItem!]!` | — | — |
| `operationCosts` | `[CostLineItem!]!` | — | — |
| `totalMaterialCost` | `Float!` | — | — |
| `totalOperationCost` | `Float!` | — | — |
| `totalCost` | `Float!` | — | — |
| `sellingPrice` | `Float` | — | — |
| `margin` | `Float` | — | — |
| `recordedCostsAvailable` | `Boolean!` | — | — |
| `recordedCosts` | `[RecordedJobCostLine!]!` | — | — |
| `recordedCostTotals` | `[RecordedJobCostTotal!]!` | — | — |
| `totalRecordedCost` | `Float` | — | — |
| `recordedCostCurrency` | `CurrencyISO` | — | — |
| `sellingPriceCurrency` | `CurrencyISO` | — | — |
| `recordedCostMargin` | `Float` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### JobFromOrderLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderLineId` | `OrderLineID!` | — | — |
| `jobName` | `String!` | — | — |
| `quantity` | `Int` | — | — |
| `productionKind` | `String` | — | — |
| `commercialKind` | `String` | — | — |
| `priority` | `Int` | — | — |

### JobState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `JobID!` | — | — |
| `name` | `String!` | — | — |
| `quantity` | `Int!` | — | — |
| `dueAt` | `ISO8601` | — | — |
| `status` | `JobStatus!` | — | — |
| `jobNumber` | `String` | — | — |
| `externalId` | `String` | — | — |
| `description` | `String` | — | — |
| `maxDeliverableQuantity` | `Int` | — | — |
| `tags` | `[String!]` | — | — |
| `billingCustomerId` | `CustomerID` | — | — |
| `deliveryCustomerId` | `CustomerID` | — | — |
| `estimateId` | `EstimateID` | — | — |
| `sourceTemplateId` | `String` | — | — |
| `sourceTemplateVersion` | `Int` | — | — |
| `jobGroupId` | `JobGroupID` | — | — |
| `priority` | `Int!` | — | — |
| `scheduledStartAt` | `ISO8601` | — | — |
| `scheduledEndAt` | `ISO8601` | — | — |
| `actualStartAt` | `ISO8601` | — | — |
| `actualEndAt` | `ISO8601` | — | — |
| `createdAt` | `ISO8601!` | — | — |
| `updatedAt` | `ISO8601!` | — | — |
| `components` | `[ComponentState!]!` | — | — |
| `operations` | `[OperationState!]!` | — | — |
| `milestones` | `[MilestoneState!]!` | — | — |
| `billingCustomer` | `CustomerState` | — | — |
| `deliveryCustomer` | `CustomerState` | — | — |
| `estimate` | `EstimateState` | — | — |
| `productionKind` | `ProductionKind` | — | — |
| `commercialKind` | `CommercialKind` | — | — |

### JobStatus

`DRAFT`, `RFQ`, `CONFIRMED`, `PREPRESS`, `PRESS`, `POSTPRESS`, `PACKING`, `SHIPPED`, `COMPLETED`, `WAITING`, `CANCELLED`, `EXCEPTION`

### MeasurementUnit

`CLICK`, `CM`, `FT`, `G`, `IMPRESSION`, `IN`, `KG`, `LB`, `M`, `MM`, `OZ`, `PC`, `PT`, `SHEET`

### Media

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String` | — | — |
| `kind` | `MediaKind` | — | — |
| `width` | `Length` | — | — |
| `height` | `Length` | — | — |
| `weight` | `PaperWeight` | — | — |
| `thickness` | `Length` | — | — |
| `coating` | `MediaCoating` | — | — |
| `grainDirection` | `MediaGrainDirection` | — | — |
| `imageableSide` | `MediaImageableSide` | — | — |
| `opacity` | `MediaOpacity` | — | — |
| `printingTechnology` | `MediaPrintingTechnology` | — | — |
| `stockType` | `MediaStockType` | — | — |
| `texture` | `MediaTexture` | — | — |
| `stock` | `String` | — | — |

### MediaCoating

`COATED`, `HIGH_GLOSS`, `GLOSSY`, `MATTE`, `NONE`, `SATIN`, `SEMIGLOSS`

### MediaColor

`WHITE`, `BUFF`, `PINK`, `YELLOW`, `BLUE`, `GREEN`, `GOLDENROD`, `IVORY`, `ORANGE`, `RED`, `CREAM`, `GRAY`, `TAN`, `TRANSPARENT`, `OTHER`

### MediaFluteType

`A`, `B`, `C`, `E`, `F`, `N`, `BC`, `EB`, `MICRO`

### MediaGrainDirection

`ANY`, `LONG`, `SHORT`

### MediaImageableSide

`FRONT`, `BACK`, `BOTH`, `NEITHER`

### MediaKind

`ROLL`, `SHEET`

### MediaOpacity

`OPAQUE`, `TRANSLUCENT`, `TRANSPARENT`

### MediaPrintingTechnology

`DYE_SUBLIMATION`, `ELECTROSTATIC`, `FLEXO`, `GRAVURE`, `INKJET`, `LASER`, `LETTERPRESS`, `OFFSET`, `SCREEN`, `THERMAL`

### MediaStockType

`BIBLE`, `BOND`, `BOOK`, `BRISTOL`, `COATED`, `COVER`, `INDEX`, `LEDGER`, `MANIFOLD`, `NEWSPRINT`, `OFFSET`, `TAG`, `TEXT`

### MediaTexture

`ANTIQUE`, `GLOSSY`, `LINEN`, `MATTE`, `SMOOTH`, `VELLUM`

### MediaType

`BLANKET`, `CORRUGATED_BOARD`, `DISC`, `END_BOARD`, `EMBOSSING_FOIL`, `FILM`, `FOIL`, `GRAVURE_CYLINDER`, `IMAGING_CYLINDER`, `LAMINATING_FOIL`, `MOUNTING_TAPE`, `PAPER`, `PLATE`, `SCREEN`, `SELF_ADHESIVE`, `SHRINK_FOIL`, `SLEEVE`, `SYNTHETIC`, `TEXTILE`, `TRANSPARENCY`, `OTHER`

### MilestoneState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `MilestoneID!` | — | — |
| `jobId` | `JobID!` | — | — |
| `componentId` | `ComponentID` | — | — |
| `externalId` | `String` | — | — |
| `externalStartId` | `String` | — | — |
| `externalCompletionId` | `String` | — | — |
| `name` | `String!` | — | — |
| `description` | `String` | — | — |
| `startDueAt` | `ISO8601` | — | — |
| `startedAt` | `ISO8601` | — | — |
| `dueAt` | `ISO8601` | — | — |
| `completedAt` | `ISO8601` | — | — |
| `cancelledAt` | `ISO8601` | — | — |
| `cancelReason` | `String` | — | — |
| `isStarted` | `Boolean!` | — | — |
| `isCompleted` | `Boolean!` | — | — |
| `isCancelled` | `Boolean!` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `job` | `JobState` | — | — |
| `component` | `ComponentState` | — | — |

### MLDurationPhase

`SETUP`, `RUN`

### OperationCostMappingConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[OperationCostMappingEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### OperationCostMappingEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `OperationCostMappingState!` | — | — |
| `cursor` | `String!` | — | — |

### OperationCostMappingFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `operationKind` | `StringFilter` | — | — |
| `costCategoryId` | `IDFilter` | — | — |
| `costType` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |

### OperationCostMappingSortField

`OPERATION_KIND`, `COST_TYPE`, `CREATED_AT`, `UPDATED_AT`

### OperationCostMappingSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `OperationCostMappingSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### OperationCostMappingState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `OperationCostMappingID!` | — | — |
| `operationKind` | `String!` | — | — |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costType` | `CostType!` | — | — |
| `defaultQuantityFormula` | `String` | — | — |
| `isActive` | `Boolean!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### OperationDurationComparison

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `phase` | `MLDurationPhase!` | — | — |
| `calculatedSeconds` | `Float` | — | — |
| `prediction` | `PublishedDurationPrediction` | — | — |
| `signedDifferenceSeconds` | `Float` | — | — |
| `absoluteDifferenceSeconds` | `Float` | — | — |
| `differencePercent` | `Float` | — | — |
| `flagged` | `Boolean` | — | — |
| `status` | `String!` | — | — |
| `minimumSeconds` | `Float` | — | — |
| `minimumPercent` | `Float` | — | — |

### OperationExecutionAllocation

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `allocationId` | `ScheduleAllocationID!` | — | — |
| `scenarioId` | `ScheduleScenarioID!` | — | — |
| `workCenterId` | `WorkCenterID!` | — | — |
| `workCenterName` | `String!` | — | — |
| `plannedOperationId` | `PlannedOperationID` | — | — |
| `plannedStartAt` | `ISO8601!` | — | — |
| `plannedEndAt` | `ISO8601!` | — | — |
| `setupStartedAt` | `ISO8601!` | — | — |
| `capabilityCode` | `String` | — | — |
| `resolvedParameters` | `JSON` | — | — |

### OperationItemState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `OperationItemID!` | — | — |
| `operationId` | `OperationID!` | — | — |
| `jobId` | `JobID!` | — | — |
| `externalId` | `String` | — | — |
| `label` | `String!` | — | — |
| `sortOrder` | `Int!` | — | — |
| `status` | `OperationItemStatus!` | — | — |
| `workCenterId` | `WorkCenterID` | — | — |
| `parameters` | `JSON` | — | — |
| `estimatedDurationMinutes` | `Int` | — | — |
| `scheduledStartAt` | `ISO8601` | — | — |
| `actualStartAt` | `ISO8601` | — | — |
| `scheduledCompletionAt` | `ISO8601` | — | — |
| `actualCompletionAt` | `ISO8601` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `operation` | `OperationState` | — | — |
| `workCenter` | `WorkCenterState` | — | — |

### OperationItemStatus

`PENDING`, `AVAILABLE`, `RUNNING`, `COMPLETED`, `FAILED`, `CANCELLED`

### OperationKind

`BINDING`, `BOOK_BLOCK_MAKING`, `COLLATING`, `COMB_BINDING`, `CONTOUR_CUTTING`, `CREASING`, `CUTTING`, `DEBOSSING`, `DIE_CUTTING`, `DIGITAL_PRINTING`, `DRILLING`, `EMBOSSING`, `FOIL_STAMPING`, `FOLDING`, `GLUING`, `HEAD_BANDING`, `INKJET_PRINTING`, `FLOOD_COATING`, `LAMINATING`, `OFFSET_PRINTING`, `PACKING`, `PERFECT_BINDING`, `PERFORATING`, `PRECUTTING`, `PRINTING`, `PUNCHING`, `RING_BINDING`, `SADDLE_STITCHING`, `SCORING`, `SEWING`, `SLITTING`, `SPIRAL_BINDING`, `STITCHING`, `STRIP_BINDING`, `CASE_MAKING`, `CASING_IN`, `CUSTOM`, `DRYING`, `ENDPAPER_TIPPING`, `EYELETS`, `HEMMING`, `PLATEMAKING`, `ROUNDING_BACKING`, `SPINE_MILLING`, `SPOT_VARNISH`, `KISS_CUTTING`, `REVERSE_CUTTING`, `PARTIAL_CUTTING`, `WHITE_UNDERPRINT`

### OperationState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `executionAllocation` | `OperationExecutionAllocation` | — | — |
| `id` | `OperationID!` | — | — |
| `jobId` | `JobID!` | — | — |
| `componentId` | `ComponentID` | — | — |
| `componentGroupId` | `ComponentGroupID` | — | — |
| `milestoneId` | `MilestoneID` | — | — |
| `externalId` | `String` | — | — |
| `name` | `String!` | — | — |
| `remarks` | `String` | — | — |
| `kind` | `OperationKind!` | — | — |
| `requiredResourceType` | `String` | — | — |
| `capabilityId` | `CapabilityID` | — | — |
| `requestedWorkCenterId` | `WorkCenterID` | — | — |
| `status` | `OperationStatus!` | — | — |
| `productionQuantity` | `Int` | — | — |
| `expectedDuration` | `Int` | — | — |
| `deadline` | `ISO8601` | — | — |
| `scheduledStartAt` | `ISO8601` | — | — |
| `actualStartAt` | `ISO8601` | — | — |
| `scheduledCompletionAt` | `ISO8601` | — | — |
| `actualCompletionAt` | `ISO8601` | — | — |
| `metadata` | `JSONMap` | — | — |
| `parameters` | `JSON` | — | — |
| `sortOrder` | `Int!` | — | — |
| `outsourcedSupplierId` | `SupplierID` | — | — |
| `outsourcedPurchaseOrderId` | `PurchaseOrderID` | — | — |
| `outsourcedLeadTimeDays` | `Int` | — | — |
| `createdAt` | `ISO8601!` | — | — |
| `updatedAt` | `ISO8601!` | — | — |
| `job` | `JobState` | — | — |
| `component` | `ComponentState` | — | — |
| `componentGroup` | `ComponentGroupState` | — | — |
| `milestone` | `MilestoneState` | — | — |
| `requestedWorkCenter` | `WorkCenterState` | — | — |
| `items` | `[OperationItemState!]!` | — | — |
| `customKind` | `String` | — | — |

### OperationStatus

`PENDING`, `AVAILABLE`, `SETUP`, `RUNNING`, `CLEANUP`, `COMPLETED`, `FAILED`, `STOPPED`, `CANCELLED`, `RESTARTING`

### OrderConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[OrderEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### OrderEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `OrderState!` | — | — |
| `cursor` | `String!` | — | — |

### OrderFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderNumber` | `StringFilter` | — | — |
| `status` | `OrderStatusFilter` | — | — |
| `paymentStatus` | `PaymentStatusFilter` | — | — |
| `customerId` | `IDFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |

### OrderFulfillmentCompletion

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderId` | `OrderID!` | — | — |
| `completionPoint` | `FulfillmentCompletionPoint!` | — | — |
| `outcome` | `RequirementAssessmentOutcome!` | — | — |
| `items` | `[PlannedItemCompletion!]!` | — | — |
| `diagnostics` | `[String!]!` | — | — |
| `diagnosticSummary` | `String!` | — | — |

### OrderLifecyclePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `order` | `OrderState` | — | — |
| `orderLines` | `[OrderLineState!]!` | — | — |
| `estimate` | `EstimateState` | — | — |
| `estimateLines` | `[EstimateLineState!]!` | — | — |
| `invoices` | `[InvoiceState!]!` | — | — |
| `shipments` | `[ShipmentState!]!` | — | — |
| `jobs` | `[JobState!]!` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### OrderLineConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[OrderLineEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### OrderLineEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `OrderLineState!` | — | — |
| `cursor` | `String!` | — | — |

### OrderLineFileAttachment

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `OrderLineFileID!` | — | — |
| `orderLineId` | `OrderLineID!` | — | — |
| `fileId` | `FileID!` | — | — |
| `componentLocalId` | `String!` | — | — |
| `usageRole` | `ComponentFileUsageRole!` | — | — |
| `pageRange` | `String` | — | — |
| `description` | `String` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### OrderLineFileAttachmentInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `fileId` | `FileID!` | — | — |
| `componentLocalId` | `String!` | — | — |
| `usageRole` | `ComponentFileUsageRole` | — | — |
| `pageRange` | `String` | — | — |
| `description` | `String` | — | — |
| `sortOrder` | `Int` | — | — |

### OrderLineFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderId` | `IDFilter` | — | — |
| `productName` | `StringFilter` | — | — |
| `jobId` | `IDFilter` | — | — |
| `groupKey` | `StringFilter` | — | — |

### OrderLineSortField

`LINE_NUMBER`, `PRODUCT_NAME`, `LINE_TOTAL`, `CREATED_AT`

### OrderLineSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `OrderLineSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### OrderLineState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `OrderLineID!` | — | — |
| `tenantId` | `TenantID!` | — | — |
| `orderId` | `OrderID!` | — | — |
| `lineNumber` | `Int!` | — | — |
| `productId` | `ProductID` | — | — |
| `productSku` | `String` | — | — |
| `productName` | `String!` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float!` | — | — |
| `jobId` | `JobID` | — | — |
| `estimateLineId` | `EstimateLineID` | — | — |
| `productTemplateId` | `ProductTemplateID` | — | — |
| `productTemplateVersion` | `Int` | — | — |
| `templateConfig` | `JSON` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `notes` | `String` | — | — |
| `groupKey` | `String` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `order` | `OrderState` | — | — |
| `product` | `ProductState` | — | — |
| `job` | `JobState` | — | — |
| `attachments` | `[OrderLineFileAttachment!]!` | — | — |

### OrderSortField

`ORDER_NUMBER`, `STATUS`, `ORDER_DATE`, `TOTAL_AMOUNT`, `CREATED_AT`

### OrderSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `OrderSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### OrderState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `OrderID!` | — | — |
| `tenantId` | `TenantID!` | — | — |
| `orderNumber` | `String!` | — | — |
| `externalId` | `String` | — | — |
| `poReference` | `String` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `shippingAddressId` | `AddressID` | — | — |
| `estimateId` | `EstimateID` | — | — |
| `status` | `OrderStatus!` | — | — |
| `paymentStatus` | `PaymentStatus!` | — | — |
| `orderDate` | `ISO8601!` | — | — |
| `requiredDeliveryDate` | `ISO8601` | — | — |
| `promisedDeliveryDate` | `ISO8601` | — | — |
| `confirmedAt` | `ISO8601` | — | — |
| `completedAt` | `ISO8601` | — | — |
| `cancelledAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float!` | — | — |
| `taxAmount` | `Float!` | — | — |
| `totalAmount` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `taxRate` | `Float` | — | — |
| `shippingMethod` | `String` | — | — |
| `shippingCost` | `Float` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `customer` | `CustomerState` | — | — |
| `contact` | `ContactState` | — | — |
| `billingAddress` | `AddressState` | — | — |
| `shippingAddress` | `AddressState` | — | — |
| `orderLines` | `[OrderLineState!]!` | — | — |
| `createdByUser` | `UserState` | — | — |

### OrderStatus

`DRAFT`, `CONFIRMED`, `IN_PRODUCTION`, `PARTIALLY_SHIPPED`, `SHIPPED`, `DELIVERED`, `COMPLETED`, `CANCELLED`, `ON_HOLD`

### OrderStatusFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `eq` | `OrderStatus` | — | — |
| `neq` | `OrderStatus` | — | — |
| `in` | `[OrderStatus!]` | — | — |
| `notIn` | `[OrderStatus!]` | — | — |

### OTCRecordPaymentInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceId` | `InvoiceID!` | — | — |
| `amount` | `Float!` | — | — |
| `paymentMethod` | `String` | — | — |
| `paymentReference` | `String` | — | — |
| `paidAt` | `String` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `method` | `PaymentMethod` | — | — |
| `reference` | `String` | — | — |
| `notes` | `String` | — | — |
| `receivedAt` | `ISO8601` | — | — |

### OTCRecordPaymentPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `payment` | `PaymentState` | — | — |
| `invoice` | `InvoiceState` | — | — |
| `order` | `OrderState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### PageInfo

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `hasNextPage` | `Boolean!` | — | — |
| `hasPreviousPage` | `Boolean!` | — | — |
| `startCursor` | `String` | — | — |
| `endCursor` | `String` | — | — |

### PaymentConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[PaymentEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### PaymentEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `PaymentState!` | — | — |
| `cursor` | `String!` | — | — |

### PaymentFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceId` | `IDFilter` | — | — |
| `method` | `StringFilter` | — | — |
| `currency` | `StringFilter` | — | — |

### PaymentMethod

`BANK_TRANSFER`, `CHEQUE`, `CARD`, `DIRECT_DEBIT`, `CREDIT_NOTE`, `CASH`, `OTHER`

### PaymentSortField

`RECEIVED_AT`, `AMOUNT`, `CREATED_AT`

### PaymentSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `PaymentSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### PaymentState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PaymentID!` | — | — |
| `invoiceId` | `InvoiceID!` | — | — |
| `amount` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `method` | `PaymentMethod!` | — | — |
| `reference` | `String` | — | — |
| `notes` | `String` | — | — |
| `receivedAt` | `ISO8601!` | — | — |
| `recordedByUserId` | `UserID` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### PaymentStatus

`UNPAID`, `PARTIALLY_PAID`, `PAID`, `OVERDUE`, `REFUNDED`, `WRITTEN_OFF`

### PaymentStatusFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `eq` | `PaymentStatus` | — | — |
| `neq` | `PaymentStatus` | — | — |
| `in` | `[PaymentStatus!]` | — | — |
| `notIn` | `[PaymentStatus!]` | — | — |

### PlannedItemCompletion

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `plannedDeliveryItemId` | `PlannedDeliveryItemID!` | — | — |
| `completionPoint` | `FulfillmentCompletionPoint!` | — | — |
| `outcome` | `RequirementAssessmentOutcome!` | — | — |
| `knownCreditedQuantity` | `Int!` | — | — |
| `outstandingQuantity` | `Int` | — | — |
| `diagnostics` | `[String!]!` | — | — |

### PlanSelectionInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `recommended` | `Boolean` | — | — |
| `atIndex` | `Int` | — | — |
| `allPlans` | `Int` | — | — |

### PreflightReportState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PreflightReportID!` | — | — |
| `componentId` | `ComponentID!` | — | — |
| `artworkFileId` | `ComponentArtworkFileID` | — | — |
| `status` | `String!` | — | — |
| `profileUsed` | `String!` | — | — |
| `pageCount` | `Int!` | — | — |
| `errorCount` | `Int!` | — | — |
| `pdfVersion` | `String!` | — | — |
| `engineVersion` | `String!` | — | — |
| `report` | `PreflightReport!` | — | — |
| `outputFileId` | `FileID` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `component` | `ComponentState` | — | — |
| `artworkFile` | `ComponentArtworkFileState` | — | — |
| `outputFile` | `FileState` | — | — |

### PrepressOperationKind

`PREFLIGHT`, `RIP`, `CTP`, `PROOF`, `COLOR_CONVERSION`, `IMPOSITION`, `COLOR_MANAGEMENT`, `TRAPPING`, `OTHER`

### PrepressOperationState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PrepressOperationID!` | — | — |
| `componentId` | `ComponentID!` | — | — |
| `kind` | `PrepressOperationKind!` | — | — |
| `status` | `PrepressOperationStatus!` | — | — |
| `notes` | `String` | — | — |
| `assignedUserId` | `UserID` | — | — |
| `outputFileId` | `FileID` | — | — |
| `startedAt` | `String` | — | — |
| `completedAt` | `String` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `component` | `ComponentState` | — | — |
| `assignedUser` | `UserState` | — | — |
| `outputFile` | `FileState` | — | — |

### PrepressOperationStatus

`PENDING`, `IN_PROGRESS`, `COMPLETED`, `FAILED`, `SKIPPED`

### PriceBracketConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[PriceBracketEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### PriceBracketEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `PriceBracketState!` | — | — |
| `cursor` | `String!` | — | — |

### PriceBracketFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `scopeType` | `StringFilter` | — | — |
| `customerId` | `IDFilter` | — | — |
| `currency` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |

### PriceBracketRateType

`PER_UNIT`, `FLAT`

### PriceBracketScopeType

`COST_CATEGORY`, `OPERATION_KIND`, `PRODUCT`

### PriceBracketSortField

`MIN_QUANTITY`, `RATE`, `CREATED_AT`, `UPDATED_AT`

### PriceBracketSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `PriceBracketSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### PriceBracketState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PriceBracketID!` | — | — |
| `name` | `String` | — | — |
| `scopeType` | `PriceBracketScopeType!` | — | — |
| `scopeReference` | `String!` | — | — |
| `customerId` | `CustomerID` | — | — |
| `minQuantity` | `Int!` | — | — |
| `maxQuantity` | `Int` | — | — |
| `rate` | `Float!` | — | — |
| `rateType` | `PriceBracketRateType!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `isActive` | `Boolean!` | — | — |
| `validFrom` | `ISO8601` | — | — |
| `validUntil` | `ISO8601` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### PriceOverrideScope

`ALL_OPERATIONS`, `OPERATION_KIND`, `COST_CATEGORY`

### PriceOverrideType

`RATE_MULTIPLIER`, `FIXED_RATE`, `DISCOUNT_PERCENT`

### ProducibilitySubstrateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `String!` | — | — |
| `name` | `String!` | — | — |
| `width` | `Float!` | — | — |
| `height` | `Float!` | — | — |
| `weight` | `Int!` | — | — |

### ProductConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[ProductEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### ProductEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `ProductState!` | — | — |
| `cursor` | `String!` | — | — |

### ProductFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `StringFilter` | — | — |
| `sku` | `StringFilter` | — | — |
| `productType` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |
| `category` | `StringFilter` | — | — |

### ProductionKind

`SADDLE_STITCHED`, `PERFECT_BOUND`, `WIRE_BOUND`, `CASE_BOUND`, `FLATWORK`, `FOLDED`, `OTHER`

### ProductSortField

`NAME`, `SKU`, `PRODUCT_TYPE`, `CREATED_AT`

### ProductSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `ProductSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### ProductState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ProductID!` | — | — |
| `name` | `String!` | — | — |
| `sku` | `String!` | — | — |
| `description` | `String` | — | — |
| `productType` | `ProductType!` | — | — |
| `basePrice` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `costPrice` | `Float` | — | — |
| `defaultProductionKind` | `String` | — | — |
| `defaultCommercialKind` | `String` | — | — |
| `defaultQuantity` | `Int` | — | — |
| `category` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `isActive` | `Boolean!` | — | — |
| `notes` | `String` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### ProductType

`STANDARD`, `CUSTOM`, `TEMPLATE`

### PurchaseOrderConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[PurchaseOrderEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### PurchaseOrderEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `PurchaseOrderState!` | — | — |
| `cursor` | `String!` | — | — |

### PurchaseOrderFileAttachment

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PurchaseOrderFileID!` | — | — |
| `purchaseOrderId` | `PurchaseOrderID!` | — | — |
| `fileId` | `FileID!` | — | — |
| `documentRole` | `DocumentAttachmentRole!` | — | — |
| `description` | `String` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### PurchaseOrderFileAttachmentInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `fileId` | `FileID!` | — | — |
| `documentRole` | `DocumentAttachmentRole` | — | — |
| `description` | `String` | — | — |
| `sortOrder` | `Int` | — | — |

### PurchaseOrderFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `poNumber` | `StringFilter` | — | — |
| `status` | `PurchaseOrderStatusFilter` | — | — |
| `supplierId` | `IDFilter` | — | — |

### PurchaseOrderLineConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[PurchaseOrderLineEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### PurchaseOrderLineEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `PurchaseOrderLineState!` | — | — |
| `cursor` | `String!` | — | — |

### PurchaseOrderLineFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `purchaseOrderId` | `IDFilter` | — | — |
| `substrateId` | `IDFilter` | — | — |

### PurchaseOrderLineSortField

`LINE_NUMBER`, `LINE_TOTAL`, `CREATED_AT`

### PurchaseOrderLineSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `PurchaseOrderLineSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### PurchaseOrderLineState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PurchaseOrderLineID!` | — | — |
| `purchaseOrderId` | `PurchaseOrderID!` | — | — |
| `lineNumber` | `Int!` | — | — |
| `substrateId` | `SubstrateID` | — | — |
| `description` | `String!` | — | — |
| `supplierProductCode` | `String` | — | — |
| `quantity` | `Float!` | — | — |
| `unit` | `MeasurementUnit!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `lineTotal` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `receivedQuantity` | `Float!` | — | — |
| `receivedAt` | `ISO8601` | — | — |
| `notes` | `String` | — | — |
| `sortOrder` | `Int!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `purchaseOrder` | `PurchaseOrderState` | — | — |

### PurchaseOrderSortField

`PO_NUMBER`, `STATUS`, `ORDER_DATE`, `TOTAL_AMOUNT`, `CREATED_AT`

### PurchaseOrderSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `PurchaseOrderSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### PurchaseOrderState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PurchaseOrderID!` | — | — |
| `poNumber` | `String!` | — | — |
| `supplierId` | `SupplierID!` | — | — |
| `deliveryAddressId` | `AddressID` | — | — |
| `status` | `PurchaseOrderStatus!` | — | — |
| `orderDate` | `ISO8601!` | — | — |
| `expectedDeliveryDate` | `ISO8601` | — | — |
| `receivedAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float!` | — | — |
| `taxAmount` | `Float!` | — | — |
| `totalAmount` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `jobId` | `JobID` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `approvedByUserId` | `UserID` | — | — |
| `approvedAt` | `ISO8601` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `supplier` | `SupplierState` | — | — |
| `purchaseOrderLines` | `[PurchaseOrderLineState!]!` | — | — |
| `createdByUser` | `UserState` | — | — |
| `attachments` | `[PurchaseOrderFileAttachment!]!` | — | — |

### PurchaseOrderStatus

`DRAFT`, `SUBMITTED`, `ACKNOWLEDGED`, `PARTIALLY_RECEIVED`, `RECEIVED`, `CANCELLED`, `DISPUTED`

### PurchaseOrderStatusFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `eq` | `PurchaseOrderStatus` | — | — |
| `neq` | `PurchaseOrderStatus` | — | — |
| `in` | `[PurchaseOrderStatus!]` | — | — |
| `notIn` | `[PurchaseOrderStatus!]` | — | — |

### QuoteItemFeasibility

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `itemIndex` | `Int!` | — | — |
| `productName` | `String!` | — | — |
| `isFeasible` | `Boolean!` | — | — |
| `operationCount` | `Int!` | — | — |
| `infeasibleOperations` | `[String!]!` | — | — |

### QuoteItemInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `productId` | `ProductID` | — | — |
| `productName` | `String!` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int!` | — | — |
| `spec` | `InferenceSpecInput` | — | — |
| `overrideUnitPrice` | `Float` | — | — |
| `operationTimings` | `[QuoteOperationTimingInput!]` | — | — |
| `attachments` | `[EstimateLineFileAttachmentInput!]` | — | — |
| `imposing` | `ImposingConfigInput` | — | — |

### QuoteItemOperationDuration

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `itemIndex` | `Int!` | — | — |
| `calculation` | `CalculatedOperationDuration!` | — | — |
| `comparisons` | `[OperationDurationComparison!]` | — | — |

### QuoteOperationTimingInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `operationIndex` | `Int!` | — | — |
| `workCenterId` | `WorkCenterID` | — | — |
| `capabilityId` | `CapabilityID` | — | — |
| `setupDurationSeconds` | `Float` | — | — |
| `runDurationSeconds` | `Float` | — | — |
| `productionQuantity` | `Float` | — | — |
| `productionUnit` | `MeasurementUnit` | — | — |

### QuotingReadinessPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `isReady` | `Boolean!` | — | — |
| `configuredOperationKinds` | `[String!]!` | — | — |
| `unconfiguredOperationKinds` | `[String!]!` | — | — |
| `unsupportedOperationKinds` | `[String!]!` | — | — |
| `categoriesWithoutRates` | `[String!]!` | — | — |
| `warnings` | `[String!]!` | — | — |
| `summary` | `String!` | — | — |

### RecordedCostConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[RecordedCostEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### RecordedCostEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `RecordedCostState!` | — | — |
| `cursor` | `String!` | — | — |

### RecordedCostFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `costCategoryId` | `IDFilter` | — | — |
| `costCenterId` | `IDFilter` | — | — |
| `jobId` | `IDFilter` | — | — |
| `currency` | `StringFilter` | — | — |
| `recordedAt` | `DateFilter` | — | — |
| `createdAt` | `DateFilter` | — | — |
| `updatedAt` | `DateFilter` | — | — |

### RecordedCostSortField

`TOTAL_COST`, `QUANTITY`, `RECORDED_AT`, `CREATED_AT`, `UPDATED_AT`

### RecordedCostSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `RecordedCostSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### RecordedCostState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `RecordedCostID!` | — | — |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costCenterId` | `CostCenterID` | — | — |
| `costRateId` | `CostRateID` | — | — |
| `jobId` | `JobID` | — | — |
| `recordedByUserId` | `UserID` | — | — |
| `quantity` | `Float!` | — | — |
| `unitRate` | `Float!` | — | — |
| `totalCost` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `description` | `String` | — | — |
| `referenceType` | `String` | — | — |
| `referenceId` | `String` | — | — |
| `recordedAt` | `ISO8601!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### RecordedJobCostLine

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `recordedCostId` | `RecordedCostID!` | — | — |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costCategoryCode` | `String` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Float!` | — | — |
| `unitRate` | `Float!` | — | — |
| `totalCost` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |

### RecordedJobCostTotal

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `currency` | `CurrencyISO!` | — | — |
| `totalCost` | `Float!` | — | — |

### RequirementAssessmentOutcome

`SATISFIED`, `UNSATISFIED`, `UNKNOWN`, `NOT_APPLICABLE`

### ResourceType

`MACHINE`, `HUMAN`, `TOOL`, `LOCATION`

### ReviseEstimateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateId` | `EstimateID!` | — | — |
| `notes` | `String` | — | — |

### ReviseEstimatePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `newEstimate` | `EstimateState` | — | — |
| `newEstimateLines` | `[EstimateLineState!]` | — | — |
| `originalEstimate` | `EstimateState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### ShipmentPackageState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ShipmentPackageID!` | — | — |
| `shipmentId` | `ShipmentID!` | — | — |
| `packageNumber` | `Int!` | — | — |
| `trackingNumber` | `String` | — | — |
| `length` | `Float` | — | — |
| `width` | `Float` | — | — |
| `height` | `Float` | — | — |
| `weight` | `Float` | — | — |
| `packagingType` | `String` | — | — |
| `notes` | `String` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `shipment` | `ShipmentState` | — | — |
| `items` | `[ShipmentItemState!]!` | — | — |

### ShipmentState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ShipmentID!` | — | — |
| `orderId` | `OrderID` | — | — |
| `carrierId` | `CarrierID` | — | — |
| `destinationSnapshot` | `DeliveryAddressSnapshot` | — | — |
| `consolidationCompatibility` | `ConsolidationCompatibility!` | — | — |
| `shippingAddressId` | `AddressID` | — | — |
| `shipmentNumber` | `String` | — | — |
| `trackingNumber` | `String` | — | — |
| `trackingUrl` | `String` | — | — |
| `status` | `ShipmentStatus!` | — | — |
| `totalWeight` | `Float` | — | — |
| `totalPackages` | `Int` | — | — |
| `shippingCost` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `estimatedDeliveryAt` | `ISO8601` | — | — |
| `shippedAt` | `ISO8601` | — | — |
| `deliveredAt` | `ISO8601` | — | — |
| `notes` | `String` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |
| `order` | `OrderState` | — | — |
| `carrier` | `CarrierState` | — | — |
| `packages` | `[ShipmentPackageState!]!` | — | — |

### ShipmentStatus

`DRAFT`, `READY_FOR_PICKUP`, `PICKED_UP`, `IN_TRANSIT`, `OUT_FOR_DELIVERY`, `DELIVERED`, `FAILED_DELIVERY`, `RETURNED`, `CANCELLED`

### SortDirection

`ASC`, `DESC`

### SourceDiagnostic

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `document` | `String!` | — | — |
| `startLine` | `Int!` | — | — |
| `startColumn` | `Int!` | — | — |
| `endLine` | `Int!` | — | — |
| `endColumn` | `Int!` | — | — |
| `startOffset` | `Int!` | — | — |
| `endOffset` | `Int!` | — | — |
| `elementID` | `String` | — | — |
| `attribute` | `String` | — | — |
| `inputPath` | `String` | — | — |

### StringFilter

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `eq` | `String` | — | — |
| `neq` | `String` | — | — |
| `contains` | `String` | — | — |
| `startsWith` | `String` | — | — |
| `endsWith` | `String` | — | — |
| `in` | `[String!]` | — | — |
| `notIn` | `[String!]` | — | — |

### SubstrateState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `SubstrateID!` | — | — |
| `externalId` | `String` | — | — |
| `name` | `String!` | — | — |
| `code` | `String` | — | — |
| `externalCode` | `String` | — | — |
| `supplierCode` | `String` | — | — |
| `supplierId` | `SupplierID` | — | — |
| `manufacturer` | `String` | — | — |
| `brand` | `String` | — | — |
| `kind` | `MediaKind` | — | — |
| `mediaType` | `MediaType` | — | — |
| `isoPaperSubstrate` | `ISOPaperSubstrate` | — | — |
| `width` | `Length` | — | — |
| `height` | `Length` | — | — |
| `weight` | `PaperWeight` | — | — |
| `thickness` | `Length` | — | — |
| `coatings` | `[MediaCoating!]` | — | — |
| `grainDirection` | `MediaGrainDirection` | — | — |
| `imageableSide` | `MediaImageableSide` | — | — |
| `opacity` | `MediaOpacity` | — | — |
| `printingTechnology` | `MediaPrintingTechnology` | — | — |
| `stockType` | `MediaStockType` | — | — |
| `texture` | `MediaTexture` | — | — |
| `color` | `MediaColor` | — | — |
| `preAppliedCoatings` | `[MediaCoating!]` | — | — |
| `shrinkIndex` | `[Float!]` | — | — |
| `brightness` | `Float` | — | — |
| `cieWhiteness` | `Float` | — | — |
| `grade` | `Int` | — | — |
| `fluteType` | `MediaFluteType` | — | — |
| `recycledPercentage` | `Float` | — | — |
| `buyerSupplied` | `Boolean!` | — | — |
| `moisture` | `Float` | — | — |
| `supplierLeadTimeDays` | `Int` | — | — |
| `isActive` | `Boolean!` | — | — |
| `reorderThreshold` | `Float` | — | — |
| `reorderUnit` | `MeasurementUnit` | — | — |
| `unitCost` | `Float` | — | — |
| `costCurrency` | `CurrencyISO` | — | — |
| `notes` | `String` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### SupplierCategory

`SUBSTRATE`, `INK`, `CONSUMABLES`, `OUTSOURCE`, `EQUIPMENT`, `LOGISTICS`, `OTHER`

### SupplierConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[SupplierEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### SupplierEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `SupplierState!` | — | — |
| `cursor` | `String!` | — | — |

### SupplierFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `StringFilter` | — | — |
| `category` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |

### SupplierSortField

`NAME`, `CATEGORY`, `CREATED_AT`

### SupplierSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `SupplierSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### SupplierState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `SupplierID!` | — | — |
| `name` | `String!` | — | — |
| `code` | `String` | — | — |
| `category` | `SupplierCategory!` | — | — |
| `externalId` | `String` | — | — |
| `contactName` | `String` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `website` | `String` | — | — |
| `accountNumber` | `String` | — | — |
| `paymentTerms` | `String` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `leadTimeDays` | `Int` | — | — |
| `isActive` | `Boolean!` | — | — |
| `notes` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### TaxCodeConnection

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `edges` | `[TaxCodeEdge!]!` | — | — |
| `pageInfo` | `PageInfo!` | — | — |
| `totalCount` | `Int` | — | — |

### TaxCodeEdge

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `node` | `TaxCodeState!` | — | — |
| `cursor` | `String!` | — | — |

### TaxCodeFilterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `code` | `StringFilter` | — | — |
| `name` | `StringFilter` | — | — |
| `jurisdiction` | `StringFilter` | — | — |
| `isActive` | `BoolFilter` | — | — |
| `isDefault` | `BoolFilter` | — | — |

### TaxCodeSortField

`CODE`, `NAME`, `RATE`, `CREATED_AT`, `UPDATED_AT`

### TaxCodeSortInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `field` | `TaxCodeSortField!` | — | — |
| `direction` | `SortDirection!` | — | — |

### TaxCodeState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `TaxCodeID!` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `rate` | `Float!` | — | — |
| `jurisdiction` | `String` | — | — |
| `description` | `String` | — | — |
| `isDefault` | `Boolean!` | — | — |
| `isActive` | `Boolean!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### UpdateAddressInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `timezone` | `String` | — | — |
| `customerId` | `CustomerID` | — | — |
| `contactId` | `ContactID` | — | — |
| `supplierId` | `SupplierID` | — | — |
| `externalId` | `String` | — | — |
| `addressType` | `AddressType` | — | — |
| `street1` | `String` | — | — |
| `street2` | `String` | — | — |
| `city` | `String` | — | — |
| `state` | `String` | — | — |
| `postalCode` | `String` | — | — |
| `country` | `String` | — | — |
| `isDefault` | `Boolean` | — | — |

### UpdateBusinessUnitInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `externalId` | `String` | — | — |
| `parentId` | `BusinessUnitID` | — | — |
| `name` | `String` | — | — |
| `code` | `String` | — | — |
| `description` | `String` | — | — |
| `isActive` | `Boolean` | — | — |

### UpdateContactInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customerId` | `CustomerID` | — | — |
| `externalId` | `String` | — | — |
| `firstName` | `String` | — | — |
| `lastName` | `String` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `jobTitle` | `String` | — | — |
| `isPrimary` | `Boolean` | — | — |

### UpdateCostCategoryInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `externalId` | `String` | — | — |
| `name` | `String` | — | — |
| `code` | `String` | — | — |
| `description` | `String` | — | — |
| `unit` | `CostCategoryUnit` | — | — |
| `isActive` | `Boolean` | — | — |

### UpdateCostCenterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `externalId` | `String` | — | — |
| `businessUnitId` | `BusinessUnitID` | — | — |
| `name` | `String` | — | — |
| `code` | `String` | — | — |
| `description` | `String` | — | — |
| `isActive` | `Boolean` | — | — |

### UpdateCostRateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `costCategoryId` | `CostCategoryID` | — | — |
| `costCenterId` | `CostCenterID` | — | — |
| `rate` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `effectiveFrom` | `ISO8601` | — | — |
| `effectiveTo` | `ISO8601` | — | — |

### UpdateCustomerInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String` | — | — |
| `externalId` | `String` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `notes` | `String` | — | — |
| `isActive` | `Boolean` | — | — |
| `creditLimit` | `Float` | — | — |
| `creditCurrency` | `CurrencyISO` | — | — |
| `paymentTermsDays` | `Int` | — | — |
| `isCreditHold` | `Boolean` | — | — |
| `creditHoldReason` | `String` | — | — |
| `defaultTaxCodeId` | `TaxCodeID` | — | — |
| `isTaxExempt` | `Boolean` | — | — |
| `taxExemptReference` | `String` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### UpdateCustomerPriceOverrideInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customerId` | `CustomerID` | — | — |
| `overrideType` | `PriceOverrideType` | — | — |
| `scope` | `PriceOverrideScope` | — | — |
| `operationKind` | `String` | — | — |
| `costCategoryId` | `CostCategoryID` | — | — |
| `value` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `priority` | `Int` | — | — |
| `isActive` | `Boolean` | — | — |
| `effectiveFrom` | `ISO8601` | — | — |
| `effectiveTo` | `ISO8601` | — | — |
| `notes` | `String` | — | — |

### UpdateEntityNoteInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `body` | `String!` | — | — |
| `attribution` | `EntityNoteAttributionInput` | — | — |
| `sourceRevision` | `String` | — | — |

### UpdateEstimateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateNumber` | `String` | — | — |
| `externalId` | `String` | — | — |
| `customerId` | `CustomerID` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `status` | `EstimateStatus` | — | — |
| `issueDate` | `ISO8601` | — | — |
| `validUntil` | `ISO8601` | — | — |
| `acceptedAt` | `ISO8601` | — | — |
| `rejectedAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float` | — | — |
| `taxAmount` | `Float` | — | — |
| `totalAmount` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `taxRate` | `Float` | — | — |
| `convertedToOrderId` | `OrderID` | — | — |
| `revisionNumber` | `Int` | — | — |
| `parentEstimateId` | `EstimateID` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### UpdateEstimateLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateId` | `EstimateID` | — | — |
| `lineNumber` | `Int` | — | — |
| `productId` | `ProductID` | — | — |
| `productSku` | `String` | — | — |
| `productName` | `String` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int` | — | — |
| `unitPrice` | `Float` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `estimatedCost` | `Float` | — | — |
| `estimatedMarginPercent` | `Float` | — | — |
| `notes` | `String` | — | — |
| `sortOrder` | `Int` | — | — |
| `attachments` | `[EstimateLineFileAttachmentInput!]` | — | — |

### UpdateInvoiceInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceNumber` | `String` | — | — |
| `kind` | `InvoiceKind` | — | — |
| `orderId` | `OrderID` | — | — |
| `customerId` | `CustomerID` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `status` | `InvoiceStatus` | — | — |
| `issueDate` | `ISO8601` | — | — |
| `dueDate` | `ISO8601` | — | — |
| `paidAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float` | — | — |
| `taxAmount` | `Float` | — | — |
| `totalAmount` | `Float` | — | — |
| `paidAmount` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `taxRate` | `Float` | — | — |
| `creditedInvoiceId` | `InvoiceID` | — | — |
| `paymentTerms` | `String` | — | — |
| `paymentMethod` | `String` | — | — |
| `paymentReference` | `String` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `attachments` | `[InvoiceFileAttachmentInput!]` | — | — |

### UpdateInvoiceLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceId` | `InvoiceID` | — | — |
| `lineNumber` | `Int` | — | — |
| `orderLineId` | `OrderLineID` | — | — |
| `jobId` | `JobID` | — | — |
| `productSku` | `String` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int` | — | — |
| `unitPrice` | `Float` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `sortOrder` | `Int` | — | — |

### UpdateOperationCostMappingInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `operationKind` | `String` | — | — |
| `costCategoryId` | `CostCategoryID` | — | — |
| `costType` | `CostType` | — | — |
| `defaultQuantityFormula` | `String` | — | — |
| `isActive` | `Boolean` | — | — |

### UpdateOrderInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderNumber` | `String` | — | — |
| `externalId` | `String` | — | — |
| `poReference` | `String` | — | — |
| `customerId` | `CustomerID` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `shippingAddressId` | `AddressID` | — | — |
| `estimateId` | `EstimateID` | — | — |
| `status` | `OrderStatus` | — | — |
| `paymentStatus` | `PaymentStatus` | — | — |
| `orderDate` | `ISO8601` | — | — |
| `requiredDeliveryDate` | `ISO8601` | — | — |
| `promisedDeliveryDate` | `ISO8601` | — | — |
| `confirmedAt` | `ISO8601` | — | — |
| `completedAt` | `ISO8601` | — | — |
| `cancelledAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float` | — | — |
| `taxAmount` | `Float` | — | — |
| `totalAmount` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `taxRate` | `Float` | — | — |
| `shippingMethod` | `String` | — | — |
| `shippingCost` | `Float` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### UpdateOrderLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderId` | `OrderID` | — | — |
| `lineNumber` | `Int` | — | — |
| `productId` | `ProductID` | — | — |
| `productSku` | `String` | — | — |
| `productName` | `String` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int` | — | — |
| `unitPrice` | `Float` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float` | — | — |
| `jobId` | `JobID` | — | — |
| `estimateLineId` | `EstimateLineID` | — | — |
| `productTemplateId` | `ProductTemplateID` | — | — |
| `productTemplateVersion` | `Int` | — | — |
| `templateConfig` | `JSON` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `notes` | `String` | — | — |
| `groupKey` | `String` | — | — |
| `sortOrder` | `Int` | — | — |
| `attachments` | `[OrderLineFileAttachmentInput!]` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### UpdatePriceBracketInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String` | — | — |
| `scopeType` | `PriceBracketScopeType` | — | — |
| `scopeReference` | `String` | — | — |
| `customerId` | `CustomerID` | — | — |
| `minQuantity` | `Int` | — | — |
| `maxQuantity` | `Int` | — | — |
| `rate` | `Float` | — | — |
| `rateType` | `PriceBracketRateType` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `isActive` | `Boolean` | — | — |
| `validFrom` | `ISO8601` | — | — |
| `validUntil` | `ISO8601` | — | — |

### UpdateProductInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String` | — | — |
| `sku` | `String` | — | — |
| `description` | `String` | — | — |
| `productType` | `ProductType` | — | — |
| `basePrice` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `costPrice` | `Float` | — | — |
| `defaultProductionKind` | `String` | — | — |
| `defaultCommercialKind` | `String` | — | — |
| `defaultQuantity` | `Int` | — | — |
| `category` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `isActive` | `Boolean` | — | — |
| `notes` | `String` | — | — |

### UpdatePurchaseOrderInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `poNumber` | `String` | — | — |
| `supplierId` | `SupplierID` | — | — |
| `deliveryAddressId` | `AddressID` | — | — |
| `status` | `PurchaseOrderStatus` | — | — |
| `orderDate` | `ISO8601` | — | — |
| `expectedDeliveryDate` | `ISO8601` | — | — |
| `receivedAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float` | — | — |
| `taxAmount` | `Float` | — | — |
| `totalAmount` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `jobId` | `JobID` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `approvedByUserId` | `UserID` | — | — |
| `approvedAt` | `ISO8601` | — | — |
| `attachments` | `[PurchaseOrderFileAttachmentInput!]` | — | — |

### UpdatePurchaseOrderLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `purchaseOrderId` | `PurchaseOrderID` | — | — |
| `lineNumber` | `Int` | — | — |
| `substrateId` | `SubstrateID` | — | — |
| `description` | `String` | — | — |
| `supplierProductCode` | `String` | — | — |
| `quantity` | `Float` | — | — |
| `unit` | `MeasurementUnit` | — | — |
| `unitPrice` | `Float` | — | — |
| `lineTotal` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `receivedQuantity` | `Float` | — | — |
| `receivedAt` | `ISO8601` | — | — |
| `notes` | `String` | — | — |
| `sortOrder` | `Int` | — | — |

### UpdateRecordedCostInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `costCategoryId` | `CostCategoryID` | — | — |
| `costCenterId` | `CostCenterID` | — | — |
| `costRateId` | `CostRateID` | — | — |
| `jobId` | `JobID` | — | — |
| `quantity` | `Float` | — | — |
| `unitRate` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `description` | `String` | — | — |
| `referenceType` | `String` | — | — |
| `referenceId` | `String` | — | — |
| `recordedAt` | `ISO8601` | — | — |

### UpdateSupplierInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String` | — | — |
| `code` | `String` | — | — |
| `category` | `SupplierCategory` | — | — |
| `externalId` | `String` | — | — |
| `contactName` | `String` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `website` | `String` | — | — |
| `accountNumber` | `String` | — | — |
| `paymentTerms` | `String` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `leadTimeDays` | `Int` | — | — |
| `isActive` | `Boolean` | — | — |
| `notes` | `String` | — | — |
| `tags` | `[String!]` | — | — |

### UpdateTaxCodeInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `name` | `String` | — | — |
| `code` | `String` | — | — |
| `rate` | `Float` | — | — |
| `jurisdiction` | `String` | — | — |
| `description` | `String` | — | — |
| `isDefault` | `Boolean` | — | — |
| `isActive` | `Boolean` | — | — |

### UpsertAddressInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `timezone` | `String` | — | — |
| `id` | `AddressID` | — | — |
| `customerId` | `CustomerID` | — | — |
| `contactId` | `ContactID` | — | — |
| `supplierId` | `SupplierID` | — | — |
| `externalId` | `String` | — | — |
| `addressType` | `AddressType!` | — | — |
| `street1` | `String!` | — | — |
| `street2` | `String` | — | — |
| `city` | `String!` | — | — |
| `state` | `String` | — | — |
| `postalCode` | `String` | — | — |
| `country` | `String!` | — | — |
| `isDefault` | `Boolean` | — | — |

### UpsertAddressPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `address` | `AddressState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertBusinessUnitInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `BusinessUnitID` | — | — |
| `externalId` | `String` | — | — |
| `parentId` | `BusinessUnitID` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `description` | `String` | — | — |
| `isActive` | `Boolean` | — | — |

### UpsertBusinessUnitPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `businessUnit` | `BusinessUnitState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertContactInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ContactID` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `externalId` | `String` | — | — |
| `firstName` | `String!` | — | — |
| `lastName` | `String!` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `jobTitle` | `String` | — | — |
| `isPrimary` | `Boolean` | — | — |
| `createdAt` | `ISO8601` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### UpsertContactPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `contact` | `ContactState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertCostCategoryInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CostCategoryID` | — | — |
| `externalId` | `String` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `description` | `String` | — | — |
| `unit` | `CostCategoryUnit!` | — | — |
| `isActive` | `Boolean` | — | — |

### UpsertCostCategoryPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `costCategory` | `CostCategoryState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertCostCenterInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CostCenterID` | — | — |
| `externalId` | `String` | — | — |
| `businessUnitId` | `BusinessUnitID!` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `description` | `String` | — | — |
| `isActive` | `Boolean` | — | — |

### UpsertCostCenterPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `costCenter` | `CostCenterState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertCostRateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CostRateID` | — | — |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costCenterId` | `CostCenterID` | — | — |
| `rate` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `effectiveFrom` | `String` | — | — |
| `effectiveTo` | `String` | — | — |

### UpsertCostRatePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `costRate` | `CostRateState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertCustomerInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CustomerID` | — | — |
| `name` | `String!` | — | — |
| `externalId` | `String` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `notes` | `String` | — | — |
| `isActive` | `Boolean` | — | — |
| `creditLimit` | `Float` | — | — |
| `creditCurrency` | `CurrencyISO` | — | — |
| `paymentTermsDays` | `Int` | — | — |
| `isCreditHold` | `Boolean` | — | — |
| `creditHoldReason` | `String` | — | — |
| `defaultTaxCodeId` | `TaxCodeID` | — | — |
| `isTaxExempt` | `Boolean` | — | — |
| `taxExemptReference` | `String` | — | — |
| `createdAt` | `ISO8601` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### UpsertCustomerPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customer` | `CustomerState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertCustomerPriceOverrideInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `CustomerPriceOverrideID` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `overrideType` | `PriceOverrideType!` | — | — |
| `scope` | `PriceOverrideScope!` | — | — |
| `operationKind` | `String` | — | — |
| `costCategoryId` | `CostCategoryID` | — | — |
| `value` | `Float!` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `priority` | `Int` | — | — |
| `isActive` | `Boolean` | — | — |
| `effectiveFrom` | `ISO8601` | — | — |
| `effectiveTo` | `ISO8601` | — | — |
| `notes` | `String` | — | — |

### UpsertCustomerPriceOverridePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `customerPriceOverride` | `CustomerPriceOverrideState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertEstimateInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `EstimateID` | — | — |
| `estimateNumber` | `String!` | — | — |
| `externalId` | `String` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `status` | `EstimateStatus` | — | — |
| `issueDate` | `ISO8601!` | — | — |
| `validUntil` | `ISO8601` | — | — |
| `acceptedAt` | `ISO8601` | — | — |
| `rejectedAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float!` | — | — |
| `taxAmount` | `Float!` | — | — |
| `totalAmount` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `taxRate` | `Float` | — | — |
| `convertedToOrderId` | `OrderID` | — | — |
| `revisionNumber` | `Int` | — | — |
| `parentEstimateId` | `EstimateID` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `createdAt` | `ISO8601` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### UpsertEstimateLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `EstimateLineID` | — | — |
| `estimateId` | `EstimateID!` | — | — |
| `lineNumber` | `Int!` | — | — |
| `productId` | `ProductID` | — | — |
| `productSku` | `String` | — | — |
| `productName` | `String!` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `estimatedCost` | `Float` | — | — |
| `estimatedMarginPercent` | `Float` | — | — |
| `notes` | `String` | — | — |
| `sortOrder` | `Int` | — | — |
| `attachments` | `[EstimateLineFileAttachmentInput!]` | — | — |

### UpsertEstimateLinePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimateLine` | `EstimateLineState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertEstimatePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `estimate` | `EstimateState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertInvoiceInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `InvoiceID` | — | — |
| `invoiceNumber` | `String!` | — | — |
| `kind` | `InvoiceKind!` | — | — |
| `orderId` | `OrderID` | — | — |
| `customerId` | `CustomerID!` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `status` | `InvoiceStatus` | — | — |
| `issueDate` | `ISO8601!` | — | — |
| `dueDate` | `ISO8601` | — | — |
| `paidAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float!` | — | — |
| `taxAmount` | `Float!` | — | — |
| `totalAmount` | `Float!` | — | — |
| `paidAmount` | `Float` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `taxRate` | `Float` | — | — |
| `creditedInvoiceId` | `InvoiceID` | — | — |
| `paymentTerms` | `String` | — | — |
| `paymentMethod` | `String` | — | — |
| `paymentReference` | `String` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `attachments` | `[InvoiceFileAttachmentInput!]` | — | — |

### UpsertInvoiceLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `InvoiceLineID` | — | — |
| `invoiceId` | `InvoiceID!` | — | — |
| `lineNumber` | `Int!` | — | — |
| `orderLineId` | `OrderLineID` | — | — |
| `jobId` | `JobID` | — | — |
| `productSku` | `String` | — | — |
| `description` | `String!` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `sortOrder` | `Int` | — | — |

### UpsertInvoiceLinePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoiceLine` | `InvoiceLineState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertInvoicePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `invoice` | `InvoiceState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertOperationCostMappingInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `OperationCostMappingID` | — | — |
| `operationKind` | `String!` | — | — |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costType` | `CostType!` | — | — |
| `defaultQuantityFormula` | `String` | — | — |
| `isActive` | `Boolean` | — | — |

### UpsertOperationCostMappingPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `operationCostMapping` | `OperationCostMappingState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertOrderInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `OrderID` | — | — |
| `orderNumber` | `String!` | — | — |
| `externalId` | `String` | — | — |
| `poReference` | `String` | — | — |
| `customerId` | `CustomerID` | — | — |
| `contactId` | `ContactID` | — | — |
| `billingAddressId` | `AddressID` | — | — |
| `shippingAddressId` | `AddressID` | — | — |
| `estimateId` | `EstimateID` | — | — |
| `status` | `OrderStatus` | — | — |
| `paymentStatus` | `PaymentStatus` | — | — |
| `orderDate` | `ISO8601` | — | — |
| `requiredDeliveryDate` | `ISO8601` | — | — |
| `promisedDeliveryDate` | `ISO8601` | — | — |
| `confirmedAt` | `ISO8601` | — | — |
| `completedAt` | `ISO8601` | — | — |
| `cancelledAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float` | — | — |
| `taxAmount` | `Float` | — | — |
| `totalAmount` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `taxRate` | `Float` | — | — |
| `shippingMethod` | `String` | — | — |
| `shippingCost` | `Float` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `createdByUserId` | `UserID` | — | — |
| `createdAt` | `ISO8601` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### UpsertOrderLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `OrderLineID` | — | — |
| `orderId` | `OrderID` | — | — |
| `lineNumber` | `Int!` | — | — |
| `productId` | `ProductID` | — | — |
| `productSku` | `String` | — | — |
| `productName` | `String!` | — | — |
| `description` | `String` | — | — |
| `quantity` | `Int!` | — | — |
| `unitPrice` | `Float!` | — | — |
| `discountPercent` | `Float` | — | — |
| `discountAmount` | `Float` | — | — |
| `taxRate` | `Float` | — | — |
| `lineTotal` | `Float!` | — | — |
| `jobId` | `JobID` | — | — |
| `estimateLineId` | `EstimateLineID` | — | — |
| `productTemplateId` | `ProductTemplateID` | — | — |
| `productTemplateVersion` | `Int` | — | — |
| `templateConfig` | `JSON` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `notes` | `String` | — | — |
| `groupKey` | `String` | — | — |
| `sortOrder` | `Int` | — | — |
| `attachments` | `[OrderLineFileAttachmentInput!]` | — | — |
| `createdAt` | `ISO8601` | — | — |
| `updatedAt` | `ISO8601` | — | — |

### UpsertOrderLinePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `orderLine` | `OrderLineState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertOrderPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `order` | `OrderState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertPriceBracketInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PriceBracketID` | — | — |
| `name` | `String` | — | — |
| `scopeType` | `PriceBracketScopeType!` | — | — |
| `scopeReference` | `String!` | — | — |
| `customerId` | `CustomerID` | — | — |
| `minQuantity` | `Int!` | — | — |
| `maxQuantity` | `Int` | — | — |
| `rate` | `Float!` | — | — |
| `rateType` | `PriceBracketRateType!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `isActive` | `Boolean` | — | — |
| `validFrom` | `ISO8601` | — | — |
| `validUntil` | `ISO8601` | — | — |

### UpsertPriceBracketPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `priceBracket` | `PriceBracketState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertProductInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `ProductID` | — | — |
| `name` | `String!` | — | — |
| `sku` | `String!` | — | — |
| `description` | `String` | — | — |
| `productType` | `ProductType` | — | — |
| `basePrice` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `costPrice` | `Float` | — | — |
| `defaultProductionKind` | `String` | — | — |
| `defaultCommercialKind` | `String` | — | — |
| `defaultQuantity` | `Int` | — | — |
| `category` | `String` | — | — |
| `tags` | `[String!]` | — | — |
| `isActive` | `Boolean` | — | — |
| `notes` | `String` | — | — |

### UpsertProductPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `product` | `ProductState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertPurchaseOrderInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PurchaseOrderID` | — | — |
| `poNumber` | `String!` | — | — |
| `supplierId` | `SupplierID!` | — | — |
| `deliveryAddressId` | `AddressID` | — | — |
| `status` | `PurchaseOrderStatus` | — | — |
| `orderDate` | `ISO8601!` | — | — |
| `expectedDeliveryDate` | `ISO8601` | — | — |
| `receivedAt` | `ISO8601` | — | — |
| `subtotalAmount` | `Float` | — | — |
| `taxAmount` | `Float` | — | — |
| `totalAmount` | `Float!` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `jobId` | `JobID` | — | — |
| `notes` | `String` | — | — |
| `internalNotes` | `String` | — | — |
| `approvedByUserId` | `UserID` | — | — |
| `approvedAt` | `ISO8601` | — | — |
| `attachments` | `[PurchaseOrderFileAttachmentInput!]` | — | — |

### UpsertPurchaseOrderLineInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `PurchaseOrderLineID` | — | — |
| `purchaseOrderId` | `PurchaseOrderID!` | — | — |
| `lineNumber` | `Int` | — | — |
| `substrateId` | `SubstrateID` | — | — |
| `description` | `String!` | — | — |
| `supplierProductCode` | `String` | — | — |
| `quantity` | `Float!` | — | — |
| `unit` | `MeasurementUnit` | — | — |
| `unitPrice` | `Float!` | — | — |
| `lineTotal` | `Float` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `receivedQuantity` | `Float` | — | — |
| `receivedAt` | `ISO8601` | — | — |
| `notes` | `String` | — | — |
| `sortOrder` | `Int` | — | — |

### UpsertPurchaseOrderLinePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `purchaseOrderLine` | `PurchaseOrderLineState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertPurchaseOrderPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `purchaseOrder` | `PurchaseOrderState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertRecordedCostInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `RecordedCostID` | — | — |
| `costCategoryId` | `CostCategoryID!` | — | — |
| `costCenterId` | `CostCenterID` | — | — |
| `costRateId` | `CostRateID` | — | — |
| `jobId` | `JobID` | — | — |
| `quantity` | `Float!` | — | — |
| `unitRate` | `Float` | — | — |
| `currency` | `CurrencyISO!` | — | — |
| `description` | `String` | — | — |
| `referenceType` | `String` | — | — |
| `referenceId` | `String` | — | — |
| `recordedAt` | `ISO8601` | — | — |

### UpsertRecordedCostPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `recordedCost` | `RecordedCostState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertSupplierInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `SupplierID` | — | — |
| `name` | `String!` | — | — |
| `code` | `String` | — | — |
| `category` | `SupplierCategory` | — | — |
| `externalId` | `String` | — | — |
| `contactName` | `String` | — | — |
| `email` | `String` | — | — |
| `phone` | `String` | — | — |
| `website` | `String` | — | — |
| `accountNumber` | `String` | — | — |
| `paymentTerms` | `String` | — | — |
| `currency` | `CurrencyISO` | — | — |
| `leadTimeDays` | `Int` | — | — |
| `isActive` | `Boolean` | — | — |
| `notes` | `String` | — | — |
| `tags` | `[String!]` | — | — |

### UpsertSupplierPayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `supplier` | `SupplierState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UpsertTaxCodeInput

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `TaxCodeID` | — | — |
| `name` | `String!` | — | — |
| `code` | `String!` | — | — |
| `rate` | `Float!` | — | — |
| `jurisdiction` | `String` | — | — |
| `description` | `String` | — | — |
| `isDefault` | `Boolean` | — | — |
| `isActive` | `Boolean` | — | — |

### UpsertTaxCodePayload

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `taxCode` | `TaxCodeState` | — | — |
| `errors` | `[FieldError!]!` | — | — |

### UserKind

`HUMAN`, `BOT`

### UserState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `UserID!` | — | — |
| `externalId` | `String` | — | — |
| `email` | `String!` | — | — |
| `name` | `String` | — | — |
| `kind` | `UserKind!` | — | — |
| `createdAt` | `String!` | — | — |
| `updatedAt` | `String!` | — | — |

### WorkCenterLifecycle

`CONCEPT`, `ACTIVE`, `ARCHIVED`

### WorkCenterState

| Field | Type | Default | Arguments |
| --- | --- | --- | --- |
| `id` | `WorkCenterID!` | — | — |
| `externalId` | `String` | — | — |
| `productionCellId` | `ProductionCellID` | — | — |
| `costCenterId` | `CostCenterID` | — | — |
| `name` | `String!` | — | — |
| `resourceType` | `ResourceType!` | — | — |
| `linkedUserId` | `UserID` | — | — |
| `efficiencyFactor` | `Float!` | — | — |
| `isActive` | `Boolean!` | — | — |
| `lifecycle` | `WorkCenterLifecycle!` | — | — |
| `isMonitored` | `Boolean!` | — | — |
| `jmfDeviceId` | `String` | — | — |
| `defaultSetupMinutes` | `Int!` | — | — |
| `defaultProcessingRate` | `Float` | — | — |
| `defaultCleanupMinutes` | `Int!` | — | — |
| `twin` | `WorkCenterTwin!` | — | — |
| `createdAt` | `ISO8601!` | — | — |
| `updatedAt` | `ISO8601!` | — | — |