Loading...
Loading...

API für den Briefversand via Österreichische Post

Mit der skalierbaren Post API von Pingen wird deine Software im Handumdrehen um automatischen Briefversand via Österreichische Post und DHL erweitert. Die Integration ist dank unseren SDKs ein Kinderspiel.

KreisKreisPost API für Briefversand über Österreichische Post und DHL
Vorteile für Entwickler

Automatischer Postversand für deine Software

Mit der Post API von Pingen wird deine Software ganz einfach um den automatisierten Briefversand via Österreichische Post und DHL erweitert.

Brief API

Kostenlose API Schnittstelle

Wir wollen helfen, Prozesse zu automatisieren. Daher stellen wir unsere API allen Kunden kostenlos zur Verfügung.

Umfangreiche SDKs

Umfangreiche SDKs (demnächst)

Die Integration vom Briefversand ist dank unseren SDKs für PHP, Java, C# und .Net in kürzester Zeit realisiert.

Überweisungsträger

Unterstützte Überweisungsträger

SEPA (Österreich), SEPA (Deutschland) sowie ESR, ESR+, rote Einzahlungsscheine und QR-Rechnung (Schweiz).

Post API von Entwicklern für Entwickler

Von Entwicklern für Entwickler

Alle Funktionen von Pingen sind auch über die Post API verfügbar und in unserer Dokumentation detailliert beschrieben.

Österreichische Post Track & Trace

Track & Trace

Für jeden übermittelten Brief bietet Pingen via API ausführliche Status Informationen, um den Verlauf zu verfolgen.

Einnahmen generieren

Einnahmen generieren

Der Weiterverkauf vom Briefversand bietet Integratoren spannende Möglichkeiten zum Generieren zusätzlicher Einnahmen.

API Highlights

Online Briefversand API

Über die Pingen Post API ist der Versand von einem Brief so einfach wie der Versand von einem E-Mail bei deinem Mailprovider. Digital und beliebig skalierbar.

Österreichische Post API Highlights für den digitalen Briefversand
Vom PDF in den Briefkasten

Via unserer Post API den Briefinhalt als PDF übermitteln und Pingen übernimmt den Rest. In der API stehen dir alle Funktionen von Pingen zur Verfügung. So lassen sich alle Prozesse vollständig automatisieren und auch dein Konto über die API administrieren.

Automatische Validierung von Dokumenten

Alle übermittelten PDF werden von Pingen automatisch auf die Anforderungen beim Briefversand geprüft. Sofern gewisse Anforderungen nicht eingehalten sind, bietet Pingen Optionen, diese direkt via API zu beheben.

Digitale Retouren Verarbeitung

Sofern bei Briefen die Zustellung durch die Österreichische Post fehlschlägt, werden diese anhand vom Pingen-DMC automatisch erfasst, kontrolliert, vernichtet und via Webhooks gemeldet. So werden auch diese immer digital verarbeitet.

Sandbox /Testumgebung

Um Integrationen ausgiebig zu testen, bietet Pingen mit der Staging-Umgebung eine Sandbox. In dieser stehen alle Funktionen zur Verfügung, ohne dass jedoch Briefe effektiv versendet werden.

Detaillierter Preiskalkulator

Über den Preiskalkulator-Endpoint lassen sich sämtliche Preise von Pingen im Voraus berechnen. So sieht man bereits vor dem Versand, welche Kosten ein Brief verursachen wird.

Zur API Dokumentation

So einfach funktioniert unsere API

Die Brief API von Pingen ist so flexibel und einfach wie möglich gehalten, damit sich Integrationen im Handumdrehen realisieren lassen. Neben der verständlichen Dokumentation bieten wir auch Code-Beispiele, um den Einstieg weiter zu erleichtern.

$sToken = ''; //Add your private token here
$sFile = realpath('/path/to/your/file.pdf');

//set URL
$sURL = 'https://api.pingen.com/document/upload/token/' . $sToken;

 //build our query data
$aData = array(  
          'data' => json_encode(array(        
                    'send' => true, //we want to automatically send it
                     'speed' => 1, //we want to send priority
                     'color' => 1, //and in color
           )),
          'file' => '@' . $sFile
);

//set the url, number of POST vars, POST data
$objCurlConn = curl_init();
curl_setopt($objCurlConn,CURLOPT_URL,$sURL);
curl_setopt($objCurlConn,CURLOPT_POST,1);
curl_setopt($objCurlConn,CURLOPT_POSTFIELDS,$aData);
curl_setopt($objCurlConn, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($objCurlConn, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($objCurlConn, CURLOPT_SSL_VERIFYPEER, 0);

//execute post
$sResult = curl_exec($objCurlConn);

// decode result and pass from here on
$aResult = json_decode($sResult, true);

if   ($aResult['error']==true)
{    
          //an error occurred, handle it from here
}else {  
         //go along with your code here
}

HttpClient httpClient = new DefaultHttpClient();

try {
         HttpPost request = new HttpPost("https://api.pingen.com/document/send/id/30/token/MYTOKEN");

         JSONObject j = new JSONObject();
         j.put("speed", "1");
         j.put("color", "1");

        List<namevaluepair> nameValuePairs = new ArrayList<namevaluepair>(1);
        nameValuePairs.add(new BasicNameValuePair("data", j.toString()));

       UrlEncodedFormEntity params = new UrlEncodedFormEntity(nameValuePairs);
       request.addHeader("content-type", "application/x-www-form-urlencoded");
       request.setEntity(params);
       HttpResponse response = httpClient.execute(request);

      // handle response here...
} catch (Exception ex) {
     // handle exception here
} finally {
     httpClient.getConnectionManager().shutdown();
}
</namevaluepair></namevaluepair>

using (WebClient client = new WebClient()) {
         string jsonRequest = new JavaScriptSerializer().Serialize(new { speed = 1, color = 1 });
          client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
          string jsonResponse = string.Empty;
          try {
                   jsonResponse = client.UploadString("https://api.pingen.com/document/send/id/30/token/MYTOKEN", jsonRequest);
                    // parse json and handle it
          } catch (Exception e) {
                  WebException we = e as WebException;
                    if (we != null && we.Response != null)  {
                              var res = we.Response.GetResponseStream();
                              if (res != null) jsonResponse = new StreamReader(res).ReadToEnd();
                    }
                    // parse json (if available) and handle error
          }
}

public SendDocToPingenResponse SendDocToPingen(string pathToPdf, bool sendViaPost = false) {

         if (string.IsNullOrEmpty(pathToPdf)) throw new ArgumentException("pathToPdf");
         if(!File.Exists(pathToPdf)) throw new ArgumentException(pathToPdf + "does not exist.");

         byte[] rawdata = File.ReadAllBytes(pathToPdf);
         string filename = Path.GetFileName(pathToPdf);

         var body = new {
                  send = sendViaPost,
                  speed = 1,
                  color = 0,
                  duplex = 0,
                  rightaddress = 0,
                  envelope = 0
         };

         var jsonBody = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(body);

         SendDocToPingenResponse result = null;

         using (HttpClient client = new HttpClient()) {
                  var content = new MultipartFormDataContent() { };
                  content.Add(new StringContent(jsonBody), "data");
                  content.Add(new ByteArrayContent(rawdata), "file", filename);

                  string uri = $"https://api.pingen.com/document/upload/token/15.......";
                  System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;

                  try {
                           var resultObject = client.PostAsync(uri, content).Result;
                           var resultJson = resultObject.Content.ReadAsStringAsync().Result;
                           result = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<senddoctopingenresponse>(resultJson);
                   }

                  catch (Exception ex) {
                           /// somethign went wrong
                  }

                  return result;
         }
}

public class SendDocToPingenResponse {

         public bool error {
                  get;
                  set;
         }

         public int errorcode {
                  get;
                  set;
         }

         public string errormessage {
                  get;
                  set;
         }

         public int id {
                  get;
                  set;
         }
}

</senddoctopingenresponse>

Vollständige API Dokumentation
Pingen PHP Libary

Noch einfacher mit der Pingen PHP Library

In der Pingen PHP Libary ist alles für den Briefversand via Österreichische Post vorbereitet. Für alle PHP-Entwickler hat Pingen sozusagen die Arbeit bereits gemacht, für alle anderen Entwickler folgen bald unsere SDKs. 🚀

Mehr als nur eine Lettershop API

Unsere Post API bietet deutlich mehr als eine klassische API von einem Lettershop oder Briefdienstleister. Bei Pingen erhältst du Zugriff auf einen schnell wachsenden internationalen Service, dass dir den weltweiten Briefversand zu den besten Konditionen ermöglicht.

Lokaler Briefdienstleister via Österreichische Post

Lokaler Briefdienstleister

Bereits heute werden Briefe lokal in Österreich, Deutschland, Holland, Indien und der Schweiz gedruckt und versendet.

Briefe online versenden - Internationaler Versand

Weltweiter Postversand

Durch die Partnerschaft mit DHL kann Pingen auch in alle anderen Länder schnellste Zustellung via Luftfracht garantieren.

Skalierbare und ausfallsichere API

Skallierbar und Ausfallsicher

Durch unsere Cloud-Infrastruktur sowie den Briefdruck an mehreren Standorten skaliert Pingen problemlos und ist ausfallsicher.

Erfolgreiche Firmen setzen auf Pingen

Starte jetzt mit der Entwicklung

Wirf einen Blick in die Dokumentation unserer Brief API und sehe, wie einfach sich Briefe in deine Lösung integrieren und digital versenden lassen!