Skip to content

Produktion – Vollständige API-Referenz ​

Fach-API für Stücklisten, Produktionsaufträge, Rückmeldungen, Arbeitsgänge und Disposition. Basis ist https://core-backend.reybex.com/api (Staging: https://io-staging-partner.reybex.com/api). Authentifizierung wie im API: --header "authorization: Basic $TOKEN".

Der Artikel steht unter Artikelstamm-Verwaltung. Bestand und Lager unter Lager und Inventur. Einkaufsvorschläge münden in der Einkauf-Verwaltung.

Der schreibende Weg der Stückliste ist POST /api/bomHead/. Der Körper trägt den Umschlag bomHead. Der schreibende Weg des Auftrags ist POST /api/prodOrder/. Der Körper trägt den Umschlag prodOrder.

1. Grundlagen ​

ObjektRolle
BomHeadStückliste eines Artikels, Alternative alterNum
ProdOrderFertigungsauftrag
ProdOrderConfirmationBDE-Rückmeldung
MachineMaschine
RouHeadArbeitsplan
ProposalDispositionsvorschlag

Die Zahlen in den Beispielen sind Beispiel-Ids eines Mandanten. 100100 ist der Fertigartikel ART-1000. 100200 ist die Komponente ART-200. 7001 ist das Lager HAUPT. 12 ist die Einheit Stück.

Ein fertiger Auftrag (status 8) lässt sich nicht auf 0 oder 1 zurücksetzen: finished.prodOrder.status.cannot.be.reset.

1.1 Suchschlüssel ​

Stückliste und Auftrag lesen material.id. Ein Suchschlüssel reicht an diesen beiden Aufrufen nicht.

ZielSuchschlüssel
Artikel vorher nachschlagenmatCode, sonst sku, über Artikelstamm
Lagercode, sonst name
Einheit an der Stücklistenpositionid. Fehlt sie: unit.not.found

1.2 Antwort- und Fehlerformat ​

AufrufResponse
Stückliste{ "id": … }
Auftrag{ "id": …, "docNumber": "…", "sendEmail": … }
Löschen der Stückliste{ "success": true }
SituationKörper
Position ohne Einheitunit.not.found
Dieselbe Alternative existiertyou.have.already.same.alternum
Variante unbekanntvariant.not.found
Fertiger Auftrag zurückgesetztfinished.prodOrder.status.cannot.be.reset
Fehlende AnmeldungHTTP 401

2. Stückliste ​

POST /api/bomHead/ legt an, wenn bomHead.id fehlt. bomHead.material.id und bomHead.items werden gelesen. Jede Position braucht unit.id, sonst unit.not.found. alterNum ist je Artikel und Variante eindeutig, sonst you.have.already.same.alternum. isDefaultAlterNum true setzt die anderen Alternativen zurück.

2.1 Felder ​

FeldBedeutung
materialFertigartikel, per id
alterNumAlternative. Standard 00
isDefaultAlterNumStandard-Alternative
isActiveAktiv
baseQuantityBasismenge
baseUnitEinheit der Basismenge
validFrom, validUntilGültigkeit
variantCodeVariante. Kommt aus materialVariant.variantCode, wenn die Variante mitgegeben wird
itemsKomponenten

2.2 Pflichtfelder ​

Auflösung, wenn ein Pflichtfeld fehlt ​

Die API setzt Pflicht-Referenzen nicht von selbst. Fehlt ein Feld, in dieser Reihenfolge füllen. Der erste Treffer gilt.

  1. Angabe – Wert aus dem Auftrag für dieses Feld.
  2. Vorlage – dasselbe Feld aus GET /api/bomHead/{id}. id und docNumber nicht übernehmen. Ist eine Vorlage genannt, diese lesen. Ist keine genannt, keine raten, mit Schritt 3 weiter.
  3. Standard – Wert aus der Tabelle.
  4. Domäne – Artikel über matCode lesen und die id setzen. Einheit GET /api/domains/unit?code=ST&take=1.
  5. Stopp – Artikel oder Einheit fehlt. Stückliste nicht anlegen.
FeldPflichtVorlageStandardDomäne
materialjamaterial—Artikel, per id
itemsjaPositionen ohne id——
items.unitjaunitcode STunit
alterNumneinalterNum00—
baseQuantityneinbaseQuantity0—

2.3 Liste mit einer Komponente ​

100100 ist ART-1000, 100200 ist ART-200, 12 ist Stück.

json
{
  "bomHead": {
    "material": { "id": 100100 },
    "alterNum": "00",
    "isDefaultAlterNum": true,
    "isActive": true,
    "baseQuantity": 1,
    "items": [
      {
        "material": { "id": 100200 },
        "quantity": 2,
        "unit": { "id": 12 }
      }
    ]
  }
}

Lesen: GET /api/bomHead/{id}. Komponenten: GET /api/bomHead/listBomItems/{id}. Auflösung über Stufen: GET /api/bomHead/showMultiLevelResolution. Listen eines Artikels: GET /api/bomHead/listBomHeadsByMaterialId.

Löschen: DELETE /api/bomHead/{id}. Antwort { "success": true }.

Komponente tauschen: POST /api/bomHead/replaceBomItemComponent. Import: POST /api/bomHead/bomItemImport.

3. Produktionsauftrag ​

POST /api/prodOrder/ legt an, wenn prodOrder.id fehlt. Die Nummer vergibt der Nummernkreis.

json
{
  "prodOrder": {
    "material": { "id": 100100 },
    "quantity": 10,
    "warehouse": { "id": 7001 },
    "docType": { "id": 4301 },
    "alterNum": "00",
    "planStart": "2026-10-20",
    "planEnd": "2026-10-24"
  }
}

4301 ist die Fertigungsbelegart, 7001 das Lager. Response: { "id": 99100, "docNumber": "PA-100", "sendEmail": false }. sendEmail kommt von der Belegart.

Aus einem Vorschlag: POST /api/prodOrder/createFromProposal. Termin rechnen: POST /api/prodOrder/calcSchedule. Bestand: GET /api/prodOrder/checkStockStatuses.

Externe Fertiger lesen: GET /api/prodOrder/external. Status setzen: POST /api/prodOrder/external/updateStatus.

Teilen: POST /api/prodOrder/splitProdOrder, speichern POST /api/prodOrder/saveSplitProdOrders.

Löschen ist logisch: DELETE /api/prodOrder/.

4. Rückmeldung ​

POST /api/prodOrder/confirm gibt die Aufträge frei. Der Körper enthält ids. Fehlt Bestand und die Belegart verlangt ihn: prod.orders.confirm.stock.error.

json
{ "ids": [99100] }

Die BDE-Schnittstelle: POST /api/prodOrderConfirmation/process. Mehrere: POST /api/prodOrderConfirmation/batchProcess. Vorgang dazu: GET /api/prodOrderConfirmation/operation.

Historie: GET /api/prodOrderConfirmation/history. Gründe: GET /api/prodOrderConfirmation/reasons. Maschinen des Benutzers: GET /api/prodOrderConfirmation/userMachines.

5. Stamm und Disposition ​

Maschine: POST /api/machine/. Abteilung: POST /api/productionDepartment/{id}. Kapazität: POST /api/productionDepartmentCapacity/. Arbeitsgang: POST /api/productionOperation/. Arbeitsplan: POST /api/rouHead/.

Disposition für alle: GET /api/mrp/planAll. Auswahl: POST /api/mrp/planForSelection. Vorschlag aus dem Artikel: POST /api/proposal/createProposalFromMaterial. Bestellanforderung: POST /api/proposal/purchaseRequest. Bestellung aus der Auswahl: POST /api/proposal/createPurchaseOrderFromPreSelecteds.

6. Weitere Beispiele ​

6.1 Vom Artikel zum Auftrag ​

  1. Fertigartikel und Komponente über matCode lesen.
  2. Stückliste Alternative 00, Abschnitt Liste.
  3. Auftrag mit Menge und Lager, Abschnitt Auftrag.
  4. Freigabe über POST /api/prodOrder/confirm.
  5. Zugang im Lager prüfen.

7. Endpoint-Katalog ​

MethodePfadBedeutung
GET/api/bomHead/{id}Eine Stückliste
POST/api/bomHead/Speichern, Umschlag bomHead
DELETE/api/bomHead/{id}Löschen
GET/api/bomHead/listBomItems/{id}Komponenten
POST/api/bomHead/bomItemImportImport
GET/api/prodOrder/{id}Ein Auftrag
POST/api/prodOrder/Speichern, Umschlag prodOrder
DELETE/api/prodOrder/Logisch löschen
POST/api/prodOrder/confirmFreigeben, Body ids
POST/api/prodOrder/calcScheduleTermine rechnen
GET/api/prodOrder/externalAufträge für externe Fertiger
POST/api/prodOrderConfirmation/processBDE-Rückmeldung
POST/api/machine/Maschine
POST/api/rouHead/Arbeitsplan
GET/api/mrp/planAllDisposition
POST/api/proposal/createProposalFromMaterialVorschlag
POST/api/prodOrder/splitProdOrderAuftrag teilen
POST/api/prodOrder/external/updateStatusStatus des externen Fertigers
POST/api/prodOrderConfirmation/batchProcessMehrere BDE-Rückmeldungen
POST/api/productionDepartment/{id}Abteilung
POST/api/productionDepartmentCapacity/Kapazität
POST/api/productionOperation/Arbeitsgang

8. Häufige Fehler ​

SituationUrsache
unit.not.foundKomponentenposition ohne unit.id
you.have.already.same.alternumalterNum gibt es am Artikel schon
variant.not.foundvariantCode gibt es am Artikel nicht
finished.prodOrder.status.cannot.be.resetStatus 8 soll auf 0 oder 1
prod.orders.confirm.stock.errorFreigabe, obwohl Bestand fehlt

Nur für reybex-Partner. Nicht für Endkunden bestimmt.