---
title: "Issue data model"
url: "https://docs.unified.to/qms/issue/model"
description: "The Issue data model object in Unified's Issue API: 26 fields, including created_at, updated_at and number, with types and enum values."
date: "2026-11-13T20:19:18.258Z"
updated: "2026-11-13T20:19:18.258Z"
---
# Issue data model

Updated: November 13, 2026

A nonconformance, complaint, audit finding or problem report

 View field support, webhooks, and list parameters for each integration on the [Supported Integrations](https://docs.unified.to/qms/integrations.md) page. 

| Field                              | Type                | Required | Description                                                                                                                                                                                                   |
| ---------------------------------- | ------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id                                 | string              | No       |                                                                                                                                                                                                               |
| created\_at                        | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| updated\_at                        | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| number                             | string              | No       | Issue number, e.g. NCR-0042                                                                                                                                                                                   |
| name                               | string              | No       |                                                                                                                                                                                                               |
| description                        | string              | No       |                                                                                                                                                                                                               |
| type                               | enum                | No       | Values: NONCONFORMANCE, COMPLAINT, AUDIT\_FINDING, PROBLEM\_REPORT, OTHER                                                                                                                                     |
| original\_type                     | string              | No       | The vendor's own issue type or template name                                                                                                                                                                  |
| status                             | enum                | No       | Normalized status of a quality record Values: OPEN, IN\_PROGRESS, IN\_REVIEW, CLOSED, CANCELLED                                                                                                               |
| lifecycle\_state                   | string              | No       | Vendor's own state or workflow step name                                                                                                                                                                      |
| severity                           | enum                | No       | Values: LOW, MEDIUM, HIGH, CRITICAL                                                                                                                                                                           |
| source                             | enum                | No       | Where a quality issue was found Values: INTERNAL, SUPPLIER, CUSTOMER, AUDIT, OTHER                                                                                                                            |
| disposition                        | enum                | No       | What to do with the nonconforming material Values: USE\_AS\_IS, REWORK, REPAIR, SCRAP, RETURN\_TO\_VENDOR, OTHER                                                                                              |
| original\_disposition              | string              | No       | The vendor's own disposition name                                                                                                                                                                             |
| affected\_items                    | QmsAffectedItem\[\] | No       |                                                                                                                                                                                                               |
| affected\_items\[\].part\_id       | string              | No       | The PlmPart (revision) ID, when the same vendor also provides PLM                                                                                                                                             |
| affected\_items\[\].document\_id   | string              | No       | The PlmDocument ID, when the same vendor also provides PLM                                                                                                                                                    |
| affected\_items\[\].part\_number   | string              | No       |                                                                                                                                                                                                               |
| affected\_items\[\].revision       | string              | No       |                                                                                                                                                                                                               |
| affected\_items\[\].lot\_number    | string              | No       |                                                                                                                                                                                                               |
| affected\_items\[\].serial\_number | string              | No       |                                                                                                                                                                                                               |
| affected\_items\[\].quantity       | number              | No       | Quantity affected                                                                                                                                                                                             |
| supplier\_name                     | string              | No       |                                                                                                                                                                                                               |
| user\_id                           | string              | No       | Owner or assignee (reference to HrisEmployee)                                                                                                                                                                 |
| reporter\_user\_id                 | string              | No       | Who raised the issue (reference to HrisEmployee)                                                                                                                                                              |
| action\_ids                        | string\[\]          | No       | Linked QmsAction IDs                                                                                                                                                                                          |
| change\_ids                        | string\[\]          | No       | Linked PlmChange IDs, when the same vendor also provides PLM                                                                                                                                                  |
| opened\_at                         | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| due\_at                            | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| closed\_at                         | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| file\_ids                          | string\[\]          | No       | Attachment IDs retrievable from StorageFile                                                                                                                                                                   |
| url                                | string              | No       | Deep link to the vendor UI                                                                                                                                                                                    |
| metadata                           | QmsMetadata\[\]     | No       |                                                                                                                                                                                                               |
| metadata\[\].id                    | string              | No       | The ID of the custom field definition (from the metadata/metadata endpoint).                                                                                                                                  |
| metadata\[\].slug                  | string              | No       | The integration's API name (key) of an existing custom field.                                                                                                                                                 |
| metadata\[\].value                 | object              | No       | The field's value, typed by format.                                                                                                                                                                           |
| metadata\[\].namespace             | string              | No       |                                                                                                                                                                                                               |
| metadata\[\].format                | enum                | No       | The data type of the custom field, which determines how value is formatted. Values: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE\_SELECT, MULTIPLE\_SELECT, MEASUREMENT, PRICE, YES\_NO, CURRENCY, URL |
| metadata\[\].extra\_data           | object              | No       |                                                                                                                                                                                                               |

## TypeScript

```typescript
export type QmsIssue = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	number?: string; // Issue number, e.g. NCR-0042
	name?: string;
	description?: string;
	type?: 'NONCONFORMANCE' | 'COMPLAINT' | 'AUDIT_FINDING' | 'PROBLEM_REPORT' | 'OTHER';
	original_type?: string; // The vendor's own issue type or template name
	status?: 'OPEN' | 'IN_PROGRESS' | 'IN_REVIEW' | 'CLOSED' | 'CANCELLED'; // Normalized status of a quality record
	lifecycle_state?: string; // Vendor's own state or workflow step name
	severity?: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
	source?: 'INTERNAL' | 'SUPPLIER' | 'CUSTOMER' | 'AUDIT' | 'OTHER'; // Where a quality issue was found
	disposition?: 'USE_AS_IS' | 'REWORK' | 'REPAIR' | 'SCRAP' | 'RETURN_TO_VENDOR' | 'OTHER'; // What to do with the nonconforming material
	original_disposition?: string; // The vendor's own disposition name
	affected_items?: [];
	supplier_name?: string;
	user_id?: string; // Owner or assignee (reference to HrisEmployee)
	reporter_user_id?: string; // Who raised the issue (reference to HrisEmployee)
	action_ids?: string[]; // Linked QmsAction IDs
	change_ids?: string[]; // Linked PlmChange IDs, when the same vendor also provides PLM
	opened_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	due_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	closed_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	file_ids?: string[]; // Attachment IDs retrievable from StorageFile
	url?: string; // Deep link to the vendor UI
	metadata?: [];
	raw?: any; // Raw data from integration
} 
```

## Zod

```typescript
import { z } from 'zod';

export const ZodQmsIssue = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	number: z.string().optional().describe("Issue number, e.g. NCR-0042"),
	name: z.string().optional(),
	description: z.string().optional(),
	type: z.enum("NONCONFORMANCE", "COMPLAINT", "AUDIT_FINDING", "PROBLEM_REPORT", "OTHER").optional(),
	original_type: z.string().optional().describe("The vendor's own issue type or template name"),
	status: z.enum("OPEN", "IN_PROGRESS", "IN_REVIEW", "CLOSED", "CANCELLED").optional().describe("Normalized status of a quality record"),
	lifecycle_state: z.string().optional().describe("Vendor's own state or workflow step name"),
	severity: z.enum("LOW", "MEDIUM", "HIGH", "CRITICAL").optional(),
	source: z.enum("INTERNAL", "SUPPLIER", "CUSTOMER", "AUDIT", "OTHER").optional().describe("Where a quality issue was found"),
	disposition: z.enum("USE_AS_IS", "REWORK", "REPAIR", "SCRAP", "RETURN_TO_VENDOR", "OTHER").optional().describe("What to do with the nonconforming material"),
	original_disposition: z.string().optional().describe("The vendor's own disposition name"),
	affected_items: z.array().optional(),
	supplier_name: z.string().optional(),
	user_id: z.string().optional().describe("Owner or assignee (reference to HrisEmployee)"),
	reporter_user_id: z.string().optional().describe("Who raised the issue (reference to HrisEmployee)"),
	action_ids: z.array().optional().describe("Linked QmsAction IDs"),
	change_ids: z.array().optional().describe("Linked PlmChange IDs, when the same vendor also provides PLM"),
	opened_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	due_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	closed_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	file_ids: z.array().optional().describe("Attachment IDs retrievable from StorageFile"),
	url: z.string().optional().describe("Deep link to the vendor UI"),
	metadata: z.array().optional(),

});
```

## Python

```python
import dataclasses

@dataclasses.dataclass
class QmsIssueType(str, Enum):
	NONCONFORMANCE = 'NONCONFORMANCE'
	COMPLAINT = 'COMPLAINT'
	AUDIT_FINDING = 'AUDIT_FINDING'
	PROBLEM_REPORT = 'PROBLEM_REPORT'
	OTHER = 'OTHER'

@dataclasses.dataclass
class QmsIssueStatus(str, Enum):
	OPEN = 'OPEN'
	IN_PROGRESS = 'IN_PROGRESS'
	IN_REVIEW = 'IN_REVIEW'
	CLOSED = 'CLOSED'
	CANCELLED = 'CANCELLED'

@dataclasses.dataclass
class QmsIssueSeverity(str, Enum):
	LOW = 'LOW'
	MEDIUM = 'MEDIUM'
	HIGH = 'HIGH'
	CRITICAL = 'CRITICAL'

@dataclasses.dataclass
class QmsIssueSource(str, Enum):
	INTERNAL = 'INTERNAL'
	SUPPLIER = 'SUPPLIER'
	CUSTOMER = 'CUSTOMER'
	AUDIT = 'AUDIT'
	OTHER = 'OTHER'

@dataclasses.dataclass
class QmsIssueDisposition(str, Enum):
	USE_AS_IS = 'USE_AS_IS'
	REWORK = 'REWORK'
	REPAIR = 'REPAIR'
	SCRAP = 'SCRAP'
	RETURN_TO_VENDOR = 'RETURN_TO_VENDOR'
	OTHER = 'OTHER'

@dataclasses.dataclass
class QmsIssue:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""Issue number, e.g. NCR-0042"""
	number: Optional[str]
	name: Optional[str]
	description: Optional[str]
	type: Optional[QmsIssueType]
	"""The vendor's own issue type or template name"""
	original_type: Optional[str]
	"""Normalized status of a quality record"""
	status: Optional[QmsIssueStatus]
	"""Vendor's own state or workflow step name"""
	lifecycle_state: Optional[str]
	severity: Optional[QmsIssueSeverity]
	"""Where a quality issue was found"""
	source: Optional[QmsIssueSource]
	"""What to do with the nonconforming material"""
	disposition: Optional[QmsIssueDisposition]
	"""The vendor's own disposition name"""
	original_disposition: Optional[str]
	affected_items: Optional[PropertyQmsIssueAffected_items]
	supplier_name: Optional[str]
	"""Owner or assignee (reference to HrisEmployee)"""
	user_id: Optional[str]
	"""Who raised the issue (reference to HrisEmployee)"""
	reporter_user_id: Optional[str]
	"""Linked QmsAction IDs"""
	action_ids: Optional[List[List[str]]]
	"""Linked PlmChange IDs, when the same vendor also provides PLM"""
	change_ids: Optional[List[List[str]]]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	opened_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	due_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	closed_at: Optional[str]
	"""Attachment IDs retrievable from StorageFile"""
	file_ids: Optional[List[List[str]]]
	"""Deep link to the vendor UI"""
	url: Optional[str]
	metadata: Optional[PropertyQmsIssueMetadata]

```
