API pour l'envoi de courriers via la Poste Suisse

La puissante lettre API de Pingen, entièrement évolutive, permet à votre solution logicielle d'envoyer automatiquement des courriers via la Poste Suisse et DHL. Nos kits de développement logiciel (SDK) permettent une intégration rapide et facile.

Lettre API pour l'envoi de courriers via la Poste Suisse
Avantages pour les développeurs

Envoi automatique de courrier postal

La lettre API de Pingen permet d'intégrer en toute simplicité des logiciels pour envoyer automatiquement des courriers via la Poste Suisse et DHL.

La poste suisse API

API gratuite

Nous avons à cœur de vous aider à automatiser vos processus, c'est pourquoi nous mettons gratuitement notre API à la disposition de tous nos clients.

SDK puissants

SDK puissants

Envoyez des courriers via la Poste et DHL en un temps record grâce à nos SDK pour PHP, Python et .Net.

Formes de paiement pris en charge

Formes de paiement pris en charge

Impression automatique sous forme de QR-facture suisse ou avec des bulletins de versement SEPA en Allemagne et en Autriche.

Par des développeurs pour les développeurs

Par des développeurs pour les développeurs

Toutes les fonctionnalités de Pingen sont également disponibles via notre lettre API et expliquées en détail dans notre documentation.

La Poste Suisse Track & Trace

Track & Trace

Pingen fournit des informations détaillées sur le statut et des mises à jour de la progression en temps réel pour chaque courrier soumis via l'API.

Génération de revenus

Génération de revenus

En revendant des courriers postaux, les intégrateurs peuvent bénéficier d’une nouvelle opportunité de générer des revenus.

Une API rapide, puissante et conviviale

La lettre API de Pingen est conçue pour être flexible et simple, afin de favoriser une intégration rapide. Outre une documentation conviviale, nous fournissons également des exemples de code pour vous aider à démarrer sans plus tarder.

import pingen2sdk

pingen2sdk.client_id = "YOUR_OAUTH2_CLIENT_ID"
pingen2sdk.client_secret = "YOUR_OAUTH2_CLIENT_SECRET"

resp = pingen2sdk.OAuth.get_token( 
    grant_type = "client_credentials",
    scope = "letter batch webhook organisation_read",
)

try:
    print(
         pingen2sdk.FileUpload(pingen2sdk.APIRequestor(resp["access_token"]))
         .request_file_upload()
         .data
    )
except pingen2sdk.error.PingenError as e:
    print(e.status_code)
    print(e.json_body)

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.v2.pingen.com/file-upload'
url_letters = 'https://api.v2.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)
    })

$accessToken = 'INSERT_YOUR_ACCESS_TOKEN_HERE';
$organisationUuid = 'YOUR_ORGANISATION_UUID';
$filePath = 'path_to_your_file.pdf';
$fileName = 'your_filename.pdf';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.pingen.com/file-upload");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer $accessToken"]);

$response = curl_exec($ch);
curl_close($ch);

$responseData = json_decode($response, true);
$fileUploadUrl = $responseData['data']['attributes']['url'];
$fileUrlSignature = $responseData['data']['attributes']['url_signature'];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $fileUploadUrl);
curl_setopt($ch, CURLOPT_PUT, 1);
curl_setopt($ch, CURLOPT_INFILE, fopen($filePath, 'r'));
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($filePath));

$response = curl_exec($ch);
curl_close($ch);

$letterData = [
   'data' => [
       'type' => 'letters',
       'attributes' => [
           'file_original_name' => $fileName,
           'file_url' => $fileUploadUrl,
           'file_url_signature' => $fileUrlSignature,
           'address_position' => 'left',
           'auto_send' => false,
           'delivery_product' => 'fast',
           'print_mode' => 'simplex',
           'print_spectrum' => 'color'
       ]
   ]
];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.pingen.com/organisations/$organisationUuid/letters");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($letterData));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
   "Content-Type: application/vnd.api+json",
   "Authorization: Bearer $accessToken"
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;

curl \
       -X GET "https://api.v2.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.v2.pingen.com/organisations/INSERT_YOUR_ORGANISATION_UUID_HERE/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

Les points forts de l'API

API pour l'envoi de courriers numériques via la Poste Suisse et DHL

L'envoi de courriers via la lettre API de Pingen est aussi simple que l'envoi d'un e-mail standard. Notre API est numérique et entièrement évolutive.

Documentation API
En savoir plus
Impression et expédition locales
Validation automatique des documents

Pingen vérifie automatiquement que tous les PDF soumis sont conformes aux exigences en matière d'envoi de courrier. Si certaines exigences ne sont pas respectées, Pingen propose des options de correction directement via l'API.

Envoyez des courriers automatiquement
Traitement numérique des retours

Si la Poste Suisse ne parvient pas à distribuer des courriers, ceux-ci sont automatiquement interceptés à l'aide du DMC Pingen, détruits de manière contrôlée et signalés via des webhooks. De cette façon, les courriers non distribuables sont toujours traités numériquement.

Suivi des envois détaillé
Environnement « bac à sable » (sandbox)/test

Pingen propose un environnement de test à tous les développeurs afin que les intégrations puissent être testées facilement et aisément dans un bac à sable (sandbox). Toutes les fonctionnalités de Pingen sont disponibles dans le bac à sable, mais aucun courrier ne sera réellement envoyé.

Traitement numérique des retours
Documentation API

Utilisez le point d'arrivée de la calculatrice de prix pour vérifier à l'avance le prix de votre courrier postal. Ainsi, vous pouvez toujours déterminer les coûts complets avant d'envoyer un courrier.

Recevoir des événements de lettres en temps réel avec Webhooks

Pingen propose des notifications automatiques via des webhooks pour les événements importants. Par exemple, tu es informé en temps réel dès qu'une lettre a été envoyée, qu'elle présente un problème ou qu'elle n'est pas distribuable. Cela te permet d'effectuer automatiquement d'autres actions sans devoir "polluer" activement notre API à la recherche de changements.

Dans la gestion des webhooks de Pingen, tu peux voir des informations détaillées pour chaque demande, comme par exemple la charge utile et la réponse de ton système. Cela permet d'identifier rapidement les problèmes et d'y remédier avec un minimum d'efforts.

Statistiques sur les frais d'expédition
Pingen Bibliothèque PHP

Intégration facile avec la bibliothèque PHP Pingen

La bibliothèque PHP Pingen offre tout ce dont vous avez besoin pour intégrer notre API et envoyer des courriers via la Poste et DHL. Pingen a déjà effectué le travail pour les développeurs PHP. Prochainement, nous libèrerons également nos SDK pour tous les autres développeurs. 🚀

Plus qu'une simple API pour agences de courriers

Notre lettre API offre bien plus que l'API classique utilisée par les agences de courriers ou les fournisseurs de services postaux. Avec Pingen, vous avez accès à un service international en pleine expansion qui vous permet d'envoyer des courriers dans le monde entier au meilleur prix.

Service de courrier local via la Poste Suisse

Fournisseur de services de courrier local

À l’heure actuelle déjà, des courriers sont imprimés et envoyés localement en Allemagne, en Autriche, en Suisse, en Inde et aux Pays-Bas.

Livraison par courrier international

Livraison par courrier international

Grâce à notre partenariat avec la Poste et DHL, Pingen garantit une livraison rapide et fiable vers tous les autres pays par courrier aérien.

Évolutif et fiable API

Évolutif et fiable

Grâce à notre infrastructure d'impression de courriers en cloud et multisite, Pingen est facilement modulable et fiable.

Commencez à développer dès maintenant

Penchez-vous sur la documentation de notre lettre API et découvrez comme il est facile d'intégrer le courrier postal via la Poste et DHL dans votre solution logicielle !