API Partenaire Livraison Pigee
Intégrez l'expédition mondiale multi-transporteurs en temps réel, les douanes automatisées, le suivi en direct et l'encaissement des paiements directement dans vos propres systèmes, via une seule API REST. Idéal pour les agents d'expédition, les 3PL, les plateformes e-commerce et les intégrations logistiques sur mesure.
Tarifs multi-transporteurs en temps réel
DHL, FedEx, UPS, Aramex, Parcelforce et plus de 200 transporteurs locaux, en un seul appel POST. Renvoie des tarifs triés avec délai de transit et coût total à destination.
Automatisation douanière par IA
Classification automatique des codes SH à partir de votre catalogue produits. Factures commerciales, déclarations en douane et droits calculés par destination.
Encaissement Pigee Pay
Partagez un lien de paiement ou intégrez le paiement à votre site. Encaissez auprès de vos clients finaux dans plus de 135 devises et recevez vos fonds sur votre compte bancaire dans votre devise locale.
Webhooks en temps réel
Recevez shipment.created, payment.received, parcel.delivered et d'autres événements transmis instantanément vers votre point de terminaison.
Étiquettes et factures
Étiquettes PDF et factures commerciales générées automatiquement à la création de la commande. Aucun portail transporteur requis.
Frais de service personnalisés
Ajoutez votre propre marge, en pourcentage ou forfaitaire, sur les tarifs de base Pigee, par transporteur, par trajet ou globalement.
Démarrage rapide
De la création du compte à votre premier envoi en direct en moins d'une heure. Suivez ces cinq étapes :
- Créez un compte Pigee gratuit sur account.pigeepost.com et sélectionnez Partenaire Livraison comme type de compte.
- Accédez à Tableau de bord → Développeur → Clés API et générez une clé live et une clé de test.
- Choisissez votre mode de paiement : Pigee Pay ou Solde du compte Pigee.
- Configurez vos frais de service dans Tableau de bord → Frais.
- Importez la collection Postman pour le développement en environnement de préproduction.
Authentification
Chaque requête doit inclure votre clé API dans l'en-tête Authorization sous forme de jeton Bearer. Les clés sont propres à votre compte partenaire et intègrent votre configuration de frais et votre mode de paiement.
Authorization: Bearer pgk_live_YOUR_API_KEY_HERE
Types de clés
| Préfixe | Environnement | Description |
|---|---|---|
| pgk_live_… | EN DIRECT | Expéditions réelles et débits réels. |
| pgk_test_… | TEST | Bac à sable uniquement. Aucun débit, réponses de transporteurs simulées, sans risque pour vos environnements CI/CD. |
Environnements et URL de base
Le bac à sable est une réplique fidèle et complète de la production. Changez d'environnement en modifiant le préfixe de votre clé, ou utilisez l'URL explicite du bac à sable pour plus de clarté.
v1. La version fait partie du chemin : /api/v1/….SDK et bibliothèques
Les SDK officiels encapsulent l'API REST avec des modèles typés, des tentatives automatiques et des outils pour le bac à sable.
Valider la clé API
Appelez ce point de terminaison pour confirmer que votre clé API est active et correctement configurée avant la mise en production.
POST /api/v1/store/valid Authorization: Bearer pgk_live_… Content-Type: application/json { "store_type": 2, "api_key": "pgk_live_YOUR_KEY" }
{
"valid": true,
"account": {
"id": "acc_7H4K",
"type": "shipping_partner",
"payment_mode": "pigee_pay",
"service_fee_pct": 8.5,
"balance_gbp": 240.00
}
}
Obtenir les tarifs d'expédition
Récupérez les tarifs transporteurs en temps réel pour une expédition. Renvoie tous les services disponibles triés par prix, avec le délai de transit, la prise en charge de la valeur assurée et le coût rendu.
carrier_request_id à utiliser lors de la création de la commande.{
"shop_url": "https://your-store.com",
"currency": "GBP",
"parcel": {
"type": "Box",
"boxsize": 4
},
"weight": { "value": 4, "units": "kg" },
"dimension": {
"length": 40,
"width": 30,
"height": 20,
"units": "cms"
},
"address": {
"pickup": {
"address_line1": "10 High Street",
"town": "London",
"post_code": "SW1A 1AA",
"country": "United Kingdom"
},
"destination": {
"address_line1": "123 Ocean Drive",
"town": "Miami",
"post_code": "33101",
"country": "United States"
}
}
}
{
"rates": [
{
"carrier_request_id": "cr_abc123",
"carrier_id": "dhl",
"pigee_carrier_id": "DHL_EXPRESS_WORLDWIDE",
"method_title": "DHL Express Worldwide",
"price": 125.50,
"currency": "GBP",
"transit_days": 2,
"insurance_available": true,
"customs_included": true
}
],
"currency": "GBP",
"request_id": "req_7H4K2026"
}
Paramètres de la requête
| Champ | Typographie | Obligatoire | Description |
|---|---|---|---|
| shop_url | chaîne | obligatoire | L'URL de votre boutique ou plateforme. |
| currency | chaîne | obligatoire | Code devise ISO 4217. |
| parcel.type | chaîne | obligatoire | Box | Bag | Tube | Pallet |
| parcel.boxsize | entier | obligatoire | Palier de taille de 1 à 6. |
| weight.value | nombre | obligatoire | Poids réel du colis. |
| weight.units | chaîne | obligatoire | kg | lbs |
| dimension | objet | facultatif | Longueur, largeur, hauteur et unités. |
| address.pickup | objet | obligatoire | Adresse de l'expéditeur. |
| address.destination | objet | obligatoire | Adresse du destinataire. |
Créer une commande
Créez une commande Pigee en utilisant un carrier_request_id provenant du point de terminaison des tarifs. Pigee génère l'étiquette, la facture commerciale et, en cas d'utilisation de Pigee Pay, un lien de paiement hébergé.
{
"order_from": "api",
"shop_url": "https://your-store.com",
"order_id": "ORDER-10001",
"currency": "GBP",
"items": [
{
"name": "Vintage leather jacket",
"quantity": 1,
"value": 600.00,
"currency": "GBP",
"hs_code": "4203100090"
}
],
"shippingData": {
"method_title": "DHL Express Worldwide",
"cost": 125.50,
"currency": "GBP",
"meta_data": {
"carrier_request_id": "cr_abc123",
"carrier_id": "dhl",
"pigee_carrier_id": "DHL_EXPRESS_WORLDWIDE"
}
}
}
{
"order_id": "po_78910",
"pigee_order_id": "PGE-7H4K-2026-0042",
"status": "pending_payment",
"payment_url": "https://pay.pigee.com/c/abc123",
"label_url": null,
"tracking_number": null
}
Traiter la commande
Envoyez les détails finaux de traitement une fois le paiement confirmé. Pigee génère l'étiquette d'expédition, réserve le transporteur et renvoie un numéro de suivi.
{
"order_id": "po_78910",
"status": "processing",
"shop_id": "https://your-store.com",
"currency": "GBP",
"total": 725.50,
"shipping_total": 125.50
}
{
"order_id": "po_78910",
"pigee_order_id": "PGE-7H4K-2026-0042",
"status": "booked",
"label_url": "https://labels.pigeepost.com/PGE-7H4K-2026-0042.pdf",
"tracking_number": "1234567890",
"carrier": "DHL",
"estimated_delivery": "2026-05-08"
}
Suivi
Récupérez les événements de suivi en temps réel pour toute expédition créée via l'API.
{
"pigee_order_id": "PGE-7H4K-2026-0042",
"tracking_number": "1234567890",
"carrier": "DHL",
"status": "in_transit",
"estimated_delivery": "2026-05-08",
"events": [
{
"timestamp": "2026-05-06T08:14:00Z",
"status": "in_transit",
"location": "DHL Hub, Leipzig",
"description": "Shipment in transit"
}
]
}
Modes de paiement
Pigee prend en charge deux modes de paiement. Le mode actif est défini dans votre tableau de bord partenaire et s'applique à toutes les commandes.
| Mode | Comment ça marche | Idéal pour |
|---|---|---|
| Pigee Pay | Pigee héberge une page de paiement. La création de commande renvoie un payment_url. | Intégrations e-commerce et marketplace. |
| Solde du compte | Le coût de l'expédition est déduit de votre solde Pigee prépayé. | Agents d'expédition, 3PL et partenaires à fort volume. |
Frais de service
En tant que partenaire d'expédition, vous pouvez ajouter vos propres frais en plus des tarifs transporteurs de base de Pigee. Les frais sont configurés dans votre tableau de bord et appliqués automatiquement avant que les tarifs ne soient renvoyés.
- Frais en pourcentage : Appliqués sous forme de pourcentage du coût transporteur de base.
- Frais fixes : Un montant forfaitaire ajouté par expédition.
- Dérogations par trajet : Remplacez les frais globaux pour des paires origine/destination spécifiques.
Règlements et change
Pigee Pay collecte les paiements des clients finaux en plus de 135 devises et les règle sur votre compte bancaire dans votre devise locale.
- Le cycle de règlement est généralement de J+2 jours ouvrés après la confirmation de livraison de l'expédition.
- Retirez des fonds de votre solde Pigee depuis le tableau de bord.
- Des journaux de transactions détaillés sont disponibles sous Finances → Règlements.
- Les factures des transactions réglées sont générées automatiquement et disponibles au format PDF.
Webhooks
Pigee envoie des événements en temps réel vers votre point de terminaison HTTPS au format JSON POST requêtes. Configurez l'URL de votre webhook dans Tableau de bord → Développeur → Webhooks.
{
"event": "parcel.delivered",
"created_at": "2026-05-08T14:22:07Z",
"api_version": "v1",
"data": {
"pigee_order_id": "PGE-7H4K-2026-0042",
"order_id": "ORDER-10001",
"carrier": "DHL",
"tracking_number": "1234567890",
"delivered_at": "2026-05-08T14:18:00Z"
}
}
Référence des événements Webhook
Signatures des webhooks
Chaque requête webhook inclut un X-Pigee-Signature en-tête, une empreinte HMAC-SHA256 du corps brut de la requête. Vérifiez toujours cette valeur avant tout traitement.
// Node.js const crypto = require('crypto'); function verifyPigeeWebhook(rawBody, signature, secret) { const expected = crypto .createHmac('sha256', secret) .update(rawBody) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(expected, 'hex'), Buffer.from(signature, 'hex') ); }
Erreurs
Toutes les erreurs renvoient un JSON avec un objet error contenant un code et un message.
{
"error": {
"code": "INSUFFICIENT_BALANCE",
"message": "Your Pigee partner balance is not sufficient to create this shipment.",
"request_id": "req_7H4K2026"
}
}
| HTTP | Code d'erreur | Signification et résolution |
|---|---|---|
| 400 | INVALID_REQUEST | Champ manquant ou mal formé. |
| 401 | INVALID_API_KEY | Clé manquante, mal formée ou révoquée. |
| 402 | INSUFFICIENT_BALANCE | Solde du compte insuffisant. |
| 403 | FORBIDDEN | Le type de compte n'a pas accès à ce point de terminaison. |
| 404 | ORDER_NOT_FOUND | Aucune commande trouvée pour cet identifiant. |
| 409 | ORDER_ALREADY_FULFILLED | Commande déjà traitée. |
| 422 | INVALID_ADDRESS | L'adresse n'a pas pu être validée. |
| 422 | CARRIER_UNAVAILABLE | Aucun service transporteur disponible pour cet itinéraire. |
| 422 | RATE_EXPIRED | carrier_request_id expiré. Récupérez à nouveau les tarifs. |
| 429 | RATE_LIMITED | Trop de requêtes. Patientez avant de réessayer. |
| 500 | INTERNAL_ERROR | Erreur côté Pigee. Réessayez avec un délai progressif. |
| 503 | CARRIER_TIMEOUT | Délai d'attente dépassé pour l'API du transporteur. |
Limites de débit
Les limites de débit s'appliquent par clé API et varient selon votre palier de compte.
| Palier de compte | Requêtes / minute | Requêtes / jour |
|---|---|---|
| Test gratuit | 60 | 1,000 |
| Partenaire d'expédition en production | 300 | 50,000 |
| Entreprise | Personnalisé | Personnalisé |
Lorsqu'une limite de débit est atteinte, l'API renvoie HTTP 429 avec un en-tête Retry-After .
Types de données et conventions
- Dates et heures - ISO 8601 UTC, par ex.
2026-05-06T14:22:07Z - Devises - codes à trois lettres ISO 4217, par ex.
GBP,USD,NGN - Valeurs monétaires -
numberavec deux décimales, toujours associées à uncurrencychamp - Noms de pays - noms complets en anglais, par ex.
"United Kingdom","United States" - Numéros de téléphone - format E.164 recommandé, par ex.
+447700900123 - Graisses -
kgoulbsspécifié par requête - Identifiants - les identifiants générés par Pigee utilisent un format à préfixe, par ex.
po_78910,cr_abc123
Référence des identifiants transporteurs
Utilisation pigee_carrier_id valeurs issues de la réponse des tarifs lors de la création des commandes.
| carrier_id | Exemple pigee_carrier_id | Région |
|---|---|---|
| dhl | DHL_EXPRESS_WORLDWIDE, DHL_EXPRESS_12 | Mondial |
| fedex | FEDEX_INTERNATIONAL_PRIORITY, FEDEX_INTERNATIONAL_ECONOMY | Mondial |
| ups | UPS_WORLDWIDE_EXPRESS, UPS_WORLDWIDE_EXPEDITED | Mondial |
| aramex | ARAMEX_EXPRESS, ARAMEX_ECONOMY | MENA, Afrique, Asie |
| parcelforce | PARCELFORCE_EXPRESS24, PARCELFORCE_GLOBAL_EXPRESS | Royaume-Uni et international |
| teleport | TELEPORT_STANDARD | Asie du Sud-Est |
| local_* | local_5b3, local_8ac | Régional, renvoyé dynamiquement |
Journal des modifications
v1.3 - mai 2026
- Ajout
insurance_availableetcustoms_includedd'indicateurs à la réponse des tarifs. - La vérification de la signature du webhook utilise désormais HMAC-SHA256.
- Nouveau code d'erreur
RATE_EXPIRED. - Point de terminaison de suivi ajouté :
GET /api/v1/tracking/{pigee_order_id}.
v1.2 - février 2026
- Ajout de la personnalisation des frais de service par ligne dans le tableau de bord.
- Les liens de paiement Pigee Pay incluent désormais un
expires_atchamp. - Nouveaux événements webhook ajoutés pour les douanes et les règlements.
v1.1 - octobre 2025
- Publication initiale de la collection Postman.
- Lancement de l'environnement sandbox.
- Sortie du mode de paiement Solde du compte.
v1.0 - juin 2025
- Première version publique : Validation, Obtention des tarifs, Création de commande, Exécution de commande.