NurCore API
MRO Module

Procurement Service

API для vendors (AVL), Purchase Requisitions, Purchase Orders, Goods Receipts.

Procurement Service — /api/v1/procurement

Base: https://api.nurcore.kg/api/v1/procurement

AVL (Approved Vendor List)

Vendor approval status: UNAPPROVEDAPPROVED / BLOCKED

Certifications для airworthy parts:

CertScope
Part-21G POAProduction Organisation Approval (производители)
Part-145Maintenance organisation (repair stations)
ASA-100 / EN9120Distributors
AS9100Aerospace quality system

Release certificate с каждой поставки:

  • EASA Form 1 (European)
  • FAA 8130-3 (US FAA)
MethodPathDescription
POST/vendorsRegister vendor (UNAPPROVED initial)
GET/vendors?approval_status=APPROVEDList AVL
POST/vendors/{id}/approveMove to APPROVED
POST/vendors/{id}/blockMove to BLOCKED (с reason)
POST/vendors/{id}/contactsAdd contact (primary/billing/account)

Purchase Requisition (PR)

Lifecycle: DRAFTSUBMITTEDAPPROVED / REJECTEDCONVERTED_TO_PO

Priorities:

PriorityDescription
LOWRoutine queue
NORMALStandard turnaround
HIGHRequired для scheduled maintenance
AOGAircraft on Ground, expedite

Endpoints

MethodPathDescription
POST/prCreate DRAFT с lines
POST/pr/{id}/submitDRAFT → SUBMITTED
POST/pr/{id}/approveSUBMITTED → APPROVED (требует approver role)
POST/pr/{id}/rejectSUBMITTED → REJECTED (с reason)
POST/pr/{id}/cancelAny state → CANCELLED (с reason)
POST/pr/{id}/convert-to-poAPPROVED → CONVERTED_TO_PO

PR Line требует:

  • part_id (UUID из parts catalog) — обязателен
  • part_number_snapshot — copy of P/N (snapshot для traceability)
  • description_snapshot — copy of description
  • quantity (Decimal, > 0)
  • estimated_unit_price (optional, для approval threshold)
  • required_by_date (optional)

Purchase Order (PO)

Lifecycle: DRAFTISSUEDACKNOWLEDGEDPARTIAL_RECEIVEDRECEIVEDCLOSED

MethodPathDescription
POST/poCreate PO (обычно из approved PR)
POST/po/{id}/issueDRAFT → ISSUED (send к vendor)
POST/po/{id}/acknowledgeVendor confirmed
POST/po/{id}/closeRECEIVED → CLOSED
POST/po/{id}/cancelAny non-final → CANCELLED

GRN (Goods Receipt Note)

Приёмка parts с inspection.

Inspection result: PENDINGPASS / FAIL

При PASS → fire-and-forget POST в inventory.stock.receipt (graceful fallback если inventory down).

При FAIL → notification procurement + warehouse, stock остаётся в QUARANTINE.

Form 1 / 8130-3 verification в line_items.documents JSONB (per aviation expert audit A-9):

{
  "form_type": "EASA Form 1",
  "form_number": "EASA.21G.0123.2026.001",
  "issued_at": "2026-05-15",
  "issued_by": "Bombardier"
}
MethodPathDescription
POST/grnCreate GRN
POST/grn/{id}/inspectSet inspection PASS/FAIL

On this page