N1Developer docsv1

TESTED LIVE

QC

15 real calls against a live Core. Open a call for its headers, request and response.

attachQcReport

194JobCardDetails · attach-report-to-existing-checksupervisorPOST /graphql200 OKAs expected14 ms
Operation
attachQcReport
Request id
01a14baa-1769-7ab6-bbfa-a7d1d4f2823e
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "idempotency-key": "key-194",
  "content-type": "application/json"
}

Query

mutation AuditAttach($id: ID!, $f: AppFileReferenceInput!) { attachQcReport(id: $id, report: $f) { id report { id } } }

Variables

{
  "id": "01a14baa-083b-7ad5-8910-33e5272a432b",
  "f": {
    "id": "01a14ba9-f98e-734c-8188-537a12fc73f8",
    "name": "flow.pdf",
    "kind": "QC report",
    "sizeBytes": 9
  }
}

Response · HTTP 200

{
  "data": {
    "attachQcReport": {
      "id": "01a14baa-083b-7ad5-8910-33e5272a432b",
      "report": {
        "id": "01a14ba9-f98e-734c-8188-537a12fc73f8"
      }
    }
  }
}

qcQueue

115QcList · load-rm-tabqcPOST /graphql200 OKAs expected18 ms
Operation
qcQueue
Request id
01a14ba9-bc87-7701-b3ae-d28371067e91
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "content-type": "application/json"
}

Query

query AuditQcList($kind: QcKind!) { queue: qcQueue(first: 5, filter: { kind: $kind }) { totalCount edges { node { jobCardId code qrValue kind status stage subject jobOperationId operationName partName quantity waitingSince } } } total: qcQueue(first: 1, filter: { kind: $kind }) { totalCount } pending: qcQueue(first: 1, filter: { kind: $kind, status: [PENDING] }) { totalCount } }

Variables

{
  "kind": "RM"
}

Response · HTTP 200

{
  "data": {
    "queue": {
      "totalCount": 7,
      "edges": [
        {
          "node": {
            "jobCardId": "01a14ba6-e695-7571-8b02-2a50cf0c7c89",
            "code": "JOB6",
            "qrValue": "JC-00006",
            "kind": "RM",
            "status": "PENDING",
            "stage": "Incoming inspection",
            "subject": "EN8 steel",
            "jobOperationId": null,
            "operationName": null,
            "partName": "Drive bush",
            "quantity": 300,
            "waitingSince": "2026-10-17T20:56:31.634Z"
          }
        },
        {
          "node": {
            "jobCardId": "01a14ba6-e60b-76c9-90a1-2e48ac0af20c",
            "code": "JOB1",
            "qrValue": "JC-00001",
            "kind": "RM",
            "status": "PASSED",
            "stage": "Incoming inspection",
            "subject": "EN8 steel",
            "jobOperationId": null,
            "operationName": null,
            "partName": "Pump shaft",
            "quantity": 120,
            "waitingSince": "2026-10-17T20:56:31.720Z"
          }
        },
        {
          "node": {
            "jobCardId": "01a14ba6-e649-75ad-bbc9-16d7ecd00878",
            "code": "JOB2",
            "qrValue": "JC-00002",
            "kind": "RM",
            "status": "PASSED",
            "stage": "Incoming inspection",
            "subject": "EN8 steel",
            "jobOperationId": null,
            "operationName": null,
            "partName": "Valve spindle",
            "quantity": 80,
            "waitingSince": "2026-10-17T20:56:31.910Z"
          }
        },
        {
          "node": {
            "jobCardId": "01a14ba6-e65b-777f-9975-ca8ed40d8792",
            "code": "JOB3",
            "qrValue": "JC-00003",
            "kind": "RM",
            "status": "PASSED",
            "stage": "Incoming inspection",
            "subject": "EN8 steel",
            "jobOperationId": null,
            "operationName": null,
            "partName": "Gear blank",
            "quantity": 200,
            "waitingSince": "2026-10-17T20:56:32.044Z"
          }
        },
        {
          "node": {
            "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
            "code": "JOB4",
            "qrValue": "JC-00004",
            "kind": "RM",
            "status": "PASSED",
            "stage": "Incoming inspection",
            "subject": "EN8 steel",
            "jobOperationId": null,
            "operationName": null,
            "partName": "Bearing housing",
            "quantity": 40,
            "waitingSince": "2026-10-17T20:56:32.134Z"
          }
        }
      ]
    },
    "total": {
      "totalCount": 7
    },
    "pending": {
      "totalCount": 2
    }
  }
}
116QcList · load-machine-tabqcPOST /graphql200 OKAs expected15 ms
Operation
qcQueue
Request id
01a14ba9-bd9f-720f-bdb9-d1a39de19cd5
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "content-type": "application/json"
}

Query

query AuditQcList($kind: QcKind!) { queue: qcQueue(first: 5, filter: { kind: $kind }) { totalCount edges { node { jobCardId code qrValue kind status stage subject jobOperationId operationName partName quantity waitingSince } } } total: qcQueue(first: 1, filter: { kind: $kind }) { totalCount } pending: qcQueue(first: 1, filter: { kind: $kind, status: [PENDING] }) { totalCount } }

Variables

{
  "kind": "MACHINE"
}

Response · HTTP 200

{
  "data": {
    "queue": {
      "totalCount": 7,
      "edges": [
        {
          "node": {
            "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
            "code": "JOB4",
            "qrValue": "JC-00004",
            "kind": "MACHINE",
            "status": "WAITING",
            "stage": "No operation finished yet",
            "subject": "Turning",
            "jobOperationId": null,
            "operationName": null,
            "partName": "Bearing housing",
            "quantity": 40,
            "waitingSince": "2026-10-17T20:56:31.594Z"
          }
        },
        {
          "node": {
            "jobCardId": "01a14ba6-e67d-7757-8629-269f740c10ba",
            "code": "JOB5",
            "qrValue": "JC-00005",
            "kind": "MACHINE",
            "status": "WAITING",
            "stage": "No operation finished yet",
            "subject": "Turning",
            "jobOperationId": null,
            "operationName": null,
            "partName": "Flange coupling",
            "quantity": 60,
            "waitingSince": "2026-10-17T20:56:31.611Z"
          }
        },
        {
          "node": {
            "jobCardId": "01a14ba6-e695-7571-8b02-2a50cf0c7c89",
            "code": "JOB6",
            "qrValue": "JC-00006",
            "kind": "MACHINE",
            "status": "WAITING",
            "stage": "No operation finished yet",
            "subject": "Turning",
            "jobOperationId": null,
            "operationName": null,
            "partName": "Drive bush",
            "quantity": 300,
            "waitingSince": "2026-10-17T20:56:31.634Z"
          }
        },
        {
          "node": {
            "jobCardId": "01a14ba6-e60b-76c9-90a1-2e48ac0af20c",
            "code": "JOB1",
            "qrValue": "JC-00001",
            "kind": "MACHINE",
            "status": "PASSED",
            "stage": "Final QC",
            "subject": "CNC Lathe 1",
            "jobOperationId": "01a14ba6-e627-7e03-9a71-6f42bd07e4d2",
            "operationName": "Finishing",
            "partName": "Pump shaft",
            "quantity": 120,
            "waitingSince": "2026-10-17T20:56:31.871Z"
          }
        },
        {
          "node": {
            "jobCardId": "01a14ba6-e649-75ad-bbc9-16d7ecd00878",
            "code": "JOB2",
            "qrValue": "JC-00002",
            "kind": "MACHINE",
            "status": "PASSED",
            "stage": "Final QC",
            "subject": "CNC Lathe 1",
            "jobOperationId": "01a14ba6-e64d-7558-9888-cbe24e46077f",
            "operationName": "Finishing",
            "partName": "Valve spindle",
            "quantity": 80,
            "waitingSince": "2026-10-17T20:56:32.017Z"
          }
        }
      ]
    },
    "total": {
      "totalCount": 7
    },
    "pending": {
      "totalCount": 0
    }
  }
}
117QcList · row-card-fieldsqcPOST /graphql200 OKAs expected18 ms

The QC card row shows customer, job name, priority, due date and route progress.

Operation
qcQueue
Request id
01a14ba9-beb4-7750-bdae-95a9cb95d26c
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "content-type": "application/json"
}

Query

query AuditQcRow { qcQueue(first: 2) { edges { node { jobCardId customerName jobName priority dueDate } } } }

Variables

{}

Response · HTTP 200

{
  "data": {
    "qcQueue": {
      "edges": [
        {
          "node": {
            "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
            "customerName": "Demo Agro Implements",
            "jobName": null,
            "priority": "HIGH",
            "dueDate": "2026-10-23"
          }
        },
        {
          "node": {
            "jobCardId": "01a14ba6-e67d-7757-8629-269f740c10ba",
            "customerName": "Demo Hydraulics",
            "jobName": null,
            "priority": "MEDIUM",
            "dueDate": "2026-11-08"
          }
        }
      ]
    }
  }
}
119QcList · my-importedqcPOST /graphql200 OKAs expected10 ms
Operation
qcQueue(watched)
Request id
01a14ba9-c0dc-7f22-af39-92d29e2e9483
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "content-type": "application/json"
}

Query

query AuditQcWatched { qcQueue(first: 5, filter: { watched: true }) { totalCount } }

Variables

{}

Response · HTTP 200

{
  "data": {
    "qcQueue": {
      "totalCount": 2
    }
  }
}
120QcList · searchqcPOST /graphql200 OKAs expected14 ms
Operation
qcQueue(search)
Request id
01a14ba9-c1ec-7b14-9b5f-cb6d05dad7a5
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "content-type": "application/json"
}

Query

query AuditQcSearch { qcQueue(first: 2, search: "Flange") { totalCount } }

Variables

{}

Response · HTTP 200

{
  "data": {
    "qcQueue": {
      "totalCount": 4
    }
  }
}

qcRecords

129QcList · recordsqcPOST /graphql200 OKAs expected8 ms
Operation
qcRecords
Request id
01a14ba9-cc3c-7458-903b-74ce9623c763
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "content-type": "application/json"
}

Query

query AuditQcRecords { qcRecords(first: 5) { totalCount edges { node { ...QR jobCardId recordedByName } } } }
fragment QR on QcRecord { id kind stage result remark recordedAt jobOperationId inspector rejectedMaterial { grade heatNumber size } report { ...F } }
fragment F on AppFileReference { id name kind sizeBytes }

Variables

{}

Response · HTTP 200

{
  "data": {
    "qcRecords": {
      "totalCount": 13,
      "edges": [
        {
          "node": {
            "id": "01a14ba9-ca56-7fd7-a631-8b24823e194f",
            "kind": "RM",
            "stage": "Material QC",
            "result": "REJECTED",
            "remark": "Synthetic: stock diameter below specification.",
            "recordedAt": "2026-10-17T20:59:41.007Z",
            "jobOperationId": null,
            "inspector": "Demo Inspector",
            "rejectedMaterial": {
              "grade": "EN8",
              "heatNumber": "HEAT-SYN-9",
              "size": "24.6 mm x 200 mm"
            },
            "report": null,
            "jobCardId": "01a14ba6-e65b-777f-9975-ca8ed40d8792",
            "recordedByName": "Demo Inspector"
          }
        },
        {
          "node": {
            "id": "01a14ba9-c56b-742d-af87-2759a0cfab47",
            "kind": "RM",
            "stage": "Material QC",
            "result": "ACCEPTED",
            "remark": null,
            "recordedAt": "2026-10-17T20:59:39.742Z",
            "jobOperationId": null,
            "inspector": "Demo Inspector",
            "rejectedMaterial": null,
            "report": null,
            "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
            "recordedByName": "Demo Inspector"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e8b3-7422-a7a0-ce26ce4c4fe1",
            "kind": "RM",
            "stage": "Incoming inspection",
            "result": "REJECTED",
            "remark": "Heat number does not match the mill certificate",
            "recordedAt": "2026-10-17T20:56:32.174Z",
            "jobOperationId": null,
            "inspector": "Demo Inspector",
            "rejectedMaterial": {
              "grade": "EN8",
              "heatNumber": "DEMO-H-001",
              "size": "Ø40 x 3000 mm"
            },
            "report": null,
            "jobCardId": "01a14ba6-e67d-7757-8629-269f740c10ba",
            "recordedByName": "Demo Inspector"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e897-79fd-bb0c-5fdfbe1ae7ed",
            "kind": "RM",
            "stage": "Incoming inspection",
            "result": "ACCEPTED",
            "remark": "Material and size as per drawing",
            "recordedAt": "2026-10-17T20:56:32.134Z",
            "jobOperationId": null,
            "inspector": "Demo Inspector",
            "rejectedMaterial": null,
            "report": null,
            "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
            "recordedByName": "Demo Inspector"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e82f-78e9-b50d-88a90f1fb703",
            "kind": "RM",
            "stage": "Incoming inspection",
            "result": "ACCEPTED",
            "remark": null,
            "recordedAt": "2026-10-17T20:56:32.044Z",
            "jobOperationId": null,
            "inspector": "Demo Inspector",
            "rejectedMaterial": null,
            "report": null,
            "jobCardId": "01a14ba6-e65b-777f-9975-ca8ed40d8792",
            "recordedByName": "Demo Inspector"
          }
        }
      ]
    }
  }
}

recordQc

123QcCheck · pass-rmqcPOST /graphql200 OKAs expected48 ms
Operation
recordQc
Request id
01a14ba9-c521-77b4-b1b2-cba9df03858d
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "idempotency-key": "key-123",
  "content-type": "application/json"
}

Query

mutation AuditQcPassRm($input: QcRecordInput!) { recordQc(input: $input) { ...QR } }
fragment QR on QcRecord { id kind stage result remark recordedAt jobOperationId inspector rejectedMaterial { grade heatNumber size } report { ...F } }
fragment F on AppFileReference { id name kind sizeBytes }

Variables

{
  "input": {
    "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
    "kind": "RM",
    "result": "ACCEPTED",
    "stage": "Material QC"
  }
}

Response · HTTP 200

{
  "data": {
    "recordQc": {
      "id": "01a14ba9-c56b-742d-af87-2759a0cfab47",
      "kind": "RM",
      "stage": "Material QC",
      "result": "ACCEPTED",
      "remark": null,
      "recordedAt": "2026-10-17T20:59:39.742Z",
      "jobOperationId": null,
      "inspector": "Demo Inspector",
      "rejectedMaterial": null,
      "report": null
    }
  }
}
127QcFail · fail-rmqcPOST /graphql200 OKAs expected22 ms
Operation
recordQc
Request id
01a14ba9-ca14-71dd-b95a-8acb31429f8b
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "idempotency-key": "key-127",
  "content-type": "application/json"
}

Query

mutation AuditQcFailRm($input: QcRecordInput!) { recordQc(input: $input) { ...QR } }
fragment QR on QcRecord { id kind stage result remark recordedAt jobOperationId inspector rejectedMaterial { grade heatNumber size } report { ...F } }
fragment F on AppFileReference { id name kind sizeBytes }

Variables

{
  "input": {
    "jobCardId": "01a14ba6-e65b-777f-9975-ca8ed40d8792",
    "kind": "RM",
    "result": "REJECTED",
    "stage": "Material QC",
    "remark": "Synthetic: stock diameter below specification.",
    "rejectedMaterial": {
      "grade": "EN8",
      "heatNumber": "HEAT-SYN-9",
      "size": "24.6 mm x 200 mm"
    }
  }
}

Response · HTTP 200

{
  "data": {
    "recordQc": {
      "id": "01a14ba9-ca56-7fd7-a631-8b24823e194f",
      "kind": "RM",
      "stage": "Material QC",
      "result": "REJECTED",
      "remark": "Synthetic: stock diameter below specification.",
      "recordedAt": "2026-10-17T20:59:41.007Z",
      "jobOperationId": null,
      "inspector": "Demo Inspector",
      "rejectedMaterial": {
        "grade": "EN8",
        "heatNumber": "HEAT-SYN-9",
        "size": "24.6 mm x 200 mm"
      },
      "report": null
    }
  }
}
128QcFail · voice-noteqcPOST /graphql400 GRAPHQL_INVALIDAs decided8 ms

D13: no voice notes in phase 1.

Operation
recordQc (voiceNote)
Request id
01a14ba9-cb2f-74cb-9ede-047941714f7a
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "idempotency-key": "key-128",
  "content-type": "application/json"
}

Query

mutation AuditQcVoice($input: QcRecordInput!) { recordQc(input: $input) { id } }

Variables

{
  "input": {
    "jobCardId": "01a14ba6-e65b-777f-9975-ca8ed40d8792",
    "kind": "RM",
    "result": "REJECTED",
    "remark": "x",
    "voiceNote": {
      "id": "0353c871-9c91-42c3-b672-4a0ccb7ae010",
      "name": "note.m4a",
      "kind": "Voice note",
      "sizeBytes": 9
    }
  }
}

Response · HTTP 400

{
  "data": null,
  "errors": [
    {
      "message": "Field \"voiceNote\" is not defined by type \"QcRecordInput\".",
      "extensions": {
        "code": "GRAPHQL_INVALID",
        "message": "The GraphQL document is invalid.",
        "requestId": "01a14ba9-cb2f-74cb-9ede-047941714f7a"
      }
    }
  ]
}
171Flow · rm-acceptqcPOST /graphql200 OKAs expected16 ms
Operation
recordQc
Request id
01a14ba9-fcb5-7cd4-9177-ed616b603512
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "idempotency-key": "key-171",
  "content-type": "application/json"
}

Query

mutation AuditFlowRm($input: QcRecordInput!) { recordQc(input: $input) { id } }

Variables

{
  "input": {
    "jobCardId": "01a14ba9-fab1-7d0b-863a-b3c7a7857bdf",
    "kind": "RM",
    "result": "ACCEPTED",
    "stage": "Material QC"
  }
}

Response · HTTP 200

{
  "data": {
    "recordQc": {
      "id": "01a14ba9-fcf1-7703-a2b3-434133a072d4"
    }
  }
}
181QcFail · fail-machineqcPOST /graphql200 OKAs expected22 ms
Operation
recordQc
Request id
01a14baa-07fe-729e-b2cc-8ccffc48819f
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "idempotency-key": "key-181",
  "content-type": "application/json"
}

Query

mutation AuditQcMachine($input: QcRecordInput!) { recordQc(input: $input) { id result } }

Variables

{
  "input": {
    "jobCardId": "01a14ba9-fab1-7d0b-863a-b3c7a7857bdf",
    "kind": "MACHINE",
    "jobOperationId": "01a14ba9-faba-7ba9-86ab-6e508d0314b6",
    "result": "FAILED",
    "stage": "Turning - QC",
    "remark": "Synthetic: bore out of tolerance."
  }
}

Response · HTTP 200

{
  "data": {
    "recordQc": {
      "id": "01a14baa-083b-7ad5-8910-33e5272a432b",
      "result": "FAILED"
    }
  }
}
184QcCheck · pass-machineqcPOST /graphql200 OKAs expected21 ms
Operation
recordQc
Request id
01a14baa-0b41-7bca-8ece-bba6be138c68
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "idempotency-key": "key-184",
  "content-type": "application/json"
}

Query

mutation AuditQcMachine($input: QcRecordInput!) { recordQc(input: $input) { id result } }

Variables

{
  "input": {
    "jobCardId": "01a14ba9-fab1-7d0b-863a-b3c7a7857bdf",
    "kind": "MACHINE",
    "jobOperationId": "01a14ba9-faba-7ba9-86ab-6e508d0314b6",
    "result": "PASSED",
    "stage": "Turning - QC"
  }
}

Response · HTTP 200

{
  "data": {
    "recordQc": {
      "id": "01a14baa-0b7f-7679-a446-a6554f7377fc",
      "result": "PASSED"
    }
  }
}
190QcCheck · pass-machine-2qcPOST /graphql200 OKAs expected19 ms
Operation
recordQc
Request id
01a14baa-12f4-71c5-b521-4533cdd806ed
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "idempotency-key": "key-190",
  "content-type": "application/json"
}

Query

mutation AuditQcMachine($input: QcRecordInput!) { recordQc(input: $input) { id result } }

Variables

{
  "input": {
    "jobCardId": "01a14ba9-fab1-7d0b-863a-b3c7a7857bdf",
    "kind": "MACHINE",
    "jobOperationId": "01a14ba9-faba-72e6-b26a-13300ff83a09",
    "result": "PASSED",
    "stage": "Milling - QC"
  }
}

Response · HTTP 200

{
  "data": {
    "recordQc": {
      "id": "01a14baa-1331-7c4e-80bc-2c840340d24a",
      "result": "PASSED"
    }
  }
}
193QcCheck · pass-machine-3qcPOST /graphql200 OKAs expected14 ms
Operation
recordQc
Request id
01a14baa-1657-7633-8fdb-77486923001e
Expected
OK

Headers

{
  "authorization": "[REDACTED]",
  "idempotency-key": "key-193",
  "content-type": "application/json"
}

Query

mutation AuditQcMachine($input: QcRecordInput!) { recordQc(input: $input) { id result } }

Variables

{
  "input": {
    "jobCardId": "01a14ba9-fab1-7d0b-863a-b3c7a7857bdf",
    "kind": "MACHINE",
    "jobOperationId": "01a14ba9-faba-7cb7-8976-85cddaaee4ed",
    "result": "PASSED",
    "stage": "Finishing - QC"
  }
}

Response · HTTP 200

{
  "data": {
    "recordQc": {
      "id": "01a14baa-1692-7ee9-bfcd-0c4e7ea2dccd",
      "result": "PASSED"
    }
  }
}

Search documentation

Search operations, types and errors from the generated contract.