Loading...
Loading...

API om brieven via PostNL te verzenden

De krachtige, volledig aan te passen Post API van Pingen is jouw softwaretoepassing om brieven via PostNL te versturen. Onze SDK's zorgen voor een snelle en eenvoudige integratie.

CirkelCirkelAPI voor brieven versturen via PostNL
Voordelen voor ontwikkelaars

Automatisch brieven versturen

De Post API van Pingen maakt eenvoudige software-integraties mogelijk, om zo automatisch brieven via PostNL te versturen.

Brief API

Gratis API

We helpen je graag bij het automatiseren van processen. Daarom is onze API gratis voor alle klanten.

Krachtige SDK's

Krachtige SDK's (binnenkort beschikbaar)

Verstuur brieven in recordtijd via PostNL met onze SDK's voor PHP, Java, C# en .Net.

Ondersteunde betalingssystemen

Ondersteunde betalingssystemen

Pingen ondersteunt ISR, ISR+, rode betalingsbewijzen en QR-bill (Zwitserland) evenals SEPA (Duitsland) en SEPA (Oostenrijk).

Post API Van Ontwikkelaars voor Ontwikkelaars

Van ontwikkelaars voor ontwikkelaars

Alle functies van Pingen zijn ook beschikbaar via onze Post API en worden gedetailleerd uitgelegd in onze documentatie.

PostNL Track & Trace

Track & Trace

Pingen biedt gedetailleerde statusinformatie en realtime voortgangsupdates voor elke brief die via de API wordt verzonden.

Genereer inkomsten

Genereer inkomsten

Bedrijven die het versturen van brieven integreren en doorverkopen, hebben een mooie nieuwe kans om extra inkomsten te genereren.

API highlights

API voor brieven via PostNL

Brieven versturen via de Post API van Pingen is net zo eenvoudig als het verzenden van een standaard e-mail. Onze API is digitaal en volledig aanpasbaar.

PostNL API Highlights voor digitale briefverzending
Van PDF naar de mailbox

Gebruik de Post API om je brief als PDF in te dienen, en Pingen doet de rest. Alle functies van Pingen zijn ook beschikbaar via de API. Hierdoor kun je alle processen volledig automatiseren en je account beheren via de API.

Automatische documentvalidatie

Pingen controleert automatisch alle ingediende PDF’s in nakoming met de vereisten voor het versturen van brieven. Als niet aan de vereisten wordt voldaan, biedt Pingen opties om deze rechtstreeks via de API aan te passen.

Digitale verwerking van retouren

Als PostNL brieven niet kan bezorgen, worden deze automatisch via de Pingen DMC opgevangen, gecontroleerd, vernietigd en via webhooks gerapporteerd. Op deze manier worden onbestelbare brieven altijd digitaal verwerkt.

Sandbox / Testomgeving

Pingen biedt alle ontwikkelaars een testomgeving om ervoor te zorgen dat integraties eenvoudig en gemakkelijk in een sandbox kunnen worden getest. Alle functies van Pingen zijn beschikbaar in de sandbox, maar hier worden geen brieven verstuurd.

Gedetailleerde prijscalculator

Gebruik het prijscalculator-eindpunt om de prijs van een brief vooraf te controleren. Op deze manier zie je altijd de volledige kosten, voordat je een brief verstuurt.

API Documentatie

Dit is hoe eenvoudig onze API werkt

De Brief API van Pingen is ontworpen om flexibel en eenvoudig te zijn, waardoor het makkelijk en snel te integreren is. Naast de gebruiksvriendelijke documentatie bieden we ook codevoorbeelden waarmee je snel aan de slag kunt.

$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>

Volledige API-documentatie
Pingen PHP Libary

Met de Pingen PHP Library wordt het nog eenvoudiger

De Pingen PHP Library biedt alles wat je nodig hebt om onze API te integreren en brieven te versturen via PostNL. Pingen heeft het werk voor alle PHP-ontwikkelaars al gedaan. Binnenkort zullen we onze SDK's vrijgeven voor alle andere ontwikkelaars. 🚀

Meer dan alleen een API voor brieven

Onze Post API biedt veel meer dan de klassieke API die door brievenshops of mailserviceproviders wordt gebruikt. Met Pingen heb je toegang tot een snelgroeiende en internationale service waarmee je wereldwijd brieven kunt verzenden tegen de beste prijs.

Lokaler Briefdienstleister via Deutsche Post

Lokale post service aanbieder

Nu al worden brieven gedrukt en verstuurd in Nederland, Duitsland, Oostenrijk, Zwitserland en India.

Briefe online versenden - Internationaler Versand

Internationale postbezorging

Door ons partnerschap met DHL garandeert Pingen een snelle en betrouwbare levering naar alle andere landen via luchtpost.

Schaalbaar en betrouwbaar

Schaalbaar en betrouwbaar

Pingen is eenvoudig schaalbaar en veilig dankzij onze cloud- en multi-site briefdrukinfrastructuur.

Vertrouwd door innovatieve merken

Begin nu met ontwikkelen

Bekijk de documentatie van onze Post API en zie hoe eenvoudig het is om brieven via PostNL in jouw softwareoplossing te integreren!