N1Developer docsv1

TESTED LIVE

Invoices

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

createInvoice

088JobCardDetails · generate-dispatchsupervisorPOST /graphql403 FORBIDDENAs decided5 ms

D5: a supervisor does not raise invoices or dispatch.

Operation
createInvoice
Request id
01a14ba9-9d14-7005-b923-c0163b924919
Expected
OK

Headers

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

Query

mutation AuditDispatchSup($input: InvoiceInput!) { createInvoice(input: $input) { id } }

Variables

{
  "input": {
    "jobCardId": "01a14ba6-e65b-777f-9975-ca8ed40d8792",
    "gstRate": 18,
    "discount": 0,
    "lines": [
      {
        "operation": "Turning",
        "minutesPerPiece": 2,
        "setupMinutes": 10,
        "ratePerMinute": 1000
      }
    ]
  }
}

Response · HTTP 403

{
  "errors": [
    {
      "message": "You do not have access to this.",
      "locations": [
        {
          "line": 1,
          "column": 52
        }
      ],
      "path": [
        "createInvoice"
      ],
      "extensions": {
        "code": "FORBIDDEN",
        "message": "You do not have access to this.",
        "requestId": "01a14ba9-9d14-7005-b923-c0163b924919"
      }
    }
  ],
  "data": null
}
147JobCardDetails · generate-dispatchownerPOST /graphql400 VALIDATION_FAILEDAs decided75 ms

D5: only a finished card is invoiced.

Operation
createInvoice
Request id
01a14ba9-e0cc-72dd-b8ce-34f452aa95f0
Expected
OK

Headers

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

Query

mutation AuditDispatch($input: InvoiceInput!) { createInvoice(input: $input) { ...INV } }
fragment INV on Invoice { id number customerId customerName jobCardId orderId routeCard part quantity status discount gstRate quoteId poAmount notes issuedAt dueDate lines { id operation description minutesPerPiece setupMinutes ratePerMinute amount } totals { subtotal discount taxable gstRate supply cgst sgst igst gst total } payment { paidOn receivedAmount tdsAmount tdsSection } }

Variables

{
  "input": {
    "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
    "gstRate": 18,
    "discount": 0,
    "routeCard": "RC-AUDIT-1",
    "lines": [
      {
        "operation": "Turning",
        "minutesPerPiece": 2,
        "setupMinutes": 10,
        "ratePerMinute": 1000
      }
    ]
  }
}

Response · HTTP 400

{
  "errors": [
    {
      "message": "The request has invalid fields.",
      "locations": [
        {
          "line": 1,
          "column": 49
        }
      ],
      "path": [
        "createInvoice"
      ],
      "extensions": {
        "code": "VALIDATION_FAILED",
        "message": "The request has invalid fields.",
        "requestId": "01a14ba9-e0cc-72dd-b8ce-34f452aa95f0",
        "details": [
          {
            "path": "jobCardId",
            "message": "all steps must be completed before invoicing"
          }
        ]
      }
    }
  ],
  "data": null
}
195JobCardDetails · generate-dispatch-finishedownerPOST /graphql200 OKAs expected25 ms
Operation
createInvoice
Request id
01a14baa-187e-7e20-9cbb-5db7c67817a9
Expected
OK

Headers

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

Query

mutation AuditFlowInvoice($input: InvoiceInput!) { createInvoice(input: $input) { id jobId status } }

Variables

{
  "input": {
    "jobCardId": "01a14ba9-fab1-7d0b-863a-b3c7a7857bdf",
    "gstRate": 18,
    "lines": [
      {
        "operation": "Turning",
        "minutesPerPiece": 2,
        "setupMinutes": 10,
        "ratePerMinute": 1000
      }
    ]
  }
}

Response · HTTP 200

{
  "data": {
    "createInvoice": {
      "id": "01a14baa-188a-7728-99be-72bfc173da7c",
      "jobId": "WO-10",
      "status": "NEW"
    }
  }
}

invoice

142InvoiceDetails · loadownerPOST /graphql200 OKAs expected10 ms
Operation
invoice+organisation
Request id
01a14ba9-db40-7903-86e7-ae700c24686f
Expected
OK

Headers

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

Query

query AuditInvoiceDetails($id: ID!) { invoice(id: $id) { ...INV } organisation { name address { line1 city state pincode } gstin phone email invoiceLogo { ...F } logo { ...F } termsAndConditions invoiceFooter signature { ...F } } }
fragment INV on Invoice { id number customerId customerName jobCardId orderId routeCard part quantity status discount gstRate quoteId poAmount notes issuedAt dueDate lines { id operation description minutesPerPiece setupMinutes ratePerMinute amount } totals { subtotal discount taxable gstRate supply cgst sgst igst gst total } payment { paidOn receivedAmount tdsAmount tdsSection } }
fragment F on AppFileReference { id name kind sizeBytes }

Variables

{
  "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc"
}

Response · HTTP 200

{
  "data": {
    "invoice": {
      "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
      "number": "CBE/26-27/0002",
      "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e",
      "customerName": "Demo Auto Components",
      "jobCardId": "01a14ba6-e649-75ad-bbc9-16d7ecd00878",
      "orderId": "01a14ba6-e649-7d5b-9cc7-beaf68d484d7",
      "routeCard": "JC-00002",
      "part": "Valve spindle",
      "quantity": 80,
      "status": "NEW",
      "discount": 0,
      "gstRate": 18,
      "quoteId": null,
      "poAmount": null,
      "notes": null,
      "issuedAt": "2026-10-18",
      "dueDate": "2026-11-17",
      "lines": [
        {
          "id": "01a14ba6-e834-7522-b8bb-9760c119f49d",
          "operation": "CNC turning",
          "description": "",
          "minutesPerPiece": 6,
          "setupMinutes": 45,
          "ratePerMinute": 1500,
          "amount": 787500
        },
        {
          "id": "01a14ba6-e834-79d8-b991-0695c09addf2",
          "operation": "Deburring",
          "description": "",
          "minutesPerPiece": 1,
          "setupMinutes": 0,
          "ratePerMinute": 800,
          "amount": 64000
        }
      ],
      "totals": {
        "subtotal": 851500,
        "discount": 0,
        "taxable": 851500,
        "gstRate": 18,
        "supply": "INTRA",
        "cgst": 76635,
        "sgst": 76635,
        "igst": 0,
        "gst": 153270,
        "total": 1004770
      },
      "payment": null
    },
    "organisation": {
      "name": "Demo Coimbatore Works",
      "address": {
        "line1": "10 Synthetic Works Road",
        "city": "Coimbatore",
        "state": "Tamil Nadu",
        "pincode": "641001"
      },
      "gstin": "33DEMOA0001A1Z5",
      "phone": "+919000000100",
      "email": "office@example.test",
      "invoiceLogo": null,
      "logo": null,
      "termsAndConditions": "Synthetic terms",
      "invoiceFooter": "Thank you",
      "signature": null
    }
  }
}
143InvoiceDetails · show-wo-numberownerPOST /graphql200 OKAs expected16 ms

The app shows the work order as jobId (WO number).

Operation
invoice
Request id
01a14ba9-dc51-7a98-ae9e-a1ecf355d46f
Expected
OK

Headers

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

Query

query AuditInvoiceJobId($id: ID!) { invoice(id: $id) { id jobId } }

Variables

{
  "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc"
}

Response · HTTP 200

{
  "data": {
    "invoice": {
      "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
      "jobId": "WO-2"
    }
  }
}
197InvoiceDetails · show-wo-number-flowownerPOST /graphql200 OKAs expected13 ms
Operation
invoice
Request id
01a14baa-1aa7-7c6d-8fe4-4d051714664d
Expected
OK

Headers

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

Query

query AuditFlowJobId($id: ID!) { invoice(id: $id) { id jobId } }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c"
}

Response · HTTP 200

{
  "data": {
    "invoice": {
      "id": "01a14baa-188a-7728-99be-72bfc173da7c",
      "jobId": "WO-10"
    }
  }
}
211InvoiceDetails · download-pdfownerPOST /graphql200 OKAs expected47 ms

G25: rendered on first ask, stored as a READY file on the invoice.

Operation
invoice.pdfFile
Request id
01a14bff-eeb8-7903-bab5-112cedee981a
Expected
OK

Headers

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

Query

query ProofInvoicePdf($id: ID!) { invoice(id: $id) { id number pdfFile { ...F } } }
fragment F on AppFileReference { id name kind sizeBytes }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c"
}

Response · HTTP 200

{
  "data": {
    "invoice": {
      "id": "01a14baa-188a-7728-99be-72bfc173da7c",
      "number": "DCW/26-27/0101",
      "pdfFile": {
        "id": "01a14bff-9f26-7549-ac95-d7c5aa6a77fd",
        "name": "DCW-26-27-0101.pdf",
        "kind": "invoice_pdf",
        "sizeBytes": 3620
      }
    }
  }
}
212InvoiceDetails · download-pdf-againownerPOST /graphql200 OKAs expected26 ms

Same content: the same file id comes back, nothing is rendered.

Operation
invoice.pdfFile
Request id
01a14bff-efed-76bd-bf43-3401ef357297
Expected
OK

Headers

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

Query

query ProofInvoicePdf($id: ID!) { invoice(id: $id) { id number pdfFile { ...F } } }
fragment F on AppFileReference { id name kind sizeBytes }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c"
}

Response · HTTP 200

{
  "data": {
    "invoice": {
      "id": "01a14baa-188a-7728-99be-72bfc173da7c",
      "number": "DCW/26-27/0101",
      "pdfFile": {
        "id": "01a14bff-9f26-7549-ac95-d7c5aa6a77fd",
        "name": "DCW-26-27-0101.pdf",
        "kind": "invoice_pdf",
        "sizeBytes": 3620
      }
    }
  }
}
215InvoiceDetails · download-pdf-after-settingsownerPOST /graphql200 OKAs expected32 ms

Printed content changed: a new file is rendered; the old one stays.

Operation
invoice.pdfFile
Request id
01a14bff-f34c-73fc-8a6c-7a5804f5d06b
Expected
OK

Headers

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

Query

query ProofInvoicePdf($id: ID!) { invoice(id: $id) { id number pdfFile { ...F } } }
fragment F on AppFileReference { id name kind sizeBytes }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c"
}

Response · HTTP 200

{
  "data": {
    "invoice": {
      "id": "01a14baa-188a-7728-99be-72bfc173da7c",
      "number": "DCW/26-27/0101",
      "pdfFile": {
        "id": "01a14bff-a40c-7847-b8db-fc4fd7e141b5",
        "name": "DCW-26-27-0101.pdf",
        "kind": "invoice_pdf",
        "sizeBytes": 3997
      }
    }
  }
}
225InvoiceDetails · download-pdfoperatorPOST /graphql403 FORBIDDENAs expected15 ms

D7.

Operation
invoice.pdfFile
Request id
01a14c00-02b7-701a-bb31-7e0993e8de46
Expected
FORBIDDEN

Headers

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

Query

query ProofInvoicePdf($id: ID!) { invoice(id: $id) { id number pdfFile { ...F } } }
fragment F on AppFileReference { id name kind sizeBytes }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c"
}

Response · HTTP 403

{
  "errors": [
    {
      "message": "You do not have access to this.",
      "locations": [
        {
          "line": 1,
          "column": 35
        }
      ],
      "path": [
        "invoice"
      ],
      "extensions": {
        "code": "FORBIDDEN",
        "message": "You do not have access to this.",
        "requestId": "01a14c00-02b7-701a-bb31-7e0993e8de46"
      }
    }
  ],
  "data": null
}
231InvoiceDetails · download-pdfqcPOST /graphql403 FORBIDDENAs expected14 ms

D7.

Operation
invoice.pdfFile
Request id
01a14c00-092a-7c47-8e71-0660b343cf23
Expected
FORBIDDEN

Headers

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

Query

query ProofInvoicePdf($id: ID!) { invoice(id: $id) { id number pdfFile { ...F } } }
fragment F on AppFileReference { id name kind sizeBytes }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c"
}

Response · HTTP 403

{
  "errors": [
    {
      "message": "You do not have access to this.",
      "locations": [
        {
          "line": 1,
          "column": 35
        }
      ],
      "path": [
        "invoice"
      ],
      "extensions": {
        "code": "FORBIDDEN",
        "message": "You do not have access to this.",
        "requestId": "01a14c00-092a-7c47-8e71-0660b343cf23"
      }
    }
  ],
  "data": null
}

invoices

017Discovery · live-idsownerPOST /graphql200 OKAs expected38 ms
Operation
customers+orders+jobCards+machines+quotes+invoices+users
Request id
01a14ba9-3c90-73b7-9e24-7ccc32cb13c5
Expected
OK

Headers

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

Query

query AuditDiscovery {
  customers(first: 10) { edges { node { id name billingAddress { city } } } }
  orders(first: 10) { edges { node { id number jobCardId customerId status routeCardNo poNumber } } }
  jobCards(first: 10) { edges { node { id orderId code qrValue status billing materialQc designApproval operations { id seq name status operatorId } } } }
  machines(first: 10) { edges { node { id code status } } }
  quotes(first: 10) { edges { node { id status orderId customerId } } }
  invoices(first: 10) { edges { node { id status orderId jobCardId } } }
  users(first: 30) { edges { node { id role name status } } } }

Variables

{}

Response · HTTP 200

{
  "data": {
    "customers": {
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e56a-7478-990d-ceec492d63e7",
            "name": "Demo Agro Implements",
            "billingAddress": {
              "city": "Tiruppur"
            }
          }
        },
        {
          "node": {
            "id": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e",
            "name": "Demo Auto Components",
            "billingAddress": {
              "city": "Tiruppur"
            }
          }
        },
        {
          "node": {
            "id": "01a14ba6-e579-7091-b879-fd026c5ab537",
            "name": "Demo Hydraulics",
            "billingAddress": {
              "city": "Bengaluru"
            }
          }
        },
        {
          "node": {
            "id": "01a14ba6-e533-720d-adca-0c4fb0dedcdd",
            "name": "Demo Pumps & Valves",
            "billingAddress": {
              "city": "Coimbatore"
            }
          }
        },
        {
          "node": {
            "id": "01a14ba6-e55f-7151-850b-de9c5dbe0224",
            "name": "Demo Textile Machinery",
            "billingAddress": {
              "city": "Coimbatore"
            }
          }
        }
      ]
    },
    "orders": {
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e66c-7460-9ced-7abbb006f491",
            "number": "WO-4",
            "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
            "customerId": "01a14ba6-e56a-7478-990d-ceec492d63e7",
            "status": "NEW",
            "routeCardNo": null,
            "poNumber": "DEMO-COI-PO-004"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e60b-78e2-be46-05dfc8ff1cff",
            "number": "WO-1",
            "jobCardId": "01a14ba6-e60b-76c9-90a1-2e48ac0af20c",
            "customerId": "01a14ba6-e533-720d-adca-0c4fb0dedcdd",
            "status": "COMPLETED",
            "routeCardNo": null,
            "poNumber": "DEMO-COI-PO-001"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e649-7d5b-9cc7-beaf68d484d7",
            "number": "WO-2",
            "jobCardId": "01a14ba6-e649-75ad-bbc9-16d7ecd00878",
            "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e",
            "status": "PAYMENT_DUE",
            "routeCardNo": null,
            "poNumber": "DEMO-COI-PO-002"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e65b-7f56-8b35-19dd1d9b93d2",
            "number": "WO-3",
            "jobCardId": "01a14ba6-e65b-777f-9975-ca8ed40d8792",
            "customerId": "01a14ba6-e55f-7151-850b-de9c5dbe0224",
            "status": "IN_PROGRESS",
            "routeCardNo": null,
            "poNumber": "DEMO-COI-PO-003"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e67d-7144-a636-1c77ab125e29",
            "number": "WO-5",
            "jobCardId": "01a14ba6-e67d-7757-8629-269f740c10ba",
            "customerId": "01a14ba6-e579-7091-b879-fd026c5ab537",
            "status": "NEW",
            "routeCardNo": null,
            "poNumber": "DEMO-COI-PO-005"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e695-7d5c-b505-a59fd80251a9",
            "number": "WO-6",
            "jobCardId": "01a14ba6-e695-7571-8b02-2a50cf0c7c89",
            "customerId": "01a14ba6-e533-720d-adca-0c4fb0dedcdd",
            "status": "NEW",
            "routeCardNo": null,
            "poNumber": "DEMO-COI-PO-006"
          }
        }
      ]
    },
    "jobCards": {
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
            "orderId": "01a14ba6-e66c-7460-9ced-7abbb006f491",
            "code": "JOB4",
            "qrValue": "JC-00004",
            "status": "NOT_STARTED",
            "billing": "NOT_INVOICED",
            "materialQc": "ACCEPTED",
            "designApproval": "PENDING",
            "operations": [
              {
                "id": "01a14ba6-e670-7383-a269-879726ac44d1",
                "seq": 1,
                "name": "Turning",
                "status": "PENDING",
                "operatorId": null
              },
              {
                "id": "01a14ba6-e670-7e54-bd33-df068f305cd2",
                "seq": 2,
                "name": "Milling",
                "status": "PENDING",
                "operatorId": null
              },
              {
                "id": "01a14ba6-e670-7507-aae3-49f3c9cf0ef1",
                "seq": 3,
                "name": "Finishing",
                "status": "PENDING",
                "operatorId": null
              }
            ]
          }
        },
        {
          "node": {
            "id": "01a14ba6-e60b-76c9-90a1-2e48ac0af20c",
            "orderId": "01a14ba6-e60b-78e2-be46-05dfc8ff1cff",
            "code": "JOB1",
            "qrValue": "JC-00001",
            "status": "COMPLETED",
            "billing": "INVOICED",
            "materialQc": "ACCEPTED",
            "designApproval": "APPROVED",
            "operations": [
              {
                "id": "01a14ba6-e626-76cf-b05f-c274e0674ee7",
                "seq": 1,
                "name": "Turning",
                "status": "COMPLETED",
                "operatorId": "01a14ba6-e46a-7f5d-8e34-76cbfb26b5ab"
              },
              {
                "id": "01a14ba6-e627-719c-806b-ac64265762a5",
                "seq": 2,
                "name": "Milling",
                "status": "COMPLETED",
                "operatorId": "01a14ba6-e46a-7f5d-8e34-76cbfb26b5ab"
              },
              {
                "id": "01a14ba6-e627-7e03-9a71-6f42bd07e4d2",
                "seq": 3,
                "name": "Finishing",
                "status": "COMPLETED",
                "operatorId": "01a14ba6-e46a-7f5d-8e34-76cbfb26b5ab"
              }
            ]
          }
        },
        {
          "node": {
            "id": "01a14ba6-e649-75ad-bbc9-16d7ecd00878",
            "orderId": "01a14ba6-e649-7d5b-9cc7-beaf68d484d7",
            "code": "JOB2",
            "qrValue": "JC-00002",
            "status": "COMPLETED",
            "billing": "INVOICED",
            "materialQc": "ACCEPTED",
            "designApproval": "APPROVED",
            "operations": [
              {
                "id": "01a14ba6-e64d-7037-9764-d88565c28617",
                "seq": 1,
                "name": "Turning",
                "status": "COMPLETED",
                "operatorId": "01a14ba6-e46a-7f5d-8e34-76cbfb26b5ab"
              },
              {
                "id": "01a14ba6-e64d-74b2-b6a0-86adb5271663",
                "seq": 2,
                "name": "Milling",
                "status": "COMPLETED",
                "operatorId": "01a14ba6-e46a-7f5d-8e34-76cbfb26b5ab"
              },
              {
                "id": "01a14ba6-e64d-7558-9888-cbe24e46077f",
                "seq": 3,
                "name": "Finishing",
                "status": "COMPLETED",
                "operatorId": "01a14ba6-e46a-7f5d-8e34-76cbfb26b5ab"
              }
            ]
          }
        },
        {
          "node": {
            "id": "01a14ba6-e65b-777f-9975-ca8ed40d8792",
            "orderId": "01a14ba6-e65b-7f56-8b35-19dd1d9b93d2",
            "code": "JOB3",
            "qrValue": "JC-00003",
            "status": "IN_PROGRESS",
            "billing": "NOT_INVOICED",
            "materialQc": "ACCEPTED",
            "designApproval": "APPROVED",
            "operations": [
              {
                "id": "01a14ba6-e65f-75d4-bf28-cbbe41f127f6",
                "seq": 1,
                "name": "Turning",
                "status": "RUNNING",
                "operatorId": "01a14ba6-e46a-7f5d-8e34-76cbfb26b5ab"
              },
              {
                "id": "01a14ba6-e65f-7d50-be77-0daed0461d04",
                "seq": 2,
                "name": "Milling",
                "status": "PENDING",
                "operatorId": null
              },
              {
                "id": "01a14ba6-e65f-7f06-96f5-34afdc3af49f",
                "seq": 3,
                "name": "Finishing",
                "status": "PENDING",
                "operatorId": null
              }
            ]
          }
        },
        {
          "node": {
            "id": "01a14ba6-e67d-7757-8629-269f740c10ba",
            "orderId": "01a14ba6-e67d-7144-a636-1c77ab125e29",
            "code": "JOB5",
            "qrValue": "JC-00005",
            "status": "NOT_STARTED",
            "billing": "NOT_INVOICED",
            "materialQc": "REJECTED",
            "designApproval": "PENDING",
            "operations": [
              {
                "id": "01a14ba6-e682-7349-b544-8bd33b0c693f",
                "seq": 1,
                "name": "Turning",
                "status": "PENDING",
                "operatorId": null
              },
              {
                "id": "01a14ba6-e682-76bb-b257-93119fc4aadd",
                "seq": 2,
                "name": "Milling",
                "status": "PENDING",
                "operatorId": null
              },
              {
                "id": "01a14ba6-e682-7879-8c84-2a65306245fb",
                "seq": 3,
                "name": "Finishing",
                "status": "PENDING",
                "operatorId": null
              }
            ]
          }
        },
        {
          "node": {
            "id": "01a14ba6-e695-7571-8b02-2a50cf0c7c89",
            "orderId": "01a14ba6-e695-7d5c-b505-a59fd80251a9",
            "code": "JOB6",
            "qrValue": "JC-00006",
            "status": "NOT_STARTED",
            "billing": "NOT_INVOICED",
            "materialQc": "PENDING",
            "designApproval": "PENDING",
            "operations": [
              {
                "id": "01a14ba6-e69b-7919-9161-b21877f4db19",
                "seq": 1,
                "name": "Turning",
                "status": "PENDING",
                "operatorId": null
              },
              {
                "id": "01a14ba6-e69b-7a95-ac75-3551e1cd0d72",
                "seq": 2,
                "name": "Milling",
                "status": "PENDING",
                "operatorId": null
              },
              {
                "id": "01a14ba6-e69b-777e-8426-b9ebd85d207a",
                "seq": 3,
                "name": "Finishing",
                "status": "PENDING",
                "operatorId": null
              }
            ]
          }
        }
      ]
    },
    "machines": {
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e589-7248-a7e0-1239851b82aa",
            "code": "MC-851B82AA",
            "status": "RUNNING"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e59c-7f83-8eb9-96f1137e4b98",
            "code": "MC-137E4B98",
            "status": "IDLE"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e5d7-711c-bcba-22be75d5d8b4",
            "code": "MC-75D5D8B4",
            "status": "MAINTENANCE"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e5b5-71f3-aaea-903c4d97acc6",
            "code": "MC-4D97ACC6",
            "status": "IDLE"
          }
        }
      ]
    },
    "quotes": {
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e68b-7186-9275-d44e3591f471",
            "status": "SENT",
            "orderId": null,
            "customerId": "01a14ba6-e55f-7151-850b-de9c5dbe0224"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e678-7c29-b24d-e8d8f0d4ac48",
            "status": "DRAFT",
            "orderId": null,
            "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e"
          }
        }
      ]
    },
    "invoices": {
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
            "status": "NEW",
            "orderId": "01a14ba6-e649-7d5b-9cc7-beaf68d484d7",
            "jobCardId": "01a14ba6-e649-75ad-bbc9-16d7ecd00878"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e818-7935-ad87-c0e2a7448c5a",
            "status": "PAID",
            "orderId": "01a14ba6-e60b-78e2-be46-05dfc8ff1cff",
            "jobCardId": "01a14ba6-e60b-76c9-90a1-2e48ac0af20c"
          }
        }
      ]
    },
    "users": {
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e4e7-7b64-88ac-67a67b46b313",
            "role": "ACCOUNTANT",
            "name": "Demo Accountant",
            "status": "ACTIVE"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e420-7894-9aa9-5dd131ee9c29",
            "role": "ADMIN",
            "name": "Demo Admin",
            "status": "ACTIVE"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e48b-766b-8c6b-8862bea47064",
            "role": "QC",
            "name": "Demo Inspector",
            "status": "ACTIVE"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e46a-7f5d-8e34-76cbfb26b5ab",
            "role": "OPERATOR",
            "name": "Demo Operator",
            "status": "ACTIVE"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e3c9-75f4-bf79-c35ada7f69bd",
            "role": "OWNER",
            "name": "Demo Owner",
            "status": "ACTIVE"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e442-7fae-b468-bf9fee75d9ec",
            "role": "SUPERVISOR",
            "name": "Demo Supervisor",
            "status": "ACTIVE"
          }
        }
      ]
    }
  }
}
067OrderDetails · loadownerPOST /graphql200 OKAs expected41 ms
Operation
order+customer+jobCard+invoices
Request id
01a14ba9-754b-7954-a88c-ba382118b85f
Expected
OK

Headers

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

Query

query AuditOrderDetails($id: ID!, $cardId: ID!, $customerId: ID!) { order(id: $id) { ...ORD } customer(id: $customerId) { id name email mobile } jobCard(id: $cardId) { ...J } invoices(first: 2, filter: { orderId: $id }) { totalCount edges { node { id number status } } } }
fragment ORD on Order { id jobCardId customerId customerName customerEmail partName jobName description quantity priority status dueDate poNumber poAmount routeCardNo dcNo dcDate partNumber drawingNumber rmPartNumber shopOrderNumber rawMaterialSize heatNumber projectId rawMaterialGrade materialSource quoteId notes createdAt designFile { ...F } documents { ...F } statusHistory { id label detail at tone } }
fragment F on AppFileReference { id name kind sizeBytes }
fragment J on JobCard { id orderId code qrValue customerId customerName partName jobName material quantity priority dueDate status designApproval materialSource materialQc quotation billing designFile { ...F } operations { ...OP } qcHistory { ...QR } }
fragment OP on JobOperation { id seq name machineId machineName operatorId operatorName status startedAt completedAt }
fragment QR on QcRecord { id kind stage result remark recordedAt jobOperationId inspector rejectedMaterial { grade heatNumber size } report { ...F } }

Variables

{
  "id": "01a14ba6-e66c-7460-9ced-7abbb006f491",
  "cardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
  "customerId": "01a14ba6-e56a-7478-990d-ceec492d63e7"
}

Response · HTTP 200

{
  "data": {
    "order": {
      "id": "01a14ba6-e66c-7460-9ced-7abbb006f491",
      "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
      "customerId": "01a14ba6-e56a-7478-990d-ceec492d63e7",
      "customerName": "Demo Agro Implements",
      "customerEmail": null,
      "partName": "Bearing housing",
      "jobName": null,
      "description": null,
      "quantity": 40,
      "priority": "HIGH",
      "status": "NEW",
      "dueDate": "2026-10-23",
      "poNumber": "DEMO-COI-PO-004",
      "poAmount": null,
      "routeCardNo": null,
      "dcNo": null,
      "dcDate": null,
      "partNumber": null,
      "drawingNumber": null,
      "rmPartNumber": null,
      "shopOrderNumber": null,
      "rawMaterialSize": "Ø40 x 3000 mm",
      "heatNumber": null,
      "projectId": null,
      "rawMaterialGrade": "EN8",
      "materialSource": "BOUGHT_OUT",
      "quoteId": null,
      "notes": null,
      "createdAt": "2026-10-17T20:56:31.594Z",
      "designFile": null,
      "documents": [],
      "statusHistory": [
        {
          "id": "01a14ba6-e66d-7d11-8ca9-c400735bf62f",
          "label": "Order created",
          "detail": null,
          "at": "2026-10-17T20:56:31.597Z",
          "tone": "INFO"
        },
        {
          "id": "01a14ba6-e89b-7df7-bf86-2d5bc146ca88",
          "label": "Incoming inspection: accepted",
          "detail": "Material and size as per drawing",
          "at": "2026-10-17T20:56:32.155Z",
          "tone": "SUCCESS"
        }
      ]
    },
    "customer": {
      "id": "01a14ba6-e56a-7478-990d-ceec492d63e7",
      "name": "Demo Agro Implements",
      "email": null,
      "mobile": ""
    },
    "jobCard": {
      "id": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
      "orderId": "01a14ba6-e66c-7460-9ced-7abbb006f491",
      "code": "JOB4",
      "qrValue": "JC-00004",
      "customerId": "01a14ba6-e56a-7478-990d-ceec492d63e7",
      "customerName": "Demo Agro Implements",
      "partName": "Bearing housing",
      "jobName": null,
      "material": "EN8 steel",
      "quantity": 40,
      "priority": "HIGH",
      "dueDate": "2026-10-23",
      "status": "NOT_STARTED",
      "designApproval": "PENDING",
      "materialSource": "BOUGHT_OUT",
      "materialQc": "ACCEPTED",
      "quotation": "PENDING",
      "billing": "NOT_INVOICED",
      "designFile": null,
      "operations": [
        {
          "id": "01a14ba6-e670-7383-a269-879726ac44d1",
          "seq": 1,
          "name": "Turning",
          "machineId": null,
          "machineName": null,
          "operatorId": null,
          "operatorName": null,
          "status": "PENDING",
          "startedAt": null,
          "completedAt": null
        },
        {
          "id": "01a14ba6-e670-7e54-bd33-df068f305cd2",
          "seq": 2,
          "name": "Milling",
          "machineId": null,
          "machineName": null,
          "operatorId": null,
          "operatorName": null,
          "status": "PENDING",
          "startedAt": null,
          "completedAt": null
        },
        {
          "id": "01a14ba6-e670-7507-aae3-49f3c9cf0ef1",
          "seq": 3,
          "name": "Finishing",
          "machineId": null,
          "machineName": null,
          "operatorId": null,
          "operatorName": null,
          "status": "PENDING",
          "startedAt": null,
          "completedAt": null
        }
      ],
      "qcHistory": [
        {
          "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
        }
      ]
    },
    "invoices": {
      "totalCount": 0,
      "edges": []
    }
  }
}
068OrderDetails · load-without-customer-mobileownerPOST /graphql200 OKAs expected24 ms

Control: same screen with `phone` in place of the app `mobile`.

Operation
order+customer+jobCard+invoices
Request id
01a14ba9-7679-79c3-a594-3c15bd8d85d8
Expected
OK

Headers

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

Query

query AuditOrderDetailsLive($id: ID!, $cardId: ID!, $customerId: ID!) { order(id: $id) { ...ORD } customer(id: $customerId) { id name email phone } jobCard(id: $cardId) { ...J } invoices(first: 2, filter: { orderId: $id }) { totalCount edges { node { id number status } } } }
fragment ORD on Order { id jobCardId customerId customerName customerEmail partName jobName description quantity priority status dueDate poNumber poAmount routeCardNo dcNo dcDate partNumber drawingNumber rmPartNumber shopOrderNumber rawMaterialSize heatNumber projectId rawMaterialGrade materialSource quoteId notes createdAt designFile { ...F } documents { ...F } statusHistory { id label detail at tone } }
fragment F on AppFileReference { id name kind sizeBytes }
fragment J on JobCard { id orderId code qrValue customerId customerName partName jobName material quantity priority dueDate status designApproval materialSource materialQc quotation billing designFile { ...F } operations { ...OP } qcHistory { ...QR } }
fragment OP on JobOperation { id seq name machineId machineName operatorId operatorName status startedAt completedAt }
fragment QR on QcRecord { id kind stage result remark recordedAt jobOperationId inspector rejectedMaterial { grade heatNumber size } report { ...F } }

Variables

{
  "id": "01a14ba6-e66c-7460-9ced-7abbb006f491",
  "cardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
  "customerId": "01a14ba6-e56a-7478-990d-ceec492d63e7"
}

Response · HTTP 200

{
  "data": {
    "order": {
      "id": "01a14ba6-e66c-7460-9ced-7abbb006f491",
      "jobCardId": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
      "customerId": "01a14ba6-e56a-7478-990d-ceec492d63e7",
      "customerName": "Demo Agro Implements",
      "customerEmail": null,
      "partName": "Bearing housing",
      "jobName": null,
      "description": null,
      "quantity": 40,
      "priority": "HIGH",
      "status": "NEW",
      "dueDate": "2026-10-23",
      "poNumber": "DEMO-COI-PO-004",
      "poAmount": null,
      "routeCardNo": null,
      "dcNo": null,
      "dcDate": null,
      "partNumber": null,
      "drawingNumber": null,
      "rmPartNumber": null,
      "shopOrderNumber": null,
      "rawMaterialSize": "Ø40 x 3000 mm",
      "heatNumber": null,
      "projectId": null,
      "rawMaterialGrade": "EN8",
      "materialSource": "BOUGHT_OUT",
      "quoteId": null,
      "notes": null,
      "createdAt": "2026-10-17T20:56:31.594Z",
      "designFile": null,
      "documents": [],
      "statusHistory": [
        {
          "id": "01a14ba6-e66d-7d11-8ca9-c400735bf62f",
          "label": "Order created",
          "detail": null,
          "at": "2026-10-17T20:56:31.597Z",
          "tone": "INFO"
        },
        {
          "id": "01a14ba6-e89b-7df7-bf86-2d5bc146ca88",
          "label": "Incoming inspection: accepted",
          "detail": "Material and size as per drawing",
          "at": "2026-10-17T20:56:32.155Z",
          "tone": "SUCCESS"
        }
      ]
    },
    "customer": {
      "id": "01a14ba6-e56a-7478-990d-ceec492d63e7",
      "name": "Demo Agro Implements",
      "email": null,
      "phone": null
    },
    "jobCard": {
      "id": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1",
      "orderId": "01a14ba6-e66c-7460-9ced-7abbb006f491",
      "code": "JOB4",
      "qrValue": "JC-00004",
      "customerId": "01a14ba6-e56a-7478-990d-ceec492d63e7",
      "customerName": "Demo Agro Implements",
      "partName": "Bearing housing",
      "jobName": null,
      "material": "EN8 steel",
      "quantity": 40,
      "priority": "HIGH",
      "dueDate": "2026-10-23",
      "status": "NOT_STARTED",
      "designApproval": "PENDING",
      "materialSource": "BOUGHT_OUT",
      "materialQc": "ACCEPTED",
      "quotation": "PENDING",
      "billing": "NOT_INVOICED",
      "designFile": null,
      "operations": [
        {
          "id": "01a14ba6-e670-7383-a269-879726ac44d1",
          "seq": 1,
          "name": "Turning",
          "machineId": null,
          "machineName": null,
          "operatorId": null,
          "operatorName": null,
          "status": "PENDING",
          "startedAt": null,
          "completedAt": null
        },
        {
          "id": "01a14ba6-e670-7e54-bd33-df068f305cd2",
          "seq": 2,
          "name": "Milling",
          "machineId": null,
          "machineName": null,
          "operatorId": null,
          "operatorName": null,
          "status": "PENDING",
          "startedAt": null,
          "completedAt": null
        },
        {
          "id": "01a14ba6-e670-7507-aae3-49f3c9cf0ef1",
          "seq": 3,
          "name": "Finishing",
          "machineId": null,
          "machineName": null,
          "operatorId": null,
          "operatorName": null,
          "status": "PENDING",
          "startedAt": null,
          "completedAt": null
        }
      ],
      "qcHistory": [
        {
          "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
        }
      ]
    },
    "invoices": {
      "totalCount": 0,
      "edges": []
    }
  }
}
085JobCardDetails · existing-invoicesupervisorPOST /graphql403 FORBIDDENAs decided6 ms

D5: a supervisor does not read invoices.

Operation
invoices
Request id
01a14ba9-99ad-70cf-ac38-6582c70f7e8a
Expected
OK

Headers

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

Query

query AuditCardInvoices($id: ID!) { invoices(first: 1, filter: { jobCardId: $id }) { totalCount edges { node { id number } } } }

Variables

{
  "id": "01a14ba6-e66c-79e7-b2cf-2c2dcc9126a1"
}

Response · HTTP 403

{
  "errors": [
    {
      "message": "You do not have access to this.",
      "locations": [
        {
          "line": 1,
          "column": 37
        }
      ],
      "path": [
        "invoices"
      ],
      "extensions": {
        "code": "FORBIDDEN",
        "message": "You do not have access to this.",
        "requestId": "01a14ba9-99ad-70cf-ac38-6582c70f7e8a"
      }
    }
  ],
  "data": null
}
130Billing · loadownerPOST /graphql200 OKAs expected60 ms
Operation
invoices+invoiceSummary+quotes
Request id
01a14ba9-cd4a-7492-bb36-05fadf058fb6
Expected
OK

Headers

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

Query

query AuditBilling { invoices(first: 5, sort: { field: NUMBER, direction: DESC }) { totalCount edges { node { ...INV } } } invoiceSummary { total new overdue paid billedThisMonth outstanding overdueAmount } quotes(first: 5, sort: { field: NUMBER, direction: DESC }) { totalCount edges { node { ...QT } } } quoteAll: quotes(first: 1) { totalCount } quoteDraft: quotes(first: 1, filter: { status: DRAFT }) { totalCount } quoteSent: quotes(first: 1, filter: { status: SENT }) { totalCount } }
fragment INV on Invoice { id number customerId customerName jobCardId orderId routeCard part quantity status discount gstRate quoteId poAmount notes issuedAt dueDate lines { id operation description minutesPerPiece setupMinutes ratePerMinute amount } totals { subtotal discount taxable gstRate supply cgst sgst igst gst total } payment { paidOn receivedAmount tdsAmount tdsSection } }
fragment QT on Quote { id number customerId customerName part quantity material status gstRate orderId createdAt lines { id operation description minutesPerPiece setupMinutes ratePerMinute amount } totals { subtotal discount taxable gstRate supply cgst sgst igst gst total } }

Variables

{}

Response · HTTP 200

{
  "data": {
    "invoices": {
      "totalCount": 2,
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
            "number": "CBE/26-27/0002",
            "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e",
            "customerName": "Demo Auto Components",
            "jobCardId": "01a14ba6-e649-75ad-bbc9-16d7ecd00878",
            "orderId": "01a14ba6-e649-7d5b-9cc7-beaf68d484d7",
            "routeCard": "JC-00002",
            "part": "Valve spindle",
            "quantity": 80,
            "status": "NEW",
            "discount": 0,
            "gstRate": 18,
            "quoteId": null,
            "poAmount": null,
            "notes": null,
            "issuedAt": "2026-10-18",
            "dueDate": "2026-11-17",
            "lines": [
              {
                "id": "01a14ba6-e834-7522-b8bb-9760c119f49d",
                "operation": "CNC turning",
                "description": "",
                "minutesPerPiece": 6,
                "setupMinutes": 45,
                "ratePerMinute": 1500,
                "amount": 787500
              },
              {
                "id": "01a14ba6-e834-79d8-b991-0695c09addf2",
                "operation": "Deburring",
                "description": "",
                "minutesPerPiece": 1,
                "setupMinutes": 0,
                "ratePerMinute": 800,
                "amount": 64000
              }
            ],
            "totals": {
              "subtotal": 851500,
              "discount": 0,
              "taxable": 851500,
              "gstRate": 18,
              "supply": "INTRA",
              "cgst": 76635,
              "sgst": 76635,
              "igst": 0,
              "gst": 153270,
              "total": 1004770
            },
            "payment": null
          }
        },
        {
          "node": {
            "id": "01a14ba6-e818-7935-ad87-c0e2a7448c5a",
            "number": "CBE/26-27/0001",
            "customerId": "01a14ba6-e533-720d-adca-0c4fb0dedcdd",
            "customerName": "Demo Pumps & Valves",
            "jobCardId": "01a14ba6-e60b-76c9-90a1-2e48ac0af20c",
            "orderId": "01a14ba6-e60b-78e2-be46-05dfc8ff1cff",
            "routeCard": "JC-00001",
            "part": "Pump shaft",
            "quantity": 120,
            "status": "PAID",
            "discount": 0,
            "gstRate": 18,
            "quoteId": null,
            "poAmount": null,
            "notes": null,
            "issuedAt": "2026-10-18",
            "dueDate": "2026-11-17",
            "lines": [
              {
                "id": "01a14ba6-e817-747b-99d8-4c200a0ecb59",
                "operation": "CNC turning",
                "description": "",
                "minutesPerPiece": 6,
                "setupMinutes": 45,
                "ratePerMinute": 1500,
                "amount": 1147500
              },
              {
                "id": "01a14ba6-e817-7d7a-87f4-5d54ed3702d6",
                "operation": "Deburring",
                "description": "",
                "minutesPerPiece": 1,
                "setupMinutes": 0,
                "ratePerMinute": 800,
                "amount": 96000
              }
            ],
            "totals": {
              "subtotal": 1243500,
              "discount": 0,
              "taxable": 1243500,
              "gstRate": 18,
              "supply": "INTRA",
              "cgst": 111915,
              "sgst": 111915,
              "igst": 0,
              "gst": 223830,
              "total": 1467330
            },
            "payment": {
              "paidOn": "2026-10-18",
              "receivedAmount": 1442460,
              "tdsAmount": 24870,
              "tdsSection": "194C"
            }
          }
        }
      ]
    },
    "invoiceSummary": {
      "total": 2,
      "new": 1,
      "overdue": 0,
      "paid": 1,
      "billedThisMonth": 2472100,
      "outstanding": 1004770,
      "overdueAmount": 0
    },
    "quotes": {
      "totalCount": 2,
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e68b-7186-9275-d44e3591f471",
            "number": "QTN/26-27/0002",
            "customerId": "01a14ba6-e55f-7151-850b-de9c5dbe0224",
            "customerName": "Demo Textile Machinery",
            "part": "Spline shaft",
            "quantity": 100,
            "material": "EN19 steel",
            "status": "SENT",
            "gstRate": 18,
            "orderId": null,
            "createdAt": "2026-10-17T20:56:31.680Z",
            "lines": [
              {
                "id": "01a14ba6-e68b-70d0-bdb2-cf0c1c5ee97d",
                "operation": "CNC turning",
                "description": "",
                "minutesPerPiece": 6,
                "setupMinutes": 45,
                "ratePerMinute": 1500,
                "amount": 967500
              },
              {
                "id": "01a14ba6-e68b-74f5-b24b-0d37caf8aa51",
                "operation": "Deburring",
                "description": "",
                "minutesPerPiece": 1,
                "setupMinutes": 0,
                "ratePerMinute": 800,
                "amount": 80000
              }
            ],
            "totals": {
              "subtotal": 1047500,
              "discount": 0,
              "taxable": 1047500,
              "gstRate": 18,
              "supply": "INTRA",
              "cgst": 94275,
              "sgst": 94275,
              "igst": 0,
              "gst": 188550,
              "total": 1236050
            }
          }
        },
        {
          "node": {
            "id": "01a14ba6-e678-7c29-b24d-e8d8f0d4ac48",
            "number": "QTN/26-27/0001",
            "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e",
            "customerName": "Demo Auto Components",
            "part": "Hydraulic cylinder rod",
            "quantity": 50,
            "material": "EN19 steel",
            "status": "DRAFT",
            "gstRate": 18,
            "orderId": null,
            "createdAt": "2026-10-17T20:56:31.655Z",
            "lines": [
              {
                "id": "01a14ba6-e677-7155-8386-86e3b75f4134",
                "operation": "CNC turning",
                "description": "",
                "minutesPerPiece": 6,
                "setupMinutes": 45,
                "ratePerMinute": 1500,
                "amount": 517500
              },
              {
                "id": "01a14ba6-e677-7b39-8b3d-1b7247c34946",
                "operation": "Deburring",
                "description": "",
                "minutesPerPiece": 1,
                "setupMinutes": 0,
                "ratePerMinute": 800,
                "amount": 40000
              }
            ],
            "totals": {
              "subtotal": 557500,
              "discount": 0,
              "taxable": 557500,
              "gstRate": 18,
              "supply": "INTRA",
              "cgst": 50175,
              "sgst": 50175,
              "igst": 0,
              "gst": 100350,
              "total": 657850
            }
          }
        }
      ]
    },
    "quoteAll": {
      "totalCount": 2
    },
    "quoteDraft": {
      "totalCount": 1
    },
    "quoteSent": {
      "totalCount": 1
    }
  }
}
131Billing · filter-two-statusesownerPOST /graphql200 OKAs expected30 ms

The app status filter is multi-select.

Operation
invoices(filter)
Request id
01a14ba9-ce8b-79d7-9b9b-3d3e1eacab1c
Expected
OK

Headers

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

Query

query AuditInvoicesStatuses { invoices(first: 5, filter: { statuses: [NEW, OVERDUE] }) { totalCount } }

Variables

{}

Response · HTTP 200

{
  "data": {
    "invoices": {
      "totalCount": 1
    }
  }
}
163Billing · invoice-searchownerPOST /graphql200 OKAs expected17 ms
Operation
invoices(search)
Request id
01a14ba9-f3a7-7520-9cf3-903a683d94ee
Expected
OK

Headers

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

Query

query AuditInvoiceSearch { invoices(first: 5, search: "Audit") { totalCount } }

Variables

{}

Response · HTTP 200

{
  "data": {
    "invoices": {
      "totalCount": 0
    }
  }
}
209Billing · live-idsownerPOST /graphql200 OKAs expected40 ms
Operation
invoices+quotes
Request id
01a14bff-ec58-7653-b8d4-2ebb129781c7
Expected
OK

Headers

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

Query

query ProofIds {
  invoices(first: 5) { edges { node { id number customerId } } }
  quotes(first: 10) { edges { node { id number status orderId customerId } } } }

Variables

{}

Response · HTTP 200

{
  "data": {
    "invoices": {
      "edges": [
        {
          "node": {
            "id": "01a14baa-188a-7728-99be-72bfc173da7c",
            "number": "DCW/26-27/0101",
            "customerId": "01a14ba6-e56a-7478-990d-ceec492d63e7"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
            "number": "CBE/26-27/0002",
            "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e818-7935-ad87-c0e2a7448c5a",
            "number": "CBE/26-27/0001",
            "customerId": "01a14ba6-e533-720d-adca-0c4fb0dedcdd"
          }
        }
      ]
    },
    "quotes": {
      "edges": [
        {
          "node": {
            "id": "01a14ba9-d1fa-71fe-8713-a07475f8dd8a",
            "number": "QTN/26-27/0003",
            "status": "SENT",
            "orderId": "01a14ba9-da4f-79da-8065-a9d7e84cac99",
            "customerId": "01a14ba6-e56a-7478-990d-ceec492d63e7"
          }
        },
        {
          "node": {
            "id": "01a14ba6-e68b-7186-9275-d44e3591f471",
            "number": "QTN/26-27/0002",
            "status": "SENT",
            "orderId": null,
            "customerId": "01a14ba6-e55f-7151-850b-de9c5dbe0224"
          }
        }
      ]
    }
  }
}

invoiceSummary

130Billing · loadownerPOST /graphql200 OKAs expected60 ms
Operation
invoices+invoiceSummary+quotes
Request id
01a14ba9-cd4a-7492-bb36-05fadf058fb6
Expected
OK

Headers

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

Query

query AuditBilling { invoices(first: 5, sort: { field: NUMBER, direction: DESC }) { totalCount edges { node { ...INV } } } invoiceSummary { total new overdue paid billedThisMonth outstanding overdueAmount } quotes(first: 5, sort: { field: NUMBER, direction: DESC }) { totalCount edges { node { ...QT } } } quoteAll: quotes(first: 1) { totalCount } quoteDraft: quotes(first: 1, filter: { status: DRAFT }) { totalCount } quoteSent: quotes(first: 1, filter: { status: SENT }) { totalCount } }
fragment INV on Invoice { id number customerId customerName jobCardId orderId routeCard part quantity status discount gstRate quoteId poAmount notes issuedAt dueDate lines { id operation description minutesPerPiece setupMinutes ratePerMinute amount } totals { subtotal discount taxable gstRate supply cgst sgst igst gst total } payment { paidOn receivedAmount tdsAmount tdsSection } }
fragment QT on Quote { id number customerId customerName part quantity material status gstRate orderId createdAt lines { id operation description minutesPerPiece setupMinutes ratePerMinute amount } totals { subtotal discount taxable gstRate supply cgst sgst igst gst total } }

Variables

{}

Response · HTTP 200

{
  "data": {
    "invoices": {
      "totalCount": 2,
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
            "number": "CBE/26-27/0002",
            "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e",
            "customerName": "Demo Auto Components",
            "jobCardId": "01a14ba6-e649-75ad-bbc9-16d7ecd00878",
            "orderId": "01a14ba6-e649-7d5b-9cc7-beaf68d484d7",
            "routeCard": "JC-00002",
            "part": "Valve spindle",
            "quantity": 80,
            "status": "NEW",
            "discount": 0,
            "gstRate": 18,
            "quoteId": null,
            "poAmount": null,
            "notes": null,
            "issuedAt": "2026-10-18",
            "dueDate": "2026-11-17",
            "lines": [
              {
                "id": "01a14ba6-e834-7522-b8bb-9760c119f49d",
                "operation": "CNC turning",
                "description": "",
                "minutesPerPiece": 6,
                "setupMinutes": 45,
                "ratePerMinute": 1500,
                "amount": 787500
              },
              {
                "id": "01a14ba6-e834-79d8-b991-0695c09addf2",
                "operation": "Deburring",
                "description": "",
                "minutesPerPiece": 1,
                "setupMinutes": 0,
                "ratePerMinute": 800,
                "amount": 64000
              }
            ],
            "totals": {
              "subtotal": 851500,
              "discount": 0,
              "taxable": 851500,
              "gstRate": 18,
              "supply": "INTRA",
              "cgst": 76635,
              "sgst": 76635,
              "igst": 0,
              "gst": 153270,
              "total": 1004770
            },
            "payment": null
          }
        },
        {
          "node": {
            "id": "01a14ba6-e818-7935-ad87-c0e2a7448c5a",
            "number": "CBE/26-27/0001",
            "customerId": "01a14ba6-e533-720d-adca-0c4fb0dedcdd",
            "customerName": "Demo Pumps & Valves",
            "jobCardId": "01a14ba6-e60b-76c9-90a1-2e48ac0af20c",
            "orderId": "01a14ba6-e60b-78e2-be46-05dfc8ff1cff",
            "routeCard": "JC-00001",
            "part": "Pump shaft",
            "quantity": 120,
            "status": "PAID",
            "discount": 0,
            "gstRate": 18,
            "quoteId": null,
            "poAmount": null,
            "notes": null,
            "issuedAt": "2026-10-18",
            "dueDate": "2026-11-17",
            "lines": [
              {
                "id": "01a14ba6-e817-747b-99d8-4c200a0ecb59",
                "operation": "CNC turning",
                "description": "",
                "minutesPerPiece": 6,
                "setupMinutes": 45,
                "ratePerMinute": 1500,
                "amount": 1147500
              },
              {
                "id": "01a14ba6-e817-7d7a-87f4-5d54ed3702d6",
                "operation": "Deburring",
                "description": "",
                "minutesPerPiece": 1,
                "setupMinutes": 0,
                "ratePerMinute": 800,
                "amount": 96000
              }
            ],
            "totals": {
              "subtotal": 1243500,
              "discount": 0,
              "taxable": 1243500,
              "gstRate": 18,
              "supply": "INTRA",
              "cgst": 111915,
              "sgst": 111915,
              "igst": 0,
              "gst": 223830,
              "total": 1467330
            },
            "payment": {
              "paidOn": "2026-10-18",
              "receivedAmount": 1442460,
              "tdsAmount": 24870,
              "tdsSection": "194C"
            }
          }
        }
      ]
    },
    "invoiceSummary": {
      "total": 2,
      "new": 1,
      "overdue": 0,
      "paid": 1,
      "billedThisMonth": 2472100,
      "outstanding": 1004770,
      "overdueAmount": 0
    },
    "quotes": {
      "totalCount": 2,
      "edges": [
        {
          "node": {
            "id": "01a14ba6-e68b-7186-9275-d44e3591f471",
            "number": "QTN/26-27/0002",
            "customerId": "01a14ba6-e55f-7151-850b-de9c5dbe0224",
            "customerName": "Demo Textile Machinery",
            "part": "Spline shaft",
            "quantity": 100,
            "material": "EN19 steel",
            "status": "SENT",
            "gstRate": 18,
            "orderId": null,
            "createdAt": "2026-10-17T20:56:31.680Z",
            "lines": [
              {
                "id": "01a14ba6-e68b-70d0-bdb2-cf0c1c5ee97d",
                "operation": "CNC turning",
                "description": "",
                "minutesPerPiece": 6,
                "setupMinutes": 45,
                "ratePerMinute": 1500,
                "amount": 967500
              },
              {
                "id": "01a14ba6-e68b-74f5-b24b-0d37caf8aa51",
                "operation": "Deburring",
                "description": "",
                "minutesPerPiece": 1,
                "setupMinutes": 0,
                "ratePerMinute": 800,
                "amount": 80000
              }
            ],
            "totals": {
              "subtotal": 1047500,
              "discount": 0,
              "taxable": 1047500,
              "gstRate": 18,
              "supply": "INTRA",
              "cgst": 94275,
              "sgst": 94275,
              "igst": 0,
              "gst": 188550,
              "total": 1236050
            }
          }
        },
        {
          "node": {
            "id": "01a14ba6-e678-7c29-b24d-e8d8f0d4ac48",
            "number": "QTN/26-27/0001",
            "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e",
            "customerName": "Demo Auto Components",
            "part": "Hydraulic cylinder rod",
            "quantity": 50,
            "material": "EN19 steel",
            "status": "DRAFT",
            "gstRate": 18,
            "orderId": null,
            "createdAt": "2026-10-17T20:56:31.655Z",
            "lines": [
              {
                "id": "01a14ba6-e677-7155-8386-86e3b75f4134",
                "operation": "CNC turning",
                "description": "",
                "minutesPerPiece": 6,
                "setupMinutes": 45,
                "ratePerMinute": 1500,
                "amount": 517500
              },
              {
                "id": "01a14ba6-e677-7b39-8b3d-1b7247c34946",
                "operation": "Deburring",
                "description": "",
                "minutesPerPiece": 1,
                "setupMinutes": 0,
                "ratePerMinute": 800,
                "amount": 40000
              }
            ],
            "totals": {
              "subtotal": 557500,
              "discount": 0,
              "taxable": 557500,
              "gstRate": 18,
              "supply": "INTRA",
              "cgst": 50175,
              "sgst": 50175,
              "igst": 0,
              "gst": 100350,
              "total": 657850
            }
          }
        }
      ]
    },
    "quoteAll": {
      "totalCount": 2
    },
    "quoteDraft": {
      "totalCount": 1
    },
    "quoteSent": {
      "totalCount": 1
    }
  }
}

markInvoicePaid

145InvoiceDetails · mark-paidadminPOST /graphql403 FORBIDDENAs decided30 ms

D10: only owner and accountant record payments.

Operation
markInvoicePaid
Request id
01a14ba9-de9a-7aed-8874-f63492806090
Expected
OK

Headers

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

Query

mutation AuditMarkPaidAdmin($id: ID!, $input: PaymentInput!) { markInvoicePaid(id: $id, input: $input) { id status } }

Variables

{
  "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
  "input": {
    "paidOn": "2026-10-18"
  }
}

Response · HTTP 403

{
  "errors": [
    {
      "message": "You do not have access to this.",
      "locations": [
        {
          "line": 1,
          "column": 64
        }
      ],
      "path": [
        "markInvoicePaid"
      ],
      "extensions": {
        "code": "FORBIDDEN",
        "message": "You do not have access to this.",
        "requestId": "01a14ba9-de9a-7aed-8874-f63492806090"
      }
    }
  ],
  "data": null
}
198InvoiceDetails · mark-paid-flowaccountantPOST /graphql200 OKAs expected18 ms
Operation
markInvoicePaid
Request id
01a14baa-1bb9-7c08-9c03-7e46d9d7bdb9
Expected
OK

Headers

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

Query

mutation AuditFlowPaid($id: ID!, $input: PaymentInput!) { markInvoicePaid(id: $id, input: $input) { id status } }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c",
  "input": {
    "paidOn": "2026-10-18",
    "tds": {
      "amount": 100,
      "section": "194C"
    }
  }
}

Response · HTTP 200

{
  "data": {
    "markInvoicePaid": {
      "id": "01a14baa-188a-7728-99be-72bfc173da7c",
      "status": "PAID"
    }
  }
}

sendInvoice

146InvoiceDetails · send-invoiceownerPOST /graphql400 GRAPHQL_INVALIDSuperseded9 ms

G26 was cut from Train C; proven live by calls 217-220 and 223-224 (N1C-129).

Operation
sendInvoice (none)
Request id
01a14ba9-dfbe-7e63-9e9f-e83f3619c65c
Expected
OK

Headers

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

Query

mutation AuditSendInvoice($id: ID!) { sendInvoice(id: $id) { id } }

Variables

{
  "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc"
}

Response · HTTP 400

{
  "data": null,
  "errors": [
    {
      "message": "Cannot query field \"sendInvoice\" on type \"Mutation\". Did you mean \"createInvoice\" or \"sendQuote\"?",
      "locations": [
        {
          "line": 1,
          "column": 39
        }
      ],
      "extensions": {
        "code": "GRAPHQL_INVALID",
        "message": "The GraphQL document is invalid.",
        "requestId": "01a14ba9-dfbe-7e63-9e9f-e83f3619c65c"
      }
    }
  ]
}
217InvoiceDetails · send-invoice-customer-without-emailownerPOST /graphql422 CUSTOMER_EMAIL_MISSINGAs expected25 ms

G26: to defaults to the customer email; this demo customer has none, so the app asks for an address.

Operation
sendInvoice
Request id
01a14bff-f58a-77f6-97c9-ef9272c6e8b8
Expected
CUSTOMER_EMAIL_MISSING

Headers

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

Query

mutation ProofSendInvoice($id: ID!, $to: String, $cc: [String!]) { sendInvoice(id: $id, to: $to, cc: $cc) { id number status } }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c",
  "cc": [
    "accounts@example.test"
  ]
}

Response · HTTP 422

{
  "errors": [
    {
      "message": "This customer has no email address. Enter one to send to.",
      "locations": [
        {
          "line": 1,
          "column": 68
        }
      ],
      "path": [
        "sendInvoice"
      ],
      "extensions": {
        "code": "CUSTOMER_EMAIL_MISSING",
        "message": "This customer has no email address. Enter one to send to.",
        "requestId": "01a14bff-f58a-77f6-97c9-ef9272c6e8b8"
      }
    }
  ],
  "data": null
}
218InvoiceDetails · send-invoiceownerPOST /graphql200 OKAs expected49 ms

G26: the worker renders or reuses the PDF and attaches it.

Operation
sendInvoice
Request id
01a14bff-f6a9-798b-9dc7-dea6283eb61f
Expected
OK

Headers

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

Query

mutation ProofSendInvoice($id: ID!, $to: String, $cc: [String!]) { sendInvoice(id: $id, to: $to, cc: $cc) { id number status } }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c",
  "to": "buyer@example.test",
  "cc": [
    "accounts@example.test"
  ]
}

Response · HTTP 200

{
  "data": {
    "sendInvoice": {
      "id": "01a14baa-188a-7728-99be-72bfc173da7c",
      "number": "DCW/26-27/0101",
      "status": "PAID"
    }
  }
}
220InvoiceDetails · mailpit-shows-email-with-pdfownerGET /api/v1/search200 OKAs expected1063 ms

Not a Core call: what the worker delivered to Mailpit (http://127.0.0.1:48025).

Operation
Mailpit GET /api/v1/search + /message/:id
Expected
OK

Response · HTTP 200

{
  "Subject": "Invoice DCW/26-27/0101 from Demo Coimbatore Works",
  "From": "no-reply@n1.local",
  "To": [
    "buyer@example.test"
  ],
  "Cc": [
    "accounts@example.test"
  ],
  "Text": "Hello,\r\n\r\nPlease find attached invoice DCW/26-27/0101 from Demo Coimbatore Works for Rs. 212.40, due on 2026-11-17.\r\n\r\nThank you,\r\nDemo Coimbatore Works",
  "Attachments": [
    {
      "FileName": "DCW-26-27-0101.pdf",
      "ContentType": "application/pdf",
      "Size": 3997
    }
  ],
  "attachmentHeader": "%PDF-1.4"
}
229InvoiceDetails · send-invoiceoperatorPOST /graphql403 FORBIDDENAs expected10 ms
Operation
sendInvoice
Request id
01a14c00-070c-7a0c-843b-b216e8952213
Expected
FORBIDDEN

Headers

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

Query

mutation ProofSendInvoiceDenied($id: ID!) { sendInvoice(id: $id) { id } }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c"
}

Response · HTTP 403

{
  "errors": [
    {
      "message": "You do not have access to this.",
      "locations": [
        {
          "line": 1,
          "column": 45
        }
      ],
      "path": [
        "sendInvoice"
      ],
      "extensions": {
        "code": "FORBIDDEN",
        "message": "You do not have access to this.",
        "requestId": "01a14c00-070c-7a0c-843b-b216e8952213"
      }
    }
  ],
  "data": null
}
235InvoiceDetails · send-invoiceqcPOST /graphql403 FORBIDDENAs expected7 ms
Operation
sendInvoice
Request id
01a14c00-0d72-7fac-b9d7-4e75e93ec917
Expected
FORBIDDEN

Headers

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

Query

mutation ProofSendInvoiceDenied($id: ID!) { sendInvoice(id: $id) { id } }

Variables

{
  "id": "01a14baa-188a-7728-99be-72bfc173da7c"
}

Response · HTTP 403

{
  "errors": [
    {
      "message": "You do not have access to this.",
      "locations": [
        {
          "line": 1,
          "column": 45
        }
      ],
      "path": [
        "sendInvoice"
      ],
      "extensions": {
        "code": "FORBIDDEN",
        "message": "You do not have access to this.",
        "requestId": "01a14c00-0d72-7fac-b9d7-4e75e93ec917"
      }
    }
  ],
  "data": null
}

updateInvoice

144InvoiceEdit · saveaccountantPOST /graphql200 OKAs expected45 ms
Operation
updateInvoice
Request id
01a14ba9-dd65-710a-afd7-77115c3cd8a5
Expected
OK

Headers

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

Query

mutation AuditUpdateInvoice($id: ID!, $input: InvoiceUpdateInput!) { updateInvoice(id: $id, input: $input) { ...INV } }
fragment INV on Invoice { id number customerId customerName jobCardId orderId routeCard part quantity status discount gstRate quoteId poAmount notes issuedAt dueDate lines { id operation description minutesPerPiece setupMinutes ratePerMinute amount } totals { subtotal discount taxable gstRate supply cgst sgst igst gst total } payment { paidOn receivedAmount tdsAmount tdsSection } }

Variables

{
  "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
  "input": {
    "discount": 10000,
    "notes": "Synthetic note"
  }
}

Response · HTTP 200

{
  "data": {
    "updateInvoice": {
      "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
      "number": "CBE/26-27/0002",
      "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e",
      "customerName": "Demo Auto Components",
      "jobCardId": "01a14ba6-e649-75ad-bbc9-16d7ecd00878",
      "orderId": "01a14ba6-e649-7d5b-9cc7-beaf68d484d7",
      "routeCard": "JC-00002",
      "part": "Valve spindle",
      "quantity": 80,
      "status": "NEW",
      "discount": 10000,
      "gstRate": 18,
      "quoteId": null,
      "poAmount": null,
      "notes": "Synthetic note",
      "issuedAt": "2026-10-18",
      "dueDate": "2026-11-17",
      "lines": [
        {
          "id": "01a14ba9-dd77-7174-b638-332cefced4e0",
          "operation": "CNC turning",
          "description": "",
          "minutesPerPiece": 6,
          "setupMinutes": 45,
          "ratePerMinute": 1500,
          "amount": 787500
        },
        {
          "id": "01a14ba9-dd77-7240-9a7c-842ff4aa8e25",
          "operation": "Deburring",
          "description": "",
          "minutesPerPiece": 1,
          "setupMinutes": 0,
          "ratePerMinute": 800,
          "amount": 64000
        }
      ],
      "totals": {
        "subtotal": 851500,
        "discount": 10000,
        "taxable": 841500,
        "gstRate": 18,
        "supply": "INTRA",
        "cgst": 75735,
        "sgst": 75735,
        "igst": 0,
        "gst": 151470,
        "total": 992970
      },
      "payment": null
    }
  }
}
164InvoiceOperations · save-linesaccountantPOST /graphql200 OKAs expected44 ms
Operation
updateInvoice
Request id
01a14ba9-f4bd-7ec3-aabb-0749f465a74b
Expected
OK

Headers

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

Query

mutation AuditInvoiceLines($id: ID!, $input: InvoiceUpdateInput!) { updateInvoice(id: $id, input: $input) { ...INV } }
fragment INV on Invoice { id number customerId customerName jobCardId orderId routeCard part quantity status discount gstRate quoteId poAmount notes issuedAt dueDate lines { id operation description minutesPerPiece setupMinutes ratePerMinute amount } totals { subtotal discount taxable gstRate supply cgst sgst igst gst total } payment { paidOn receivedAmount tdsAmount tdsSection } }

Variables

{
  "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
  "input": {
    "lines": [
      {
        "operation": "Turning",
        "description": "Synthetic",
        "minutesPerPiece": 3,
        "setupMinutes": 10,
        "ratePerMinute": 1200
      },
      {
        "operation": "Drilling",
        "minutesPerPiece": 1,
        "ratePerMinute": 900
      }
    ]
  }
}

Response · HTTP 200

{
  "data": {
    "updateInvoice": {
      "id": "01a14ba6-e836-79c7-861a-0c20920fb6fc",
      "number": "CBE/26-27/0002",
      "customerId": "01a14ba6-e54e-713f-beb0-6e57f2a9a88e",
      "customerName": "Demo Auto Components",
      "jobCardId": "01a14ba6-e649-75ad-bbc9-16d7ecd00878",
      "orderId": "01a14ba6-e649-7d5b-9cc7-beaf68d484d7",
      "routeCard": "JC-00002",
      "part": "Valve spindle",
      "quantity": 80,
      "status": "NEW",
      "discount": 10000,
      "gstRate": 18,
      "quoteId": null,
      "poAmount": null,
      "notes": "Synthetic note",
      "issuedAt": "2026-10-18",
      "dueDate": "2026-11-17",
      "lines": [
        {
          "id": "01a14ba9-f4d9-781a-b719-17206ea32c3a",
          "operation": "Turning",
          "description": "Synthetic",
          "minutesPerPiece": 3,
          "setupMinutes": 10,
          "ratePerMinute": 1200,
          "amount": 300000
        },
        {
          "id": "01a14ba9-f4d9-72e9-9326-b7065206b094",
          "operation": "Drilling",
          "description": "",
          "minutesPerPiece": 1,
          "setupMinutes": 0,
          "ratePerMinute": 900,
          "amount": 72000
        }
      ],
      "totals": {
        "subtotal": 372000,
        "discount": 10000,
        "taxable": 362000,
        "gstRate": 18,
        "supply": "INTRA",
        "cgst": 32580,
        "sgst": 32580,
        "igst": 0,
        "gst": 65160,
        "total": 427160
      },
      "payment": null
    }
  }
}

Search documentation

Search operations, types and errors from the generated contract.