LetterXpress Logo

LXP API

Automatisierung Ihrer Prozesse mit unserer REST-Schnittstelle. Mit der LXP API können Sie Ihre Prozesse einfach automatisieren und PDF-Briefe direkt aus Ihren eigenen Softwaresystemen, Webanwendungen oder Programmen wie ERP-, CRM- oder Warenwirtschaftssystemen übermitteln. Diese leistungsstarke REST-Schnittstelle eröffnet Ihnen nahezu unbegrenzte Möglichkeiten, den Versand Ihrer Dokumente effizient und nahtlos in Ihre bestehenden Systeme zu integrieren.

Briefe automatisiert übertragen mit unserer REST-Schnittstelle (API)

Die LXP API ist eine leistungsstarke REST-Schnittstelle, die es Ihnen ermöglicht, den Postausgang in Ihre bestehenden Systeme zu integrieren und zu automatisieren. Ob Rechnungen, Mahnungen, Serienbriefe, Mailings oder Tagespost – mit unserer API können Sie Sendungen von bis zu 50 MB direkt aus Ihrer Software, wie ERP-, CRM- oder Warenwirtschaftssystemen, an das LetterXpress-System übermitteln. Ideal für Unternehmen mit weitgehend automatisierten Prozessen, die ihre Kommunikation effizient und sicher abwickeln möchten. Die Anbindung ist unkompliziert und schnell umsetzbar. Zudem stellen wir Ihnen eine umfassende Dokumentation zur Verfügung, um den Integrationsaufwand für Ihre IT-Abteilung zu minimieren.

Dokumentation zur REST-Schnittstelle (API)

Einleitung zur LXP API: Professionelle Integration für Ihre Systeme

Mit unserer LXP API können Sie Ihre Softwaresysteme, Webanwendungen oder andere Programme nahtlos und vollautomatisiert an LetterXpress anbinden. Unsere REST-Schnittstelle erwartet Request-Daten im JSON-Format (JavaScript Object Notation), wobei der Content-Type im Header als application/json angegeben werden muss. Die Authentifizierung erfolgt über den Benutzernamen sowie einen persönlichen API-Key, der im Kundenbereich unter Funktionen > Zugangsdaten > LXP API generiert werden kann.
Dies ermöglicht es Ihnen, PDF-Briefsendungen, die beispielsweise in Ihrer eigenen Anwendung erstellt werden, direkt und effizient über einen einfachen Request an LetterXpress zu übermitteln. Ideal für Unternehmen, die ihre Prozesse vollautomatisieren und den Versand ihrer Kommunikation optimieren möchten.

Versionierung

Version 3.0 (Aktuelle)
Datum 01.12.2024

Technische Details

  • Content-Type: application/json
  • Authentifizierung erfolgt mit Benutzernamen und API-Key
  • Maximale Dateigröße darf 50 MB je PDF / Request nicht überschreiten
  • Rate Limit: 120 pro Minute

Authentifizierung

Die Authentifizierung erfolgt durch einen JSON-Request mit Benutzernamen und API-Key, dieser kann im Kundenbereich unter Funktionen > Zugangsdaten > LXP API generiert werden.

Das "auth”-Objekt muss bei jedem Request mit übertragen werden.

Testmodus:
Um die API im Testmodus zu testen, muss der Wert "test” im Feld "mode” gesetzt werden ("mode”: "test”). Im Testmodus übertragene Aufträge gehen nicht in Verarbeitung, sondern werden in der Postbox abgelegt. Dort können Aufträge nachträglich geprüft, gelöscht oder auch versendet werden. Aufträge, die in der Postbox liegen gelassen werden, werden nach 7 Tagen automatisch gelöscht.

Livemodus:
Bei einem produktiven Einsatz muss der Wert "live” im Feld "mode” gesetzt sein ("mode”: "live”). Im Livemodus erfolgt die Übertragung der Sendungen direkt und nicht über die Postbox.

Request

{
    "auth": {
        "username": "(string)",
        "apikey": "(string)",
        "mode": "(string)" // test, live
    }
}

Response bei fehlerhafter Authentifizierung

{
    "message": "Unauthorized."
}

Beispiel

curl -X GET "https://api.letterxpress.de/v3/balance" \
-H "Content-Type: application/json" \
-d '{
    "auth": {
        "username": "(string)",
        "apikey": "(string",
        "mode": "(string)"
    }
}'

Letter-Objekt

Das Letter-Objekt bildet den Grund-Baustein für die Übermittlung von Briefen über die API Schnittstelle. Viele der Felder sind dabei optional und müssen nicht ausgefüllt und mitgeschickt werden.

"letter": {
    "base64_file": "(string)",
    "base64_file_checksum": "(string)", // md5 from base64 string

    "specification": {
      "color": "(string)", // 1 - black/white, 4 - color
      "mode": "(string)", // simplex, duplex
      "shipping": "(string)", // national, international, auto
      "c4": (number) // 0, 1 - optional, for C4 envelope under 9 sheets
    },

    // optional for print jobs
    // Necessary for LXP SMART@MAIL!
    // A file name can also be transferred with the request.
    // When retrieving jobs via the API, the file name is also returned.
    "filename_original": "(string)", // i.e. Rechnung-123456.pdf

    // optional
    // Important! Registered mail can only be sent nationally.
    // r1 - Einschreiben Einwurf
    // r2 - Einschreiben
    "registered": "(string)", // r1, r2

    // optional
    // Important! Dispatch day must be in the future.
    "dispatch_date": "(string)", // yyyy-mm-dd Format

    // optional
    // If the separator type is "string", then a keyword is expected as
    // the separator value, which is used to separate the individual letters.
    // If the separator type is "number", then a number is expected as the
    // separator value. The serial letter is then broken down into individual
    // letters after this number of pages.
    "serial_letter": {
      "pages_separator_type": "(string)", // string, number
      "pages_separator_value": "(string)|(number)" // keyword or number of pages
    },

    // optional
    // !! No use in combination with serial letter !!
    // If the keyword "email_letter" is in your request, its expected
    // that there is a correct email_option and a valid email address.
    // The use of that keyword is only needed, if you want to transfer
    // a single Job. If you want to transfer a serial letter with the
    // use of LXP SMART@MAIL, you have to leave out the email_letter object
    // and work with the whitecode option. Otherwise your transmitted File
    // will be proccessed as a Printjob.
    "email_letter": {
        "email_option": "(string)", // maildirect, mailplus, mailsecure
        "email_receiver": "(string)" // valid email address
    }


    // optional
    // Multiple attachments can be added to a letter. The order of the
    // attachments in the letter depends on the order of the attachments
    // in the request.
    // The attachments must be created as a PDF in A4 portrait format
    // (29.7 x 21.0 cm) and converted to a base64 string.
    "base64_attachments": ["(string)", "(string)", ...],

    // optional
    // The letter background must be created as a PDF in A4 portrait format
    // (29.7 x 21.0 cm) and consist of one page. With a serial letter, the
    // background is inserted on each individual letter after the selection made.
    "backgrounds": {
      "base64_background_first_page": "(string)",
      "base64_background_other_pages": "(string)"
    },

    // optional
    // The terms and conditions must be created as a PDF in A4 portrait
    // format (29.7 x 21.0 cm) and consist of one page. They can either be
    // inserted behind the 1st page or behind all pages of a letter.
    // Printing is automatically double-sided (duplex). If the terms and conditions
    // are only inserted behind the first page, blank pages will be inserted
    // behind all subsequent pages. With a serial letter, the terms and
    // conditions are added to each individual letter according to the rules
    // that have been set.
    "terms_and_conditions": {
      "base64_terms": "(string)", // PDF format
      "terms_on_all_pages": (number) // 0, 1
    },

    // optional
    // The bank transfer form is always attached as the last sheet of a letter.
    "bank_form": {

      // Payment details are printed on the last sheet.
      // This sheet must be blank except for the payment details.
      "bank_form_included": (number), // 0, 1

      // This information is ignored if "bank_form_included" is set to 1
      "payee": "(string)", // max. 27 characters
      "iban": "(string)", // max. 34 characters
      "bic": "(string)", // max. 11 characters
      "amount": "(string)", // max. 12 characters
      "purpose_of_payment": "(string)", // max. 27 characters
      "purpose_of_payment2": "(string)" // max. 27 characters
    },

    // optional
    // This field can contain any information. The data is stored in the
    // database for a certain period of time and can be called up again
    // via API or in the customer area.
    "notice": "(string)" // max. 255 characters
}

Die minimale Konfiguration eines Letter-Objekt sieht so aus:

"letter": {
    "base64_file": "(string)", // file encoded in base64 format
    "base64_file_checksum": "(string)", // checksum from base64 encoded string

    "specification": {
      "color": "(string)", // 1 - black/white, 4 - color
      "mode": "(string)", // simplex, duplex
      "shipping": "(string)" // national, international, auto
    }
}

Endpoints

Bei einer Preisabfrage ist unter "specification" ein zusätzliches Element "pages" (Seitenzahl) erforderlich.

Die Reihenfolge der Aufträge richtet sich nach dem Auftrags-Datum (von neu zu alt).

Diesem Endpunkt können bestimmte Parameter mit übergeben werden: "filter”: queue, hold, done, canceled, draft

Wert
Beschreibung
queue
Aufträge in der Warteschlange
hold
angehaltene Aufträge
done
verarbeitete Aufträge
canceled
stornierte Aufträge
draft
Aufträge in der Postbox

Beispiel
GET: /v3/printjobs?filter=hold

Um ein PDF-Dokument zu übertragen muss das Letter-Objekt mit übermittelt werden, welches weitere Elemente benötigt.

Ein Auftrag kann nur innerhalb der ersten 15 Minuten nach der Übertragung noch verändert werden.

Das PDF Dokument (Datei) kann durch ein Update nicht mehr nachträglich verändert werden. Nur bestimmte Spezifikationen bzw. Versandoptionen können noch angepasst werden.

Ein Auftrag kann nur innerhalb der ersten 15 Minuten nach der Übertragung gelöscht werden. Aufträge, die bereits den Status "done" haben, können nicht mehr gelöscht werden.

Um ein PDF-Dokument zu übertragen muss das Letter-Objekt mit übermittelt werden, welches weitere Elemente benötigt.

Übertragungsmöglichkeiten:
1. Übertragen Sie uns eine normale PDF. Im Letter-Objekt fügen sie das "email_letter" objekt mit. Die PDF wird nun mit der angebeben E-Mail Adresse (email_receiver) und der SMART@MAIL Option ("email_option") verarbeitet.


Achtung! Ist das email_letter Objekt mitgeführt, kann der Auftrag nicht als Serienbrief verarbeitet werden!

2. Sie übermitteln uns eine PDF mit dem White-Code (bspw. ":: mustermann@lxp.de; mailplus ::") Bei dieser Option wird auf das "email_letter" Objekt verzichtet! Dieser Auftrag wird nach dem angegebenen SMART@MAIL Parameter verarbeitet. Mit dieser Option können Sie die PDF auch als Serienbrief verarbeiten lassen.


Achtung! Auf der PDF muss sich ein whitecode befinden, ansonsten wird ihre Übertragene PDF an diesem Endpoint nicht verarbeitet.


Um ein PDF-Dokument zu übertragen muss das Letter-Objekt mit übermittelt werden, welches weitere Elemente benötigt.

Wert
Beschreibung
payins
Einzahlungen / Gutscheine / Kickbacks …
payouts
Auszahlungen
printjobs
Aufträge

Beispiel
GET: /v3/transactions?filter=printjobs

Auflistung aller Rechnungen mit Rechnungsbetrag, Steueranteil sowie Rechnungsdatum.

Hiermit kann eine einzelne Rechnung samt der PDF-Daten (im base64-Format) abgerufen werden.

Statusmeldungen


Status
Beschreibung
200
OK
400
Bad Request
401
Unauthorized
403
Forbidden
404
Not Found
405
Method Not Allowed
500
Internal Server Error