openapi: 3.1.0 info: title: booklooker REST API description: |

Die Booklooker REST API ermöglicht die sichere und einfache Kommunikation mit verschiedenen Booklooker-Schnittstellen. Es besteht die Möglichkeit, Artikel und Aufträge abzufragen, zu ändern, zu stornieren etc. Auch der automatische Import neuer oder geänderter Artikel ist ohne Weiteres möglich.

Diese API basiert auf REST. Zur Benutzung führen Sie bitte die folgenden Schritte durch:

  1. Sie benötigen Ihren persönlichen API Key, diesen erhalten Sie im Bereich Persönliche Daten
  2. Benutzen Sie anschließend die Schnittstelle authenticate via HTTP POST und Sie erhalten einen Token, welcher für alle folgenden Aufrufe benötigt wird. Sofern Sie 10 Minuten keine Schnittstelle aufrufen, verfällt der Token und Sie müssen sich erneut authentifizieren.
  3. Verwenden Sie eine der unten aufgelisteten Schnittstellen. Die Beschreibung jeder Schnittstelle enthält die benötigten Parameter und die möglichen Rückgabewerte.

Zur Kommunikation können verschiedene Programmiersprachen zum Einsatz kommen. Wir stellen Ihnen hier ein Beispiel in PHP zur Verfügung.

Weiterhin bieten wir hier eine OpenAPI Spezifikation an.

version: '2.0' servers: - url: 'https://api.booklooker.de/2.0' tags: - name: authentication - name: article - name: upload - name: image - name: order paths: /authenticate: post: tags: - authentication summary: Authentifizierung via API Key description: | Authentifizierung via API Key. Ihren persönlichen API Key erhalten Sie hier. parameters: - name: apiKey description: Ihr persönlicher API Key in: query required: true schema: type: string responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: Der Token, welcher für alle weiteren Aufrufe benötigt wird. value: status: OK returnValue: REST_API_TOKEN API_KEY_MISSING: description: Der API Key ist leer oder nicht vorhanden. value: status: NOK returnValue: API_KEY_MISSING AUTHENTICATION_FAILED: description: Der API Key ist nicht bekannt. value: status: NOK returnValue: AUTHENTICATION_FAILED ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' /article: delete: tags: - article summary: Einzelnen Artikel zum Löschen vormerken description: Einzelnen Artikel zum Löschen vormerken. Der Artikel wird innerhalb der nächsten 2 Stunden gelöscht. security: - tokenAuth: [ ] parameters: - $ref: '#/components/parameters/orderNoParam' responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: Der Artikel wurde erfolgreich für den Löschvorgang vorgemerkt. value: status: OK returnValue: SUCCESS INVALID_PARAMETERS: $ref: '#/components/responses/INVALID_PARAMETER_ORDERNO' NOT_FOUND: $ref: '#/components/responses/NOT_FOUND_ORDERNO' ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /article_list: get: tags: - article summary: Liste aller eigenen aktiven Artikelnummern description: | Liste aller eigenen aktiven Artikelnummern.

Bitte beachten: Wird ein Artikel gelöscht, so wird dieser nicht sofort aus den aktuell angebotenen Artikel gelöscht, sondern mit einer Verzögerung von im Schnitt 1-2 Stunden. Um den aktuellen Status eines Artikels zu ermitteln, benutzen Sie bitte die Schnittstelle article_status.

security: - tokenAuth: [ ] parameters: - name: field description: | Rückgabefeld, mögliche Werte: in: query schema: type: string default: orderNo enum: - orderNo - isbn - ean - name: showPrice description: | Übermittlung des Preises, mögliche Werte:

Wird der Parameter showPrice mit dem Wert 1 übergeben, so werden die Artikelpreise TAB-getrennt zurückgegeben.

in: query schema: type: integer default: 0 minimum: 0 maximum: 1 - name: showStock description: | Übermittlung des Bestands, mögliche Werte:

Wird der Parameter showStock mit dem Wert 1 übergeben, so werden ausschließlich die Bestellnummern und Bestandsangaben der Artikel zurückgegeben, die einen Bestand >1 besitzen. Alle übrigen Parameter (field, showPrice, mediaType) werden in diesem Fall ignoriert.

in: query schema: type: integer default: 0 minimum: 0 maximum: 1 - name: mediaType description: | Einschränkung nach Medientyp, mögliche Werte: in: query schema: type: integer default: n/a minimum: 0 maximum: 4 responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: | Eine Liste der Artikelnummern (bzw. ISBN/EAN) aller vom Anbieter aktuell angebotenen Artikel, getrennt mit einem einfachen Zeilenumbruch (\n). value: status: OK returnValue: "" INVALID_PARAMETERS: description: | Einer der Parameter field oder mediaType wurde mit einem falschen Wert übergeben. value: status: NOK returnValue: INVALID_PARAMETERS PARAMETER_MISMATCH: description: | Der Parameter field mit Wert isbn oder ean kann nur verwendet werden, wenn der Parameter mediaType vorhanden ist. value: status: NOK returnValue: PARAMETER_MISMATCH ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /article_status: get: tags: - article summary: Abfragen des Status eines Artikels description: Abfragen des Status eines Artikels security: - tokenAuth: [ ] parameters: - $ref: '#/components/parameters/orderNoParam' responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SOLD: description: Der Artikel wurde verkauft und steht nicht mehr zum Verkauf. value: status: OK returnValue: SOLD DELETED: description: Der Artikel wurde gelöscht, ist aber noch in der Datenbank. value: status: OK returnValue: DELETED ACTIVE: description: Der Artikel steht zum Verkauf. value: status: OK returnValue: ACTIVE INVALID_PARAMETERS: $ref: '#/components/responses/INVALID_PARAMETER_ORDERNO' NOT_FOUND: $ref: '#/components/responses/NOT_FOUND_ORDERNO' ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /search: get: tags: - article summary: Suche in der booklooker-Datenbank description: Suche in der booklooker-Datenbank security: - tokenAuth: [ ] responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: | Es wird eine selbsterklärende Liste mit den gefundenen Artikeln zurückgeliefert. value: status: OK returnValue: "" ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /file_import: post: tags: - upload summary: Upload von Angebots- oder Bilddateien description: Upload von Angebots- oder Bilddateien security: - tokenAuth: [ ] requestBody: require: true description: |

Die hochzuladende Datei.

Ihre Angebotsdatei können Sie entweder als Textdatei oder als komprimiertes ZIP-Archiv übergeben. Standardmäßig müssen die Textdateien in der Kodierung ISO 8859-1 vorliegen. Wenn Ihre Daten in einer anderen Kodierung, bspw. UTF-8 vorliegen, verwenden Sie sich bitte den Parameter encoding.

Bilddateien müssen als ZIP-Archiv übergeben werden. Weitere Hinweise finden Sie auf der Seite zum manuellen Hochladen. Die hochgeladenen Dateien werden in der Reihenfolge des Uploads verarbeitet.

Maximale Dateigröße: 80 MB.

content: application/octet-stream: schema: type: string format: binary parameters: - name: fileType description: | Dateityp, mögliche Werte: in: query schema: type: string default: article enum: - pic - article - name: dataType description: | Art des Uploads, mögliche Werte: in: query required: true schema: type: integer default: n/a minimum: 0 maximum: 2 - name: mediaType description: | Medientyp, mögliche Werte: in: query schema: type: integer default: 0 minimum: 0 maximum: 4 - name: formatID description: | Interne ID des Formats, legt Feldreihenfolge und Texttrenner fest. Für das booklooker-Format verwenden Sie bitte den Wert 1, für mehr Informationen wenden Sie sich bitte an daten@booklooker.de in: query schema: type: integer default: n/a (Es wird das Format des letzten Uploads verwendet.) - name: encoding description: | Character Encoding der Datei, mögliche Werte: in: query schema: type: string default: Es wird das Encoding des letzten Uploads verwendet, beim Erst-Upload CP-1252. responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: Upload erfolgreich. value: status: OK returnValue: SUCCESS INVALID_PARAMETERS: description: | Einer der Parameter fileType, dataType oder mediaType wurde nicht oder mit einem falschen Wert übergeben. value: status: NOK returnValue: INVALID_PARAMETERS FORMAT_ID_MISMATCH: description: | Die Kombination der Werte der Parameter formatID und mediaType kann nicht verarbeitet werden. value: status: NOK returnValue: FORMAT_ID_MISMATCH FILE_MISSING: description: Es wurde keine Datei übertragen. value: status: NOK returnValue: FILE_MISSING MAX_SIZE_EXCEEDED: description: Die maximal erlaubte Dateigröße wurde überschritten. value: status: NOK returnValue: MAX_SIZE_EXCEEDED INVALID_FILE_TYPE: description: Falscher Dateityp. value: status: NOK returnValue: INVALID_FILE_TYPE UPLOAD_FAILED: description: Der Upload der Datei ist fehlgeschlagen. value: status: NOK returnValue: UPLOAD_FAILED REPLACE_AMOUNT_EXCEEDED: description: | Uploads im Ersetzen-Modus sind bei einem Angebotsbestand > 1.000.000 Artikel nur in Absprache möglich. Bitte wenden Sie sich an daten@booklooker.de value: status: NOK returnValue: REPLACE_AMOUNT_EXCEEDED IDENTICAL_FILE_UPLOADED: description: Die Datei ist bereits im System vorhanden. value: status: NOK returnValue: IDENTICAL_FILE_UPLOADED QUEUE_FULL: description: | Die Warteschlange der hochgeladenen Dateien ist voll – entweder mehr als 200 Dateien oder mehr als 250 MB. value: status: NOK returnValue: QUEUE_FULL ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /file_status: get: tags: - upload summary: Abfragen des Status einer hochgeladenen Angebotsdatei description: Abfragen des Status einer hochgeladenen Angebotsdatei security: - tokenAuth: [ ] parameters: - name: filename description: | Name der hochgeladenen Datei.

Existieren mehrere hochgeladene Dateien mit diesem Namen, bezieht sich der zurückgegebene Wert auf die zuletzt hochgeladene Datei.

in: query required: true schema: type: string - name: showErrors description: | Der Rückgabewert ist eine Liste von Fehlern, die beim Import der Datei identifiziert wurden.

Mögliche Werte:

Achtung: Die Liste der Fehler kann nur für komplett verarbeitete Dateien abgefragt werden!

in: query required: false schema: type: integer default: 0 minimum: 0 maximum: 1 responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: FILE_RECEIVED: description: Die Datei wurde vollständig hochgeladen, aber noch nicht verarbeitet. value: status: OK returnValue: FILE_RECEIVED UPLOAD_IN_PROGRESS: description: Die Datei befindet sich aktuell in Verarbeitung. value: status: OK returnValue: UPLOAD_IN_PROGRESS UPLOAD_DONE: description: Die Datei komplett verarbeitet. value: status: OK returnValue: UPLOAD_DONE SHOW_ERRORS: description: |

Sofern der Parameter showErrors mit dem Wert 1 übergeben wurde, ist die Rückgabe eine Liste von Fehlern, welche je Zeile einen Artikel mit diesen Werten enthält:

SpalteBeschreibung
errorIDID des Fehlers (siehe unten)
recordDatensatz
orderNoBestellnummer
titleTitel (sofern vorhanden)
detailsweitere Informationen, warum der Artikel abgelehnt wurde (sofern vorhanden)

errorID kann folgende Werte annehmen:

errorIDBeschreibung
1Mehrfach vergebene Bestellnummer
2Mehrfach vorhandene identische Angebote (Dubletten)
3(wird nicht mehr verwendet)
4Neubücher in privatem Account
5Fehlende Formatangabe (z. B. CD, DVD, LP etc.)
6Hörbuch in Bücherdatei
7Fehlende oder ungültige FSK-Angabe
8Nicht unterstützter Artikeltyp
9(wird nicht mehr verwendet)
10Das Feld Titel ist leer
11Das Feld Preis oder Währung ist leer oder wurde nicht gefunden
12Preis von Neubuch weicht ab vom gebundenen Preis
13Grenze von 5000 VLB-Artikel überschritten, gesamte Datei wird nicht verarbeitet
14E-Books sind nicht erlaubt
15Keine Daten zur ISBN vorhanden
16FSK 18
17Maximale Artikelanzahl überschritten
18Erscheinungsdatum liegt in der Zukunft
19Preisangaben von 100.000 EUR und darüber werden nicht unterstützt
20Unerwünschter Verlag
21Nicht-westeuropäisches Zeichen in Bestellnummer
value: status: OK returnValue: "" INVALID_PARAMETERS: description: Der Parameter filename ist leer oder nicht vorhanden. value: status: NOK returnValue: INVALID_PARAMETERS FILE_NOT_FOUND: description: Die Datei wurde nicht gefunden. value: status: NOK returnValue: FILE_NOT_FOUND UPLOAD_FAILED: description: Datei konnte nicht eingelesen werden (es wurde kein gültiger Datensatz gefunden). value: status: NOK returnValue: UPLOAD_FAILED ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /image: delete: tags: - image summary: Einzelne oder alle Bilder eines Artikels löschen description: Einzelne oder alle Bilder eines Artikels löschen security: - tokenAuth: [ ] parameters: - $ref: '#/components/parameters/orderNoParam' - name: position description: |

Position des Bildes, falls nicht vorhanden werden alle (!) Bilder des Artikels gelöscht.

Achtung: Beim Löschen mehrerer (aber nicht aller) Bilder eines Artikels muss berücksichtigt werden, dass sich beim Aufruf dieser Schnittstelle die Position der nachfolgenden Bilder ändert: Wenn ein Artikel z.B. 5 Bilder hat und das Bild an Position 2 gelöscht wird, ändert sich die Position der Bilder 3, 4, 5 in 2, 3, 4.

in: query schema: type: integer default: n/a responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: Das Bild wurde bzw. die Bilder wurden erfolgreich gelöscht. value: status: OK returnValue: SUCCESS INVALID_PARAMETERS: $ref: '#/components/responses/INVALID_PARAMETER_ORDERNO' ARTICLE_NOT_FOUND: description: Die Bestellnummer wurde nicht gefunden. value: status: NOK returnValue: ARTICLE_NOT_FOUND IMAGE_NOT_FOUND: description: Das Bild wurde nicht gefunden. value: status: NOK returnValue: IMAGE_NOT_FOUND IMAGE_NOT_DELETED: description: Das Bild konnte nicht gelöscht werden. value: status: NOK returnValue: IMAGE_NOT_DELETED IMAGES_NOT_DELETED: description: Die Bilder konnten nicht gelöscht werden. value: status: NOK returnValue: IMAGES_NOT_DELETED ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /import_status: get: tags: - upload summary: Abfragen der Anzahl unverarbeiteter hochgeladener Angebotsdateien description: Abfragen der Anzahl unverarbeiteter hochgeladener Angebotsdateien security: - tokenAuth: [ ] responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: Anzahl der aktuell unverarbeiteten Dateien value: status: OK returnValue: "" ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /order: get: tags: - order summary: Download aller Bestellungen eines bestimmten Tages description: Download aller Bestellungen eines bestimmten Tages bzw. Zeitintervalls security: - tokenAuth: [ ] parameters: - name: orderId description: | Interne booklooker orderId der Bestellung, wird von der Schnittstelle order zurückgeliefert. in: query required: true schema: type: integer - name: date description: | Datum, zu dem Bestellungen angefordert werden, im Format YYYY-MM-DD. Wenn übergeben, hat dieser Parameter Vorrang vor dateFrom und dateTo in: query required: false schema: type: string - name: dateFrom description: Startdatum, zu dem Bestellungen angefordert werden, im Format YYYY-MM-DD in: query required: false schema: type: string - name: dateTo description: Enddatum, zu dem Bestellungen angefordert werden, im Format YYYY-MM-DD in: query required: false schema: type: string responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: |

Alle Bestellungen des angeforderten Tages bzw. Zeitintervalls.

fett · Das Element ist immer vorhanden.
normal · Das Element ist nur dann vorhanden, wenn ein Wert existiert.

Element Bedeutung
orderId Interne Booklooker orderId der Bestellung
orderDate
orderTime
Datum und Uhrzeit der Bestellung
accountHolder
accountIban
accountBic
Falls der Besteller als Zahlungsart Lastschrift gewählt hat und eine Bankverbindung angegeben hat, stehen in diesen Feldern die Kontodaten: Kontoinhaber, IBAN und BIC.
buyerPositiveRatingPercentage Prozentzahl der positiven Bewertungen des Käufers (0.0 - falls der Käufer noch keine Bewertung erhalten hat)
buyerTotalRatingNumber Anzahl der erhaltenen Bewertungen des Käufers
buyerUsername Benutzername des Käufers, bei Händlern der Firmenname
calculatedShippingCost Dieses Element wird nur übergeben, wenn die Versandkosten berechnet werden konnten, bspw. bei vorhandener Gewichtsangabe und Nutzung der Gewichts-Staffel-Tabelle zur Portoberechnung, oder bei Nutzung von Pauschalpreisen
comments Freitextfeld, in das Kunden bei Bestellung spezielle Wünsche eintragen können
currentProvisionNet Aktuelle Provision ohne MwSt. unter Berücksichtigung von Stornierungen - siehe auch originalProvisionNet
email E-Mail-Adresse des Käufers
originalProvisionNet Ursprüngliche Provision ohne MwSt. ohne Berücksichtigung von Stornierungen - siehe auch currentProvisionNet.
paymentConfirmed
transactionId
Aktuell nur für Zahlungsart PayPal: Falls uns der Zeitpunkt der erfolgreichen Bezahlung vom Zahlungsdienstleister gemeldet wurde, steht hier der Zeitpunkt im Format YYYY-MM-DD HH:MM:SS. Weiterhin die von PayPal übermittelte txn_id der zugehörigen Bezahlung.
paymentId Die vom Besteller gewählte Zahlungsart. Folgende Werte sind möglich:
  • 1 · Banküberweisung (Vorkasse)
  • 2 · Offene Rechnung
  • 11 · Offene Rechnung (Vorkasse vorbehalten)
  • 3 · Lastschrift (Vorkasse)
  • 4 · Kreditkarte (Vorkasse)
  • 5 · Nachnahme
  • 6 · PayPal (Vorkasse)
  • 8 · Skrill (Vorkasse)
  • 9 · Selbstabholung und Barzahlung
  • 10 · Sofortüberweisung
status Mögliche Rückgabewerte siehe order_status
tel Telefonnummer des Käufers
ustIdNr Umsatzsteuer-Identifikationsnummer des Käufers
invoiceAddress
deliveryAddress
Rechnungs- und ggf. Lieferanschrift
titleAnrede
nameNachname
firstNameVorname
companyFirma
addressSupplementZusatz
streetStraße und Hausnummer
zipPLZ
cityOrt
countryLand
orderItems
amount Bestellmenge
author Geistiger Schöpfer des Artikels, abhängig vom mediaType (s.u.):
  • Buch · Autor/in
  • Hörbuch · Autor/in
  • Film · Regisseur/in
  • Tonträger · Interpret/in
  • Spiel · Autor/in
infotext Beschreibungstext des Artikels (diese Option muss von unserem Kundendienst aktiviert werden, bitte schreiben Sie bei Bedarf eine E-Mail an support@booklooker.de
mediaType
  • 0 · Buch
  • 3 · Hörbuch
  • 1 · Film
  • 2 · Tonträger
  • 4 · Spiel
note Persönliche Notiz/Lagerort (nur wenn vorhanden)
orderItemId Interne booklooker orderItemId des Artikels, wichtig bei Nutzung der Schnittstelle order_item_cancel
orderNo Ihre Bestellnummer
orderTitle Titel des Artikels
singlePrice Preis des einzelnen Bestellpostens (unabhängig von Amount)
status
  • Ordered
  • Canceled
totalPriceRebated Gesamtpreis des Bestellpostens abzgl. evtl. Rabatte
value: status: OK returnValue: "" INVALID_ORDERID: description: Der Parameter orderId hat ein falsches Format. value: status: NOK returnValue: INVALID_ORDERID INVALID_DATE: description: Der Parameter date hat ein falsches Datumsformat. value: status: NOK returnValue: INVALID_DATE INVALID_DATE_FROM: description: Der Parameter dateFrom hat ein falsches Datumsformat. value: status: NOK returnValue: INVALID_DATE_FROM INVALID_DATE_TO: description: Der Parameter dateTo hat ein falsches Datumsformat. value: status: NOK returnValue: INVALID_DATE_TO INVALID_DATE_INTERVAL: description: Das maximal erlaubte Intervall beträgt 1 Monat. value: status: NOK returnValue: INVALID_DATE_INTERVAL ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /order_cancel: put: tags: - order summary: Stornieren einer kompletten Bestellung description: Stornieren einer kompletten Bestellung security: - tokenAuth: [ ] parameters: - $ref: '#/components/parameters/orderIdParam' responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: Die Bestellung wurde erfolgreich storniert. value: status: OK returnValue: SUCCESS INVALID_PARAMETERS: description: Der Parameter orderId ist leer oder nicht vorhanden. value: status: NOK returnValue: INVALID_PARAMETERS NOT_FOUND: $ref: '#/components/responses/NOT_FOUND_ORDERID' NO_ARTICLES_FOUND: description: Es wurden keine zu stornierenden Artikel gefunden. value: status: NOK returnValue: NO_ARTICLES_FOUND SIX_WEEKS_EXCEEDED: $ref: '#/components/responses/SIX_WEEKS_EXCEEDED' ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /order_item_cancel: put: tags: - order summary: Stornieren der Bestellung eines Einzelartikels description: Stornieren der Bestellung eines Einzelartikels security: - tokenAuth: [ ] parameters: - name: orderItemId description: | Interne booklooker "orderItemId" des Artikels, wird von der Schnittstelle order zurückgeliefert. in: query required: true schema: type: integer - name: mediaType description: | Medientyp, mögliche Werte: in: query required: true schema: type: integer minimum: 0 maximum: 4 responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: Die Artikel wurde erfolgreich storniert. value: status: OK returnValue: SUCCESS INVALID_PARAMETERS: description: | Einer der Parameter orderItemId oder mediaType ist leer oder nicht vorhanden. Auch ein falscher Wert für den Parameter mediaType erzeugt diesen Fehler. value: status: NOK returnValue: INVALID_PARAMETERS NOT_FOUND: description: | Die orderItemId wurde nicht gefunden. Bitte achten Sie darauf, ausschließlich die orderItemId zu verwenden, die Sie über die Schnittstelle order ausgelesen haben. value: status: NOK returnValue: NOT_FOUND SIX_WEEKS_EXCEEDED: $ref: '#/components/responses/SIX_WEEKS_EXCEEDED' ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /order_message: put: tags: - order summary: Versand einer Nachricht an den Kunden description: Versand einer Nachricht an den Kunden security: - tokenAuth: [ ] parameters: - $ref: '#/components/parameters/orderIdParam' - name: messageType description: |

Art der Nachricht, mögliche Werte

WertBeschreibung
PAYMENT_INFORMATIONZahlungsinformationen senden
PAYMENT_REMINDERZahlungserinnerung senden
SHIPPING_NOTICEVersandmitteilung senden
in: query required: true schema: type: string enum: - PAYMENT_INFORMATION - PAYMENT_REMINDER - SHIPPING_NOTICE - name: additionalText description: Zusätzlicher Text, der in die Nachricht aufgenommen wird in: query schema: type: string responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: Zurückgegeben wird der Nachrichtentext, der an den Kunden per Mail versandt wurde. value: status: OK returnValue: "" INVALID_ORDERID: description: Der Parameter orderId fehlt oder ist nicht korrekt angegeben. value: status: NOK returnValue: INVALID_ORDERID INVALID_MESSAGE_TYPE: description: Der Parameter messageType fehlt oder ist nicht korrekt angegeben. value: status: NOK returnValue: INVALID_MESSAGE_TYPE ORDER_NOT_FOUND: $ref: '#/components/responses/NOT_FOUND_ORDERID' NO_RECIPIENT: description: Es ist kein Handelspartner für diesen Verkauf eingetragen. value: status: NOK returnValue: NO_RECIPIENT NO_ARTICLES: description: Alle im Verkauf enthaltenen Artikel sind storniert. value: status: NOK returnValue: NO_ARTICLES ALREADY_SENT: description: Die Nachricht dieses Typs wurde bereits versandt (nur bei Versandmitteilungen). value: status: NOK returnValue: ALREADY_SENT TIME_RESTRICTION: description: | Zeitliche Beschränkungen verhindern den Versand der Nachricht. Es gelten folgende Regeln: value: status: NOK returnValue: TIME_RESTRICTION ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' /order_status: put: tags: - order summary: Setzen des Status einer Bestellung description: Setzen des Status einer Bestellung security: - tokenAuth: [ ] parameters: - $ref: '#/components/parameters/orderIdParam' - name: status in: query required: true schema: type: string enum: - BUYER_NO_REACTION - CANCELED - PAID_WAITING_FOR_SHIPMENT - READY_FOR_SHIPMENT - SHIPPED_AND_PAID - SHIPPED_WAITING_FOR_PAYMENT - TO_BE_PAID - VENDOR_NO_REACTION - WAITING_FOR_PAYMENT - WAITING_FOR_SHIPMENT description: |

Neuer Status der Bestellung

Achtung: Das Setzen des Status CANCELED ist nicht gleichbedeutend mit dem Aufruf der Schnittstelle order_item_cancel. Der Status CANCELED dient lediglich der Eigenorganisation des Verkäufers. Um eine Bestellung so zu stornieren, dass keine Provision anfällt, muss order_item_cancel aufgerufen werden.

Bei Verkäufen sind die folgenden Status möglich

StatusBedeutung
WAITING_FOR_PAYMENTwarte auf Zahlung
READY_FOR_SHIPMENTfertig zum Versand
SHIPPED_WAITING_FOR_PAYMENTversendet, warte auf Zahlung
SHIPPED_AND_PAIDversendet & bezahlt
BUYER_NO_REACTIONKunde reagiert nicht
CANCELEDstorniert

Bei Käufen sind die folgenden Status möglich

StatusBedeutung
TO_BE_PAIDZahlung offen
WAITING_FOR_PAYMENT_INFOwarte auf Zahlungsinformationen
WAITING_FOR_SHIPMENTwarte auf Lieferung
PAID_WAITING_FOR_SHIPMENTbezahlt, warte auf Lieferung
RECEIVED_AND_PAIDerhalten & bezahlt
VENDOR_NO_REACTIONVerkäufer reagiert nicht
CANCELEDstorniert
responses: '200': content: application/json: schema: type: object properties: status: type: string returnValue: type: mixed examples: SUCCESS: description: Der Status wurde erfolgreich gesetzt. value: status: OK returnValue: SUCCESS INVALID_PARAMETERS: description: Einer der Parameter orderId oder status ist leer oder nicht vorhanden. value: status: NOK returnValue: INVALID_PARAMETERS NOT_FOUND: $ref: '#/components/responses/NOT_FOUND_ORDERID' STATUS_NOT_VALID: description: Kein gültiger Wert für den Parameter status. value: status: NOK returnValue: STATUS_NOT_VALID ENCODING_ERROR: $ref: '#/components/responses/ENCODING_ERROR' INVALID_INTERFACE: $ref: '#/components/responses/INVALID_INTERFACE' INVALID_REQUEST_METHOD: $ref: '#/components/responses/INVALID_REQUEST_METHOD' QUOTA_EXCEEDED: $ref: '#/components/responses/QUOTA_EXCEEDED' SERVER_DOWN: $ref: '#/components/responses/SERVER_DOWN' TEMPORARILY_BLOCKED: $ref: '#/components/responses/TEMPORARILY_BLOCKED' TOKEN_EXPIRED: $ref: '#/components/responses/TOKEN_EXPIRED' TOKEN_MISSING: $ref: '#/components/responses/TOKEN_MISSING' TOKEN_UNKNOWN: $ref: '#/components/responses/TOKEN_UNKNOWN' components: securitySchemes: tokenAuth: type: apiKey in: query name: token parameters: orderNoParam: name: orderNo description: Ihre Bestellnummer in: query required: true schema: type: string orderIdParam: name: orderId description: | Interne booklooker orderId der Bestellung, wird von der Schnittstelle order zurückgeliefert. in: query required: true schema: type: integer responses: SERVER_DOWN: description: Aufgrund von Wartungsarbeiten ist die REST API momentan nicht verfügbar. value: status: NOK returnValue: SERVER_DOWN INVALID_INTERFACE: description: Es wurde eine ungültige Schnittstelle verwendet. value: status: NOK returnValue: INVALID_INTERFACE INVALID_REQUEST_METHOD: description: Die Schnittstelle wurde mit einer ungültigen HTTP-Methode aufgerufen. value: status: NOK returnValue: INVALID_REQUEST_METHOD TOKEN_MISSING: description: Der Token ist leer oder nicht vorhanden. value: status: NOK returnValue: TOKEN_MISSING TOKEN_UNKNOWN: description: Der Token wurde nicht gefunden. value: status: NOK returnValue: TOKEN_UNKNOWN TOKEN_EXPIRED: description: Der Token ist nicht mehr gültig, eine erneute Authentifizierung ist notwendig. value: status: NOK returnValue: TOKEN_EXPIRED TEMPORARILY_BLOCKED: description: Der Zugang wurde vorübergehend gesperrt, bitte wenden Sie sich an unseren Kundensupport. value: status: NOK returnValue: TEMPORARILY_BLOCKED QUOTA_EXCEEDED: description: Die maximale Anzahl Abfragen/Minute wurde überschritten. value: status: NOK returnValue: QUOTA_EXCEEDED ENCODING_ERROR: description: Die Rückgabe enthält ungültige Zeichen. value: status: NOK returnValue: ENCODING_ERROR SIX_WEEKS_EXCEEDED: description: Eine Stornierung ist nur 6 Wochen nach Bestelleingang möglich. value: status: NOK returnValue: SIX_WEEKS_EXCEEDED INVALID_PARAMETER_ORDERNO: description: Der Parameter orderNo ist leer oder nicht vorhanden. value: status: NOK returnValue: INVALID_PARAMETERS NOT_FOUND_ORDERNO: description: Die Bestellnummer wurde nicht gefunden. value: status: NOK returnValue: NOT_FOUND NOT_FOUND_ORDERID: description: Die orderId wurde nicht gefunden. value: status: NOK returnValue: NOT_FOUND