API — Procurement¶
The HTTP surface of the procurement chain — Purchase Request → RFQ → Purchase Order → Goods
Received Note → Payment Order — plus the supplier registry. Each document has the same shape: an
Index grid, a Details page, Create / Edit fragments, attachment actions, and a single
ContextActions POST that advances its StatusId.
Shared permission family
GRNController and PaymentOrderController are gated almost entirely by PurchaseOrder*
keys rather than keys of their own — 50 actions in total. That is consistent within the chain
but coarse; see R3-6 in Recommendations.
See Procurement module and Procurement Cycle.
157 actions across 6 controllers
Routing, the permission model, response kinds and error behaviour are described
once in the API Overview. Unless a row says otherwise the route is
/{Controller}/{Action}, id is a GUID string, and a Details page is a
full View while Manage* / Create fragments are PartialViews loaded into a modal.
PurchaseRequestController¶
The Purchase Request — creation, materials, budget-line selection, the SOD approval chain and the PR tracker.
Source: NKO.Main/NKO.Main/Controllers/PurchaseRequestController.cs · route prefix: /PurchaseRequest · 21 actions
| Route | Verb | Parameters | Permission | Returns |
|---|---|---|---|---|
/ |
POST | IForm |
Purchase |
JSON / Redirect |
/ |
GET | string id |
Purchase |
PartialView / Redirect |
/ |
POST | Materials model |
Purchase |
PartialView / JSON |
/ |
POST | string id, int operation, int user, string id, int? Assigned |
Purchase |
Redirect |
/ |
GET | — | Purchase |
View |
/ |
POST | Purchase |
Purchase |
View / Redirect |
/ |
GET | string id, int? file |
Purchase |
PartialView |
/ |
POST | string attached, string Description, string id, int? File |
Purchase |
JSON |
/ |
GET | string id |
Purchase |
PartialView / Redirect |
/ |
POST | Purchase |
Purchase |
PartialView / JSON |
/ |
GET | string id |
Purchase |
Redirect |
/ |
GET | int? id |
Purchase |
PartialView / Redirect |
/ |
POST | Materials model |
Purchase |
PartialView / JSON |
/ |
GET | string id, int? pdf, string msg |
Purchase |
View / Redirect |
/ |
POST | List<, List<, List<, string pr, bool content, bool enable, Purchase |
Purchase |
Redirect |
/ |
GET | int? id |
Purchase |
PartialView / Redirect |
/ |
POST | Materials model |
Purchase |
PartialView / JSON |
/ |
GET | int id |
Purchase |
Task< |
/ |
POST | string id, IForm |
Purchase |
Redirect |
/ |
GET | string search_param, string Ssearch_param, string sort, int? filter, string search, string Scurrent, int? filter, int? filter, int? filter, int? page |
Purchase |
View |
/ |
POST | int id, string desc |
Purchase |
JSON |
RFQController¶
Request For Quotation: supplier invitation, quotation capture, the CBA comparative analysis and technical scoring, verification tokens, and committee sign-off.
Source: NKO.Main/NKO.Main/Controllers/RFQController.cs · route prefix: /RFQ · 44 actions · 4 ungated
| Route | Verb | Parameters | Permission | Returns |
|---|---|---|---|---|
/ |
GET | string id |
RFQCreate |
PartialView / Redirect |
/ |
POST | RFQMat model |
RFQCreate |
PartialView / JSON |
/ |
GET | string id |
RFQEdit |
Redirect |
/ |
GET | int rfq, int current |
— open | Task< |
/ |
GET | int rfq, int current |
— open | Task< |
/ |
GET | int rfq, int current |
— open | Task< |
/ |
GET | int rfq, int current |
— open | Task< |
/ |
GET | string id |
RFQCreate |
Redirect |
/ |
GET | string id |
RFQEdit |
PartialView / Redirect |
/ |
POST | RFQs model |
RFQEdit |
PartialView / JSON |
/ |
POST | RFQs model |
RFQEdit |
PartialView / JSON |
/ |
GET | string id, string msg, int? pdf |
RFQProviders |
View / Redirect |
/ |
POST | string id, int auto |
RFQProviders |
Redirect |
/ |
POST | string id, int operation, int user, string id, int? Assigned |
RFQProviders |
Redirect |
/ |
GET | string id |
RFQCreate |
PartialView / JSON |
/ |
POST | RFQs model, List<, List<, List<, int? proc, int? tech, int? open |
RFQCreate |
PartialView / JSON |
/ |
GET | string id |
RFQCreate |
PartialView |
/ |
POST | RFQs model |
RFQCreate |
PartialView / JSON |
/ |
GET | string id |
Purchase |
Redirect |
/ |
GET | int? id |
RFQCreate |
PartialView / Redirect |
/ |
POST | RFQMat model |
RFQCreate |
PartialView / JSON |
/ |
GET | string id, string msg, int? pdf |
RFQDetails |
View |
/ |
GET | string id |
RFQEdit |
View / Redirect |
/ |
POST | RFQs model, List<, List<, List<, int? proc, int? tech, int? open |
RFQEdit |
PartialView / Redirect |
/ |
GET | string id |
RFQEdit |
PartialView / Redirect |
/ |
POST | RFQProvider model |
RFQEdit |
PartialView / JSON |
/ |
GET | int? type, int? page |
RFQIndex |
View |
/ |
POST | Provider |
RFQEdit |
Redirect |
/ |
POST | Provider |
RFQEdit |
Redirect |
/ |
GET | string id, string msg |
RFQProviders |
View / Redirect |
/ |
GET | string id, int? pdf |
RFQProviders |
View / Redirect |
/ |
GET | string id, string msg |
RFQProviders |
View |
/ |
GET | string id |
RFQEdit |
Redirect |
/ |
GET | string id |
RFQEdit |
PartialView / Redirect |
/ |
POST | RFQs model, string rfq |
RFQEdit |
PartialView / JSON |
/ |
GET | string id |
RFQProviders |
PartialView / Redirect |
/ |
POST | RFQs model |
RFQProviders |
PartialView / JSON |
/ |
POST | string id, int operation, int user, string id |
RFQProviders |
Redirect |
/ |
GET | string id, string msg, int? pdf |
RFQProviders |
View / Redirect |
/ |
GET | string id, string msg, int? pdf |
RFQProviders |
View / Redirect |
/ |
POST | int id, bool value, int type |
RFQProviders |
Content |
/ |
POST | int id, string desc |
RFQProviders |
JSON |
/ |
GET | string id |
RFQVerify |
Redirect |
/ |
POST | string id, string pass |
RFQVerify |
PartialView / Redirect |
PurchaseOrderController¶
The Purchase Order raised from a winning quotation, its justification documents, the procurement tracker and the supplier-facing views.
Source: NKO.Main/NKO.Main/Controllers/PurchaseOrderController.cs · route prefix: /PurchaseOrder · 36 actions
| Route | Verb | Parameters | Permission | Returns |
|---|---|---|---|---|
/ |
POST | IForm |
Purchase |
JSON / Redirect |
/ |
POST | IForm |
Purchase |
JSON / Redirect |
/ |
POST | string id, int operation, int user, string id |
Purchase |
Redirect |
/ |
GET | string Id |
Purchase |
Redirect |
/ |
GET | string id, int? file |
Purchase |
PartialView |
/ |
POST | string attached, string Description, string id, int? File |
Purchase |
JSON |
/ |
GET | string Id |
Purchase |
Redirect |
/ |
GET | string id, int? file |
Purchase |
PartialView |
/ |
POST | string attached, string Description, string id, int? File |
Purchase |
JSON |
/ |
GET | string id |
Purchase |
PartialView / Redirect |
/ |
POST | Purchase |
Purchase |
PartialView / JSON |
/ |
GET | string id |
Purchase |
Redirect |
/ |
POST | int id |
Purchase |
JSON |
/ |
GET | string id |
Purchase |
PartialView / Redirect |
/ |
POST | Purchase |
Purchase |
PartialView / JSON |
/ |
GET | string id |
Purchase |
Redirect |
/ |
GET | int? id |
Purchase |
PartialView / Redirect |
/ |
POST | Purchase |
Purchase |
PartialView / JSON |
/ |
GET | string id, string msg, int? pdf |
Purchase |
View / Redirect |
/ |
GET | string id |
Purchase |
PartialView / Redirect |
/ |
POST | Purchase |
Purchase |
PartialView / JSON |
/ |
GET | string id |
RFQProviders |
PartialView / Redirect |
/ |
POST | RFQProvider, List< |
RFQProviders |
PartialView / JSON |
/ |
GET | int? id |
Purchase |
PartialView / Redirect |
/ |
GET | — | [Authorize] |
JSON — the unit list; no view or script calls it |
/ |
POST | Purchase |
Purchase |
PartialView / JSON |
/ |
GET | int? filter, int? filter, int? filter, int? page |
Purchase |
View |
/ |
GET | string id, string msg, int? pdf |
RFQProviders |
View / Redirect |
/ |
POST | string id, int operation, int user, string id, int? Assigned |
RFQProviders |
Redirect |
/ |
GET | int? filter, int? filter, int? filter, int? page |
RFQProviders |
View |
/ |
GET | int? project, int? status, int? page |
Purchase |
View |
/ |
GET | string id, string msg, int? pdf |
Purchase |
View |
/ |
GET | string id |
Purchase |
View |
/ |
POST | int id, bool value |
RFQProviders |
Content |
/ |
POST | int id, string desc |
Purchase |
JSON |
/ |
POST | int id, string desc |
Purchase |
JSON |
GRNController¶
Goods Received Notes against a PO, and Transfer to Warehouse, which writes stock or asset rows into the separate warehouse database.
Source: NKO.Main/NKO.Main/Controllers/GRNController.cs · route prefix: /GRN · 23 actions
| Route | Verb | Parameters | Permission | Returns |
|---|---|---|---|---|
/ |
POST | IForm |
Purchase |
JSON / Redirect |
/ |
POST | IForm |
Purchase |
JSON / Redirect |
/ |
POST | string id, int operation, int user, string id |
Purchase |
Redirect |
/ |
GET | string Id |
Purchase |
Redirect |
/ |
GET | string id, int? file |
Purchase |
PartialView |
/ |
POST | string attached, string Description, string id, int? File |
Purchase |
JSON |
/ |
GET | string id, int? file |
Purchase |
PartialView |
/ |
POST | string attached, string Description, string id, int? File |
Purchase |
JSON |
/ |
GET | string id |
Purchase |
PartialView / Redirect |
/ |
POST | Good |
Purchase |
PartialView / JSON |
/ |
GET | string id |
Purchase |
Redirect |
/ |
POST | int id |
Purchase |
JSON |
/ |
GET | string id |
Purchase |
Redirect |
/ |
GET | int? id |
Purchase |
PartialView / Redirect |
/ |
POST | Good |
Purchase |
PartialView / JSON |
/ |
GET | string id, string msg, int? pdf |
Purchase |
View / Redirect |
/ |
GET | string id |
Purchase |
PartialView / Redirect |
/ |
POST | Good |
Purchase |
View / JSON |
/ |
GET | int? id |
Purchase |
PartialView / Redirect |
/ |
POST | Good |
Purchase |
PartialView / JSON |
/ |
GET | int? filter, int? filter, int? filter, int? page |
Purchase |
View |
/ |
GET | string id, string msg, int? pdf |
Purchase |
Redirect |
/ |
POST | int id, string desc |
Purchase |
JSON |
PaymentOrderController¶
Payment Orders — both the GRN-derived flow and the manual direct-vendor payment — through Budget Holder, Finance, CEO and Payer.
Source: NKO.Main/NKO.Main/Controllers/PaymentOrderController.cs · route prefix: /PaymentOrder · 27 actions
| Route | Verb | Parameters | Permission | Returns |
|---|---|---|---|---|
/ |
POST | IForm |
Purchase |
JSON / Redirect |
/ |
POST | IForm |
Purchase |
JSON / Redirect |
/ |
POST | string id, int operation, int user, string id |
Purchase |
Redirect |
/ |
GET | string Id |
Purchase |
Redirect |
/ |
GET | string id, int? file |
Purchase |
PartialView |
/ |
POST | string attached, string Description, string id, int? File |
Purchase |
JSON |
/ |
GET | string id, int? file |
Purchase |
PartialView |
/ |
POST | string attached, string Description, string id, int? File |
Purchase |
JSON |
/ |
GET | — | Purchase |
View |
/ |
POST | Payment |
Purchase |
View / Redirect |
/ |
GET | string id |
Purchase |
PartialView / Redirect |
/ |
POST | Payment |
Purchase |
PartialView / JSON |
/ |
GET | string id |
Purchase |
Redirect |
/ |
POST | int id |
Purchase |
JSON |
/ |
GET | string id |
Purchase |
Redirect |
/ |
GET | int? id |
Purchase |
PartialView / Redirect |
/ |
POST | Good |
Purchase |
PartialView / JSON |
/ |
GET | string id, string msg, int? pdf |
Purchase |
View |
/ |
GET | string id |
Purchase |
PartialView / Redirect |
/ |
POST | Payment |
Purchase |
PartialView / JSON |
/ |
GET | string id |
Purchase |
View / Redirect |
/ |
POST | Payment |
Purchase |
View / Redirect |
/ |
GET | int? id |
Purchase |
PartialView / Redirect |
/ |
POST | Payment |
Purchase |
PartialView / JSON |
/ |
GET | string id |
Purchase |
JSON |
/ |
GET | int? filter, int? filter, int? filter, int? page |
Purchase |
View |
/ |
POST | int id, string desc |
Purchase |
JSON |
ProvidersController¶
The supplier registry and each supplier's quotation history.
Source: NKO.Main/NKO.Main/Controllers/ProvidersController.cs · route prefix: /Providers · 6 actions
| Route | Verb | Parameters | Permission | Returns |
|---|---|---|---|---|
/ |
GET | string id, string msg, int? pdf |
RFQIndex |
View |
/ |
POST | Provider provider |
RFQIndex |
Redirect |
/ |
GET | — | RFQIndex |
View |
/ |
POST | IForm |
RFQIndex |
View |
/ |
GET | int? type, int? page |
RFQIndex |
View |
/ |
GET | string id, int? page |
RFQIndex |
View |
Related¶
- Procurement module
- Procurement Cycle
- Procurement database
- API Overview — routing, auth, responses and error behaviour.