Skip to main content

pyPostal is an Interface for sending real (paper-based) letters via an API.

There are several providers which offer printing, envelope stuffing and posting services but currently only https://www.pixelletter.de/ provides such services to SME without contractual hassles and the like.

This interface only supports mailing PDFs which have the Address Placed in the PDF at the DIN 5008 Address Location.

You can download it at the Python PAckage Index (PyPI).

High-Level Usage

Usage is very easy: Just set up your credentials in the Environment before starting Python:

export PYPOSTAL_PIXELLETTER_CRED='your@email.com:PASSWORD'

Then call pypostal.send_post_pixelletter() with the open PDF files or PDF datatream to send and the country code of the recipient:

>>> import pypostal
>>> pypostal.send_post_pixelletter(
        [open('/Users/md/Desktop/Testbrief.pdf').read()], 'DE')

If you prefer to hardcode credentials you can provide them via a function call instead via the environment:

>>> pypostal.send_post_pixelletter([open('Testbrief.pdf')], 'DE',
                                   username='your@email.com',
                                   password='PASSWORD')

Pixelletter Interface

Pixelletter offers a Bunch of Documentation and a PHP Library. Unfortunately there is no specification of the HTTP-API and the documentation seems also somewhat incomplete and outdated. Also it seems that Pixelletter uses no prebuild XML processing and parsing pipeline but build one arround print statements. This library was build by using trial and error and reverse engeneering the website.

Example Usage

The Pixelletter interface is straightforward:

# Log in
>>> from pypostal import Pixelletter
>>> pix = Pixelletter('your_email', 'your_password', test_mode=True)

# Show how many Cents Pixelletter owes you.
>>> print pix.get_account_info()['customer_credit']
1995

# Send two PDFs from your Desktop as en Letter
>>> print pix.sendPost([open('/Users/md/Desktop/Testbrief.pdf'),
                        open('/Users/md/Desktop/Thesis.pdf')])

# Send one PDF printet in color and in CO2 neutral fashion.
>>> print pix.sendPost([open('/Users/md/Desktop/Testbrief.pdf').read()],
                       guid='0815-4711', service=['green', 'color'])

You can provide a GUID (“Transaction Identifier” in the Pixelletter Documenttion) - this might support a Track and Trace Interface but I havn’t seen any documentation on this. Something like https://www.pixelletter.de/de/auftraege.php as an Atom Feed vertainly would be nice.

The Python library currently supports following services:

  • green (default, use service=[] to disable)

  • einschreiben (see DHL / Deutsche Post AG on the differences)

  • einschreibeneinwurf

  • eigenhaendig

  • eigenhaendigrueckschein

  • rueckschein

  • color

The Pixelletter API also seems to support “Nachnahme”, “Postident Comfort” and “Ueberweisungsvordruck” but they are undocumented and currently not supported by this library.

Sipgate.de Fax Interface

Sipgate.de offers a hot and new REST API with some documentation. Pypostal provides functionality to send PDFs via Fax.

Example Usage

A nice and clean interface:

# Log in
>>> from pypostal.sipgate import Sipgate
>>> sip = Sipgate('your_email', 'your_password')

# Send a PDF via Fax
>>> sip.sendFax([open('/Users/md/Desktop/Testbrief.pdf')], 'sender_number', ['dest_number'])

Planned other Interfaces

We want to support

  • Pixelletter Fax interface

  • Pawisda L-Vin Post / Pinbriefportal SOAP Interface

Metadata

Release files for pyPostal 1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyPostal 1.1
File Size Uploaded Provenance
pyPostal-1.1.tar.gz 6.7 kB Without provenance Details

Release files / pyPostal-1.1.tar.gz

Download URL pyPostal-1.1.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
961849750395ab72306b961c586ac04764f6d781bc205632a327cb7359a2f3c7
BLAKE2b-256 checksum
How to use checksums
e796145d60501264de505926f48f52c29c5fd20d066f2e158107a66ea963cf56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for pyPostal 1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page