ACMEsupply API (1.0.0)

Download OpenAPI specification:

License: Apache-2.0

Procurement system of ACME analog Inc. and system of record for suppliers, raw materials & energy, supply contracts (prices, tiers, lead times) and the material stock (warehouse).

Procurements (material/energy) go through approval — like sales: above the threshold an approval is required; the approval rule (signing authority) comes from ACMEhr. Confirmed procurements feed port imports, the warehouse and power plants. Stock is consumed by the production cycle (consumption).

Roles (ACMEbase): WATCH reads, WORK writes operationally (procurement/approval/consumption), ADMIN maintains master data (materials) and the reset. Per operation under x-required-role; hierarchy ADMIN > WORK > WATCH.

Suppliers

Suppliers.

List suppliers

Authorizations:
bearerAuth
query Parameters
status
string (SupplierStatus)
Enum: "PROSPECT" "ACTIVE" "BLOCKED"
q
string

Responses

Response Schema: application/json
Array
id
required
string
name
required
string
status
required
string (SupplierStatus)
Enum: "PROSPECT" "ACTIVE" "BLOCKED"
email
string or null <email>
country
string or null

Response samples

Content type
application/json
[
  • {
    • "id": "string",
    • "name": "Rohstoff Handels AG",
    • "status": "PROSPECT",
    • "email": "user@example.com",
    • "country": "DE"
    }
]

Create supplier

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
status
string (SupplierStatus)
Enum: "PROSPECT" "ACTIVE" "BLOCKED"
email
string <email>
country
string

Responses

Response Schema: application/json
id
required
string
name
required
string
status
required
string (SupplierStatus)
Enum: "PROSPECT" "ACTIVE" "BLOCKED"
email
string or null <email>
country
string or null

Request samples

Content type
application/json
{
  • "name": "string",
  • "status": "PROSPECT",
  • "email": "user@example.com",
  • "country": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "Rohstoff Handels AG",
  • "status": "PROSPECT",
  • "email": "user@example.com",
  • "country": "DE"
}

Read supplier

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response Schema: application/json
id
required
string
name
required
string
status
required
string (SupplierStatus)
Enum: "PROSPECT" "ACTIVE" "BLOCKED"
email
string or null <email>
country
string or null

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "Rohstoff Handels AG",
  • "status": "PROSPECT",
  • "email": "user@example.com",
  • "country": "DE"
}

Update supplier

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
name
required
string
status
string (SupplierStatus)
Enum: "PROSPECT" "ACTIVE" "BLOCKED"
email
string <email>
country
string

Responses

Response Schema: application/json
id
required
string
name
required
string
status
required
string (SupplierStatus)
Enum: "PROSPECT" "ACTIVE" "BLOCKED"
email
string or null <email>
country
string or null

Request samples

Content type
application/json
{
  • "name": "string",
  • "status": "PROSPECT",
  • "email": "user@example.com",
  • "country": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "Rohstoff Handels AG",
  • "status": "PROSPECT",
  • "email": "user@example.com",
  • "country": "DE"
}

Materials

Raw materials and energy.

List raw materials/energy

Authorizations:
bearerAuth
query Parameters
kind
string (MaterialKind)
Enum: "RAW_MATERIAL" "ENERGY"
q
string

Responses

Response Schema: application/json
Array
id
required
string
code
required
string
name
required
string
kind
required
string (MaterialKind)
Enum: "RAW_MATERIAL" "ENERGY"
unit
required
string

Response samples

Content type
application/json
[
  • {
    • "id": "string",
    • "code": "STAHL",
    • "name": "Stahlblech",
    • "kind": "RAW_MATERIAL",
    • "unit": "kg"
    }
]

Create material (master data)

Authorizations:
bearerAuth
Request Body schema: application/json
required
code
required
string
name
required
string
kind
required
string (MaterialKind)
Enum: "RAW_MATERIAL" "ENERGY"
unit
string

Responses

Response Schema: application/json
id
required
string
code
required
string
name
required
string
kind
required
string (MaterialKind)
Enum: "RAW_MATERIAL" "ENERGY"
unit
required
string

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string",
  • "kind": "RAW_MATERIAL",
  • "unit": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "code": "STAHL",
  • "name": "Stahlblech",
  • "kind": "RAW_MATERIAL",
  • "unit": "kg"
}

Read material

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response Schema: application/json
id
required
string
code
required
string
name
required
string
kind
required
string (MaterialKind)
Enum: "RAW_MATERIAL" "ENERGY"
unit
required
string

Response samples

Content type
application/json
{
  • "id": "string",
  • "code": "STAHL",
  • "name": "Stahlblech",
  • "kind": "RAW_MATERIAL",
  • "unit": "kg"
}

Update material (master data)

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
code
required
string
name
required
string
kind
required
string (MaterialKind)
Enum: "RAW_MATERIAL" "ENERGY"
unit
string

Responses

Response Schema: application/json
id
required
string
code
required
string
name
required
string
kind
required
string (MaterialKind)
Enum: "RAW_MATERIAL" "ENERGY"
unit
required
string

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string",
  • "kind": "RAW_MATERIAL",
  • "unit": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "code": "STAHL",
  • "name": "Stahlblech",
  • "kind": "RAW_MATERIAL",
  • "unit": "kg"
}

SupplyContracts

Supply contracts — tiered prices + lead times, price resolution.

List supply contracts

Authorizations:
bearerAuth
query Parameters
supplierId
string
materialId
string

Responses

Response Schema: application/json
Array
id
required
string
supplierId
required
string
supplierName
string
materialId
required
string
materialName
string
currency
required
string = 3 characters
leadTimeDays
required
integer

Lead time in days.

object (DateRange)

Validity period. until=null = open-ended.

required
Array of objects (Tier)

Response samples

Content type
application/json
[
  • {
    • "id": "string",
    • "supplierId": "string",
    • "supplierName": "string",
    • "materialId": "string",
    • "materialName": "string",
    • "currency": "EUR",
    • "leadTimeDays": 0,
    • "validity": {
      },
    • "tiers": [
      ]
    }
]

Create supply contract

Authorizations:
bearerAuth
Request Body schema: application/json
required
supplierId
required
string
materialId
required
string
currency
required
string = 3 characters
leadTimeDays
required
integer
validFrom
string <date>
validUntil
string or null <date>
required
Array of objects (Tier) non-empty

Responses

Response Schema: application/json
id
required
string
supplierId
required
string
supplierName
string
materialId
required
string
materialName
string
currency
required
string = 3 characters
leadTimeDays
required
integer

Lead time in days.

object (DateRange)

Validity period. until=null = open-ended.

required
Array of objects (Tier)

Request samples

Content type
application/json
{
  • "supplierId": "string",
  • "materialId": "string",
  • "currency": "str",
  • "leadTimeDays": 0,
  • "validFrom": "2019-08-24",
  • "validUntil": "2019-08-24",
  • "tiers": [
    • {
      }
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "supplierId": "string",
  • "supplierName": "string",
  • "materialId": "string",
  • "materialName": "string",
  • "currency": "EUR",
  • "leadTimeDays": 0,
  • "validity": {
    • "from": "2019-08-24",
    • "until": "2019-08-24"
    },
  • "tiers": [
    • {
      }
    ]
}

Read supply contract

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response Schema: application/json
id
required
string
supplierId
required
string
supplierName
string
materialId
required
string
materialName
string
currency
required
string = 3 characters
leadTimeDays
required
integer

Lead time in days.

object (DateRange)

Validity period. until=null = open-ended.

required
Array of objects (Tier)

Response samples

Content type
application/json
{
  • "id": "string",
  • "supplierId": "string",
  • "supplierName": "string",
  • "materialId": "string",
  • "materialName": "string",
  • "currency": "EUR",
  • "leadTimeDays": 0,
  • "validity": {
    • "from": "2019-08-24",
    • "until": "2019-08-24"
    },
  • "tiers": [
    • {
      }
    ]
}

Resolve procurement price + lead time

Returns the unit price applicable for supplier + material + quantity (best tier) and the lead time.

Authorizations:
bearerAuth
query Parameters
supplierId
required
string
materialId
required
string
quantity
integer >= 1
Default: 1

Responses

Response Schema: application/json
supplierId
required
string
materialId
required
string
quantity
required
integer
unitPrice
required
number
currency
string
leadTimeDays
required
integer
contractId
string or null

Response samples

Content type
application/json
{
  • "supplierId": "string",
  • "materialId": "string",
  • "quantity": 0,
  • "unitPrice": 0,
  • "currency": "string",
  • "leadTimeDays": 0,
  • "contractId": "string"
}

SupplyOrders

Procurements incl. approval (submission, approval/rejection, goods receipt).

List procurements

Authorizations:
bearerAuth
query Parameters
supplierId
string
status
string (SupplyOrderStatus)
Enum: "CREATED" "PENDING_APPROVAL" "APPROVED" "REJECTED" "RECEIVED" "CANCELLED"

Responses

Response Schema: application/json
Array
id
required
string
supplierId
required
string
supplierName
string
status
required
string (SupplyOrderStatus)
Enum: "CREATED" "PENDING_APPROVAL" "APPROVED" "REJECTED" "RECEIVED" "CANCELLED"
orderDate
required
string <date>
expectedDeliveryDate
string or null <date>

orderDate + max. lead time.

required
Array of objects (Line)
required
object (Money)

Monetary amount. unlimited=true → no amount limit (then amount/currency are empty).

object (Approval)

E-approval status of an order/procurement.

note
string or null

Response samples

Content type
application/json
[
  • {
    • "id": "string",
    • "supplierId": "string",
    • "supplierName": "string",
    • "status": "CREATED",
    • "orderDate": "2019-08-24",
    • "expectedDeliveryDate": "2019-08-24",
    • "lines": [
      ],
    • "total": {
      },
    • "approval": {
      },
    • "note": "string"
    }
]

Create procurement

Authorizations:
bearerAuth
Request Body schema: application/json
required
supplierId
required
string
required
Array of objects (LineWrite) non-empty
note
string or null

Responses

Response Schema: application/json
id
required
string
supplierId
required
string
supplierName
string
status
required
string (SupplyOrderStatus)
Enum: "CREATED" "PENDING_APPROVAL" "APPROVED" "REJECTED" "RECEIVED" "CANCELLED"
orderDate
required
string <date>
expectedDeliveryDate
string or null <date>

orderDate + max. lead time.

required
Array of objects (Line)
required
object (Money)

Monetary amount. unlimited=true → no amount limit (then amount/currency are empty).

object (Approval)

E-approval status of an order/procurement.

note
string or null

Request samples

Content type
application/json
{
  • "supplierId": "string",
  • "lines": [
    • {
      }
    ],
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "supplierId": "string",
  • "supplierName": "string",
  • "status": "CREATED",
  • "orderDate": "2019-08-24",
  • "expectedDeliveryDate": "2019-08-24",
  • "lines": [
    • {
      }
    ],
  • "total": {
    • "amount": 50000,
    • "currency": "EUR",
    • "unlimited": false
    },
  • "approval": {
    • "required": true,
    • "approverId": "string",
    • "decision": "APPROVE",
    • "decidedOn": "2019-08-24",
    • "comment": "string"
    },
  • "note": "string"
}

Read procurement

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response Schema: application/json
id
required
string
supplierId
required
string
supplierName
string
status
required
string (SupplyOrderStatus)
Enum: "CREATED" "PENDING_APPROVAL" "APPROVED" "REJECTED" "RECEIVED" "CANCELLED"
orderDate
required
string <date>
expectedDeliveryDate
string or null <date>

orderDate + max. lead time.

required
Array of objects (Line)
required
object (Money)

Monetary amount. unlimited=true → no amount limit (then amount/currency are empty).

object (Approval)

E-approval status of an order/procurement.

note
string or null

Response samples

Content type
application/json
{
  • "id": "string",
  • "supplierId": "string",
  • "supplierName": "string",
  • "status": "CREATED",
  • "orderDate": "2019-08-24",
  • "expectedDeliveryDate": "2019-08-24",
  • "lines": [
    • {
      }
    ],
  • "total": {
    • "amount": 50000,
    • "currency": "EUR",
    • "unlimited": false
    },
  • "approval": {
    • "required": true,
    • "approverId": "string",
    • "decision": "APPROVE",
    • "decidedOn": "2019-08-24",
    • "comment": "string"
    },
  • "note": "string"
}

Submit procurement for approval

Above the threshold → PENDING_APPROVAL, otherwise APPROVED.

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response Schema: application/json
id
required
string
supplierId
required
string
supplierName
string
status
required
string (SupplyOrderStatus)
Enum: "CREATED" "PENDING_APPROVAL" "APPROVED" "REJECTED" "RECEIVED" "CANCELLED"
orderDate
required
string <date>
expectedDeliveryDate
string or null <date>

orderDate + max. lead time.

required
Array of objects (Line)
required
object (Money)

Monetary amount. unlimited=true → no amount limit (then amount/currency are empty).

object (Approval)

E-approval status of an order/procurement.

note
string or null

Response samples

Content type
application/json
{
  • "id": "string",
  • "supplierId": "string",
  • "supplierName": "string",
  • "status": "CREATED",
  • "orderDate": "2019-08-24",
  • "expectedDeliveryDate": "2019-08-24",
  • "lines": [
    • {
      }
    ],
  • "total": {
    • "amount": 50000,
    • "currency": "EUR",
    • "unlimited": false
    },
  • "approval": {
    • "required": true,
    • "approverId": "string",
    • "decision": "APPROVE",
    • "decidedOn": "2019-08-24",
    • "comment": "string"
    },
  • "note": "string"
}

Approval decision

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
approverId
required
string

Person (ACMEhr) making the decision.

decision
required
string
Enum: "APPROVE" "REJECT"
comment
string or null

Responses

Response Schema: application/json
id
required
string
supplierId
required
string
supplierName
string
status
required
string (SupplyOrderStatus)
Enum: "CREATED" "PENDING_APPROVAL" "APPROVED" "REJECTED" "RECEIVED" "CANCELLED"
orderDate
required
string <date>
expectedDeliveryDate
string or null <date>

orderDate + max. lead time.

required
Array of objects (Line)
required
object (Money)

Monetary amount. unlimited=true → no amount limit (then amount/currency are empty).

object (Approval)

E-approval status of an order/procurement.

note
string or null

Request samples

Content type
application/json
{
  • "approverId": "string",
  • "decision": "APPROVE",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "supplierId": "string",
  • "supplierName": "string",
  • "status": "CREATED",
  • "orderDate": "2019-08-24",
  • "expectedDeliveryDate": "2019-08-24",
  • "lines": [
    • {
      }
    ],
  • "total": {
    • "amount": 50000,
    • "currency": "EUR",
    • "unlimited": false
    },
  • "approval": {
    • "required": true,
    • "approverId": "string",
    • "decision": "APPROVE",
    • "decidedOn": "2019-08-24",
    • "comment": "string"
    },
  • "note": "string"
}

Book goods receipt (delivered)

Books the goods receipt and increases the material stock.

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response Schema: application/json
id
required
string
supplierId
required
string
supplierName
string
status
required
string (SupplyOrderStatus)
Enum: "CREATED" "PENDING_APPROVAL" "APPROVED" "REJECTED" "RECEIVED" "CANCELLED"
orderDate
required
string <date>
expectedDeliveryDate
string or null <date>

orderDate + max. lead time.

required
Array of objects (Line)
required
object (Money)

Monetary amount. unlimited=true → no amount limit (then amount/currency are empty).

object (Approval)

E-approval status of an order/procurement.

note
string or null

Response samples

Content type
application/json
{
  • "id": "string",
  • "supplierId": "string",
  • "supplierName": "string",
  • "status": "CREATED",
  • "orderDate": "2019-08-24",
  • "expectedDeliveryDate": "2019-08-24",
  • "lines": [
    • {
      }
    ],
  • "total": {
    • "amount": 50000,
    • "currency": "EUR",
    • "unlimited": false
    },
  • "approval": {
    • "required": true,
    • "approverId": "string",
    • "decision": "APPROVE",
    • "decidedOn": "2019-08-24",
    • "comment": "string"
    },
  • "note": "string"
}

Cancel procurement

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response Schema: application/json
id
required
string
supplierId
required
string
supplierName
string
status
required
string (SupplyOrderStatus)
Enum: "CREATED" "PENDING_APPROVAL" "APPROVED" "REJECTED" "RECEIVED" "CANCELLED"
orderDate
required
string <date>
expectedDeliveryDate
string or null <date>

orderDate + max. lead time.

required
Array of objects (Line)
required
object (Money)

Monetary amount. unlimited=true → no amount limit (then amount/currency are empty).

object (Approval)

E-approval status of an order/procurement.

note
string or null

Response samples

Content type
application/json
{
  • "id": "string",
  • "supplierId": "string",
  • "supplierName": "string",
  • "status": "CREATED",
  • "orderDate": "2019-08-24",
  • "expectedDeliveryDate": "2019-08-24",
  • "lines": [
    • {
      }
    ],
  • "total": {
    • "amount": 50000,
    • "currency": "EUR",
    • "unlimited": false
    },
  • "approval": {
    • "required": true,
    • "approverId": "string",
    • "decision": "APPROVE",
    • "decidedOn": "2019-08-24",
    • "comment": "string"
    },
  • "note": "string"
}

Stock

Material stock — read, consumption (production), reset.

Read available stock of a material

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response Schema: application/json
materialId
required
string
available
required
number

Available quantity in the material's unit.

Response samples

Content type
application/json
{
  • "materialId": "string",
  • "available": 0
}

Consume stock (production)

Reduces available stock by the produced quantity. Called by the production cycle.

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
quantity
required
number >= 0

Quantity to consume.

Responses

Response Schema: application/json
materialId
required
string
available
required
number

Available quantity in the material's unit.

Request samples

Content type
application/json
{
  • "quantity": 0
}

Response samples

Content type
application/json
{
  • "materialId": "string",
  • "available": 0
}

Reset all stock (data reset)

Resets the warehouse stock — only for the data/economy reset, hence ADMIN. Not for normal operation.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/problem+json
{
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "string"
}