Die offiziellen Dokus von unseren beiden API findest Du hier:
Die Inbox-API eignet sich dazu von z.B. einem Web2Print-Shop einen Auftrag mit definierten Produktvorlagen in Keyline anzulegen.
Hier wird der virtuelle Einkaufswagen gepackt und mit einem Checkout erstellt Keyline Dir dann direkt eine Order mit Deinen definierten Daten und Produkten.
Mit der Advanced-API kannst du dann weitere Einstellungen vornehmen.
Im Adminbereich unter Accounts/API-Berechtigungen kannst Du neue API-Keys erstellen und verwalten.
Die Keys werden benötigt, um Drittanwendungen wie z.B. Shipcloud, make.com, CRM-Systeme etc. einzubinden.
Wenn Du über den Button “API-Zugangsberechtigung anlegen” einen neuen API-Key erstellt hast, kannst Du diesen an den Dienstleister weitergeben und jederzeit auch wieder sperren.
Vorsicht: API-Keys, die Du auf diese Weise erstellt hast, haben Zugriff auf sämtliche Ressourcen Deines Keyline-Accounts. Du kannst daher API-Keys auch nur für bestimmte Organisationen freigeben, die dann nur unter diesem Namen agieren können. Dazu legst Du den API-Key bitte direkt bei der Organisation an (Vertrieb > Organisation).
Nicht mehr benötigte Keys sollten sofort gesperrt werden.
Jeder API-Key zählt auch zur Gesamtzahl der User dazu.
Bitte beachte, dass ein einmalig gesperrter Key nicht entsperrt werden kann.
Hier findest Du auch noch einige Beispiele, die noch nicht in der offiziellen API dokumentiert sind:
API-Endpunkt um Auflagen pro Sorte zu definieren wie es im UI hier möglich ist:
/production/products/{product_ID}/actual_circulations from wishlist
Endpoints:
GET /api/v2/production/circulations
// List all circulations for the product
GET /api/v2/production/products/:product_id/circulations/:id
// Get a single circulation
PATCH /api/v2/production/products/:product_id/circulations/:id
// Update the actual_amount of a circulation
Payload:
{
"circulation":{
"actual_amount": 32
}
}
API-Endpunkt für Lieferscheine, Auftragstaschen und Etiketten
Endpoints:
with headers set to { "Accept": "application/json"}
GET /api/v2/production/products/:product_id/job_bag.pdf
GET /api/v2/logistics/shipments/:shipment_id/delivery_note.pdf
GET /api/v2/logistics/shipments/:shipment_id/proforma_invoice.pdf
GET /api/v2/logistics/parcels/:parcel_id/label.pdf
with headers set to { "Accept": "application/pdf"}
GET /api/v2/production/products/:product_id/job_bag
GET /api/v2/logistics/shipments/:shipment_id/delivery_note
GET /api/v2/logistics/shipments/:shipment_id/proforma_invoice
GET /api/v2/logistics/parcels/:parcel_id/label
Wenn Du Material vordefinieren willst über die API:
Material Presets:
/api/v2/conception/products/:product_id/components/:component_id/material_presets /api/v2/conception/products/:product_id/components/:component_id/finishings/:finishing_id/material_presets /api/v2/conception/products/:product_id/material_presets /api/v2/conception/products/:product_id/finishings/:finishing_id/material_presets
Beim Verpacken kannst Du dann z.B folgenden Endpunkt nutzen:
/api/v2/conception/products/:product_id/packagings/:packaging_id/material_presets
{
"material_preset": {
"material_id": 1
}
}
Produktionsmittel wechseln geht einfach mit POST auf:
/conception/products/{product_id}/production_paths/{production_path-ID}/production_flow_modifications
und dann z.B.:
{
"production_flow_modification": {
"modification": "preset",
"workable_type": "component",
"workable_id": 1361413,
"stock_task_id": 6579,
"means_of_production_id": 10319
}
}
Workable_ID entspricht der komponenten_ID:
Dann noch ein conceptualize
für die erneute Kalkulationsberechnung hinterher: (nicht zwingend notwendig) Aber schadet nicht.
/conception/products/product_ID/production_paths/production_path_ID/conceptualize
Falzschema anpassen geht mir einem PATCH
auf:
/conception/products/product_ID/components/component_ID/imposings/imposing_ID
mit z.B.:
"imposing": {
"default_stock_folding_pattern_id": 983
}
}
Die default_stock_folding_pattern_id bekommst wie Deine Arbeitsvorgänge aus dem Adminbereich also über
/configuration/stock_folding_patterns
Achte aber drauf, dass Du von Einzelseiten auf zusammenhängend stellst.
"page_arrangement": "standalone"
auf
"page_arrangement": "crossover"
oder bei Paralellfalz:
"page_arrangement": "parallel"
Außerdem gibt es noch Suchfilter wie z.B.:
/accounting/invoices?billed_from=2024-08-28&billed_to=2024-08-28
Bei Rechnungen außerdem:
billed_from/billed_to
und created_from/created_to
und bei Tasks:
updated_from
und updated_until
Gleiches gibt es aus auch für Orders:
/sales/orders?state=draft
/sales/orders?created_from=2024-08-12&created_to=2024-09-12
/sales/orders?updated_from=2024-08-12&updated_to=2024-09-12
Oder auch für die Tasks:
/production/tasks?search_term=offset/production/tasks?state=running (completed, running, ready)
/production/tasks?created_from=2018-06-27&created_to=2018-06-27
/production/tasks?updated_from=2018-11-13&updated_to=2018-11-13
oder auch kombiniert:
/production/tasks?search_term=offsetdruck&state=ready
Produktinfos können auch über die API erstellt werden:
GET, POST, PATCH, DEL
/products/{product_id}/messages/new /conception/{product_id}/messages/new
{
"text": "Ich bin die Produktinfo über die API"
}
Wenn Du Assignment (also den Kundenberater in einer Order setzen willst), dann musst du folgenden Endpunkt nutzen:
/sales/orders/{order_ID/assignments
und dann POST:
{
"assignment": {
"user_id": 4033,
"role": "customer_consultant"
}
}
Usser ID ist dann jeweils die ID, die du in der Benutzerverwaltung siehts.
Folgende Rollen können gesetzt werden:
customer_consultant
sales_representative
media_designer
prepress_employee
production_employee
accounting_employee
Lieferschein kannst Du während der Produktion hier abrufen:
/production/products/{production_ID}
da die Shipment-ID raussuchen und dann:
/api/v2/logistics/shipments/:id/delivery_note
Dort bekommst Dudann auch den Lieferschein
Mit Document-Callbacks kannst du z.B. deine eigene Job-Bag hinterlegen:
Du machst einfach ein POST
/conception/products/{product_id}/document_callbacks
Mit dem Payload:
{
"document_callback": {
"kind": "job_bag",
"url": "http://deine_dokumenten_URL"
}
}
Die AB kannst du einfach unter folgender URL abrufen:
/sales/orders/{order_ID}/confirmation.pdf
Falls Du die Produktbeschreibung manuell anpassen willst, kannst Du das mit einem einfachen PATCH
auf:
/conception/product/Product_ID
mit z.B.:
{
"custom_description": "Neue Produktbeschreibung über die API!"
}
Ein Produkt komplett beenden kannst du mit:
PATCH
auf
/production/products/{product_ID}/complete
Fremdbeschaffungen erreichst Du unter:
GET
auf:
/logistics/outsourcings
Und wenn Du Adressen schon einmal announcen willst, kannst Du das unter:
/api/v2/customer_relations/organizations/:organization_id/address_announcements
Die Adressen werden dann über die Schnell suche gefunden. Sobald die einmal verwendet wurden, sind diese dann auch bei der jeweiligen Organisation zu sehen.
Wenn Du über die API verpacken willst, dann gehst du folgendermaßen vor:
Man startet beim Verpacken mit einem POST
um ein Packaging zu erstellen auf:
/conception/products/{product_id}/packagings
Dann PATCH
auf
/conception/products/{product_id}/packagings/{packaging_id}
(um zu definieren wie verpackt wird, Label, etc. )
dann ein POST
auf
um Dein "Pick" zu erstellen in dem definiert wird was dann alles im nächsten Packaging verpackt wird,
Wenn Du mehrere Sorten oder Packagings hast, dann werden die alle in das JSON gepackt.
Also immer Packaging --> Pick --> Packaging.
Wenn direkt versendet wird, braucht es kein Pick, da das Packaging gleich die "deposition": "shipment"
kommt.