Aller au contenu

La souscription en ligne ouvre bientôt En savoir plus

APIPackCover

Coter, vérifier l'éligibilité, souscrire et suivre un sinistre depuis votre propre système. REST, JSON, une clé, rien d'autre à installer.

Ce que vous pouvez faire

Coter

Obtenez la prime d'un envoi à partir de sa valeur déclarée, sans créer de couverture.

Vérifier l'éligibilité

Le même appel vous dit si le contenu et le transporteur choisis sont assurables. Le contrôle se fait avant le paiement, pas après.

Souscrire

Créez la couverture, récupérez l'attestation et la facture.

Déclarer et suivre

Ouvrez un dossier de sinistre, déposez les pièces, suivez son avancement jusqu'au versement.

Démarrer en trois étapes

  1. 1

    Récupérez vos clés

    Une clé de test et une clé de production.

  2. 2

    Cotez un envoi

    Un appel, vous obtenez la prime, la franchise et le verdict d'éligibilité.

  3. 3

    Souscrivez

    Un second appel crée la couverture et renvoie l'attestation.

Appel de cotation cURL
curl https://api.packcover.com/v1/quotes \
  --request POST \
  --header "Authorization: Bearer pk_test_VOTRE_CLE" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: quote-demo-001" \
  --data '{
    "transporteur": "UPS",
    "valeur_declaree": 500.00,
    "devise": "EUR",
    "contenu": "Appareil photo",
    "date_expedition": "2026-10-05",
    "pays_destination": "FR",
    "mode_de_livraison": "domicile"
  }'

Authentification

Toutes les requêtes passent par HTTPS, en TLS 1.2 au minimum. Les appels en clair sont refusés.

Authorization

Utilisez le schéma Bearer avec votre clé secrète dans l'en-tête Authorization.

Clés de test et de production

Le préfixe pk_test_ identifie l'environnement de test et le préfixe pk_live_ la production. Une clé de test ne crée jamais de couverture réelle et ne déclenche aucune facturation.

Idempotency-Key

Ajoutez cet en-tête à toutes les requêtes POST pour qu'un renvoi après un timeout ne crée pas deux couvertures.

Référence

Adresse de base: https://api.packcover.com/v1

MéthodeCheminDescription
POST/quotesCotation et vérification d'éligibilité
POST/policiesCréation d'une couverture
GET/policies/{id}Consultation d'une couverture
POST/policies/{id}/cancelAnnulation avant prise en charge
POST/claimsOuverture d'un sinistre
POST/claims/{id}/documentsDépôt d'une pièce justificative
GET/claims/{id}Suivi d'un sinistre

POST /quotes

Requête
{
  "transporteur": "UPS",
  "valeur_declaree": 500.00,
  "devise": "EUR",
  "contenu": "Appareil photo",
  "date_expedition": "2026-10-05",
  "pays_destination": "FR",
  "mode_de_livraison": "domicile"
}
Réponse
{
  "id_cotation": "quote_01J8N7K4D6",
  "eligibilite": {
    "verdict": "couvert",
    "motif": null
  },
  "prime": 4.50,
  "franchise": 50.00,
  "devise": "EUR",
  "plafond": 100000.00
}

POST /policies

Requête
{
  "id_cotation": "quote_01J8N7K4D6",
  "expediteur": {
    "nom": "Camille Martin",
    "email": "camille@example.com"
  },
  "destinataire": {
    "nom": "Alex Bernard",
    "pays": "FR"
  },
  "reference_transporteur": "1Z999AA10123456784"
}
Réponse
{
  "id_police": "policy_01J8N8Q2M4",
  "statut": "emise",
  "url_attestation": "https://api.packcover.com/v1/policies/policy_01J8N8Q2M4/certificate",
  "url_facture": "https://api.packcover.com/v1/policies/policy_01J8N8Q2M4/invoice",
  "date_debut_couverture": "2026-10-05T09:30:00Z"
}

Webhooks

Vous déclarez une adresse de réception. Chaque notification est signée. L'en-tête PackCover-Signature contient une signature HMAC SHA-256 et un horodatage, à vérifier avant traitement.

En cas d'échec, la notification est réexpédiée pendant vingt-quatre heures, à intervalle croissant.

ÉvénementDescription
policy.issuedUne couverture est créée et ses documents sont disponibles.
policy.cancelledUne couverture est annulée avant la prise en charge.
claim.openedUn dossier de sinistre est ouvert.
claim.document_requiredUne pièce justificative supplémentaire est demandée.
claim.submittedLe dossier complet est transmis pour traitement.
claim.settledL'indemnisation est versée.
Notification claim.settled
{
  "event": "claim.settled",
  "created_at": "2026-10-12T14:22:31Z",
  "data": {
    "claim_id": "claim_01J8P4M6R2",
    "policy_id": "policy_01J8N8Q2M4",
    "status": "settled",
    "currency": "EUR",
    "amount": 450.00
  }
}

Erreurs

Les erreurs renvoient un code HTTP standard et un corps JSON avec un objet error contenant code, message et, quand c'est pertinent, field.

CodeHTTPDescription
invalid_request400La requête est incomplète ou un champ est invalide.
unauthorized401La clé est absente, invalide ou ne correspond pas à l'environnement appelé.
not_eligible422L'envoi n'est pas assurable. Le motif renvoyé est le même que celui affiché dans notre parcours en ligne, par exemple un contenu refusé au transport par le transporteur choisi.
value_above_limit422La valeur déclarée dépasse le plafond de couverture.
shipment_already_dispatched422Le colis a déjà été remis au transporteur.
rate_limited429La limite de requêtes de la clé est dépassée.
server_error500Une erreur interne empêche le traitement de la requête.

Environnement de test et limites

01

Les clés pk_test_ donnent accès au même jeu de points d'entrée. Les règles d'éligibilité et la grille tarifaire y sont identiques à la production. Aucune couverture réelle n'est émise, aucune facture n'est générée.

02

La limite est de 600 requêtes par minute et par clé. Au-delà, le code rate_limited est renvoyé avec un en-tête indiquant le délai avant nouvelle tentative.

03

Les montants sont exprimés en unités entières de la devise, avec deux décimales, et la devise est toujours indiquée explicitement.

Pas de développeur sous la main ?

Ces modes de connexion ne demandent aucun développement.

  • Déclarer depuis l'espace client
  • Importer un fichier d'expéditions
  • Coller un webhook dans les réglages de la boutique
Voir les intégrations

Obtenir mes clés d'API

Dites-nous quel outil vous souhaitez connecter. Ce formulaire prépare votre demande sans afficher de clé à l'écran.

Questions fréquentes sur l'API

Donnez à chaque envoi le bon niveau d’attention.

Commencez par une estimation simple et sans engagement.

Être prévenu de l’ouverture