API for Sending Snail Mail via Post and DHL

Pingen’s powerful, fully scalable Post API enables your software solution to send Snail Mail automatically via Post and DHL. Our SDKs allow for fast, easy integration.

Post API for sending letters via DHL
Benefits for Developers

Send Letters Automatically

Pingen’s Post API enables easy software integrations to automatically send letters via Post and DHL.

DHL API

Free API

We’re passionate about helping you automate processes. That’s why we provide our API to all customers free of charge.

Powerful SDKs

Powerful SDKs (coming soon)

Send letters via DHL in record time with our SDKs for PHP, Java, C#, and .Net.

Payment Forms

Supported Payment Forms

Automatic printing as a Swiss QR invoice or with SEPA payment slips in Germany and Austria.

Post API from Developers for Developers

From Developers for Developers

All of Pingen’s features are also available via our Post API and explained in detail in our documentation.

Track & Trace

Track & Trace

Pingen provides detailed status information and real time progress updates for each letter submitted via API.

Generate Revenue

Generate Revenue

By reselling postal letters, integrators can unlock an exciting, new opportunity to generate additional revenue.

Fast, powerful, user-friendly Post API

Pingen’s Snail Mail API is designed to be flexible and straightforward, making it easy to integrate in no time. In addition to the user-friendly documentation, we also provide code examples to help you get started quickly.

curl \
       -X GET "https://api.pingen.com/file-upload" \
       -H "Authorization: Bearer INSERT_YOUR_ACCESS_TOKEN_HERE"

# Extract data.attributes.url and data.attributes.url_signature from response

curl -X PUT -T path_to_your_file.pdf "INSERT_URL_FROM_INITIAL_CURL_REQUEST"

curl \
       -X POST "https://api.pingen.com/organisations/YOUR_ORGANISATION_UUID/letters" \
       -H "Content-Type: application/vnd.api+json" \
       -H "Authorization: Bearer INSERT_YOUR_ACCESS_TOKEN_HERE" \
       --data-binary @- << EOF
       {
           "data": { \
               "type": "letters", \
               "attributes": { \
                   "file_original_name": "your_filename.pdf", \
                   "file_url": "INSERT_URL_FROM_INITIAL_CURL_REQUEST", \
                   "file_url_signature": "INSERT_URL_SIGNATURE_FROM_INITIAL_CURL_REQUEST", \
                   "address_position": "left", \
                   "auto_send": false, \
                   "delivery_product": "fast", \
                   "print_mode": "simplex", \
                   "print_spectrum": "color" \
               } \
       } \
   }
EOF

require __DIR__ . '/vendor/autoload.php';

$provider = new \Pingen\Provider\Pingen(
   array(
   'clientId' => 'YOUR_OAUTH2_CLIENT_ID',
   'clientSecret' => 'YOUR_OAUTH2_CLIENT_SECRET'
)
);

$access_token = $provider->getAccessToken('client_credentials');

$lettersEndpoint = (new \Pingen\Endpoints\LettersEndpoint($access_token))
    ->setOrganisationId('INSERT_YOUR_ORGANISATION_UUID_HERE');

$lettersEndpoint->uploadAndCreate(
   (new \Pingen\Endpoints\DataTransferObjects\Letter\LetterCreateAttributes())
       ->setFileOriginalName('your_original_pdf_name.pdf')
       ->setAddressPosition('left')
       ->setAutoSend(false),
   fopen('path_to_your_original_pdf_name.pdf', 'r')
);

import json
import requests

url_file_upload = 'https://api.pingen.com/file-upload'
url_letters = 'https://api.pingen.com/organisations/YOUR_ORGANISATION_UUID/letters'
access_token = 'INSERT_YOUR_ACCESS_TOKEN_HERE'

response = requests.get(url_file_upload, headers =
    'Authorization': 'Bearer {}'.format(access_token),
})
data = json.loads(response.text)['data']
file_url = data['attributes']['url']
file_url_signature = data['attributes']['url_signature']

file = open('path_to_your_file.pdf', 'rb')
requests.put(file_url, data=file)
file.close()

payload = {
    'data': {
         'type': 'letters',
         'attributes': {
              'file_original_name': 'your_filename.pdf',
              'file_url': file_url,
              'file_url_signature': file_url_signature,
              'address_position': 'left',
              'auto_send': False
         }
    }
}
requests.post(
    url_letters,
    json.dumps(payload),
    headers = {
         'Content-Type': 'application/vnd.api+json',
         'Authorization': 'Bearer {}'.format(access_token)
    })

API Highlights

Online Mail Service API for Snail Mail

Sending snail mail via Pingen’s Post API is as easy as sending a standard email. Our API is digital and fully scalable.

API Documentation
Learn more
Online letter mailing
Automatic Document Validation

Pingen automatically checks all submitted PDFs if they comply with the requirements of postal letters. If any requirements are not met, Pingen provides options to fix them directly via the API.

Automate Letter Mailing
Digital Returns Processing

If the Post fails to deliver any letters, they are automatically captured using the Pingen DMC, destroyed in a controlled manner, and reported via webhooks. This way, undeliverable letters are always processed digitally.

Detailed Track & Trace
Sandbox / Test Environment

Pingen offers a staging environment to all developers to ensure that integrations are easily and conveniently tested in a sandbox. All features of Pingen are available in the sandbox but no letters will actually be sent.

Digital Returns Processing
Detailed Pricing Calculator

Use the pricing calculator endpoint to check the price of your snail mail in advance. This way, you can always determine the full costs before sending any letter.

Webhooks

Receive letter events in real time via webhooks

Pingen offers automatic notifications for important events via webhooks. For example, you will be notified immediately when a letter has been sent, has a problem or is undeliverable. This allows you to automatically take further actions without having to actively "poll" our API for changes.

In the webhook management of Pingen, you have access to detailed information for each request, such as the payload and the response from your system. This allows you to quickly identify problems and fix them with minimal effort.

Shipping costs statistics
Pingen PHP Library

Easy Integration with the Pingen PHP Library

The Pingen PHP Library offers everything you need to integrate our API and send letters via Post and DHL. Pingen has already done the work for all PHP developers. Coming soon, we’ll release our SDKs for all other developers as well. 🚀

More than just a Lettershop API

Our Post API offers much more than the classic API used by lettershops or mail service providers. With Pingen, you gain access to a fast-growing and international service that helps you send snail mail globally for the best price.

Local Mail Service Provider

Local Mail Service Provider

Already today, letters are being printed and sent locally in Germany, Austria, Switzerland, India and the Netherlands.

International Mail Delivery

International Mail Delivery

Through our partnership with the Post and DHL, Pingen guarantees fast and reliable delivery to all other countries via air mail.

Scalable and reliable API

Scalable and Reliable

Pingen scales easily and is fail-safe due to our cloud and multi-site letter printing infrastructure.

Start Developing Now

Take a look at our Post API’s documentation and see how easy it is to integrate snail mail via Post and DHL into your software solution!