Communauté gestion

Forum Discussion

Avatar de alexis-ricard
alexis-ricard
Icône pour le rang Première notePremière note
il y a 4 jours

API Pennylane : factures fournisseurs via PA et statuts e-invoicing depuis ERP tiers

Bonjour à tous,

Nous utilisons Pennylane comme Plateforme Agréée (PA) et nous avons intégré l'API côté ventes : nos factures clients sont générées dans notre ERP (LOGIBASE) et exportées vers Pennylane via API.

Dans le cadre de la réforme e-invoicing (réception obligatoire au 01/09/2026), nos factures fournisseurs vont désormais arriver directement dans Pennylane. Notre besoin est de les remonter automatiquement dans LOGIBASE pour traitement.

Nous avons deux questions précises :

  1. L'API Pennylane permet-elle aujourd'hui d'exporter/récupérer des factures fournisseurs reçues via la PA vers un outil tiers ? Si oui, quels sont les endpoints concernés (GET /supplier_invoices ou équivalent) ?
  2. Dans ce même contexte e-invoicing, est-il possible via l'API de mettre à jour les statuts de cycle de vie d'une facture fournisseur (notamment : Refusée, Encaissée, et les statuts optionnels type En litige ou Suspendue) directement depuis un système tiers, sans passer manuellement par l'interface Pennylane ?

Nous avons eu un retour de notre cabinet indiquant que l'API ne permettrait pas cela à date, mais nous souhaitons vérifier auprès d'utilisateurs qui auraient eu à traiter ce cas.

Merci d'avance pour vos retours d'expérience.

2 Réponses

  • Angélique_​  Merci de votre retour, je vais essayer de mettre ceci en place dans les prochains jours et reviendrais vers vous si nécessaire.

    Bonne journée ! 

  • Bonjour alexis-ricard​ 

    1) Récupérer / exporter des factures fournisseurs reçues dans Pennylane (dont e-invoicing via PA)

    Oui, l’API permet de lister et récupérer le détail des factures fournisseurs.

    • Lister les factures fournisseurs : GET /api/external/v2/supplier_invoices [1]
    • Récupérer une facture fournisseur : GET /api/external/v2/supplier_invoices/:id [2]



    Dans les réponses, vous retrouvez notamment un champ e_invoicing (présent uniquement pour les factures “reçues via e-invoicing”), avec le statut de cycle de vie e-invoicing : waiting_for_validation, approved, rejected, disputed, refused, collected, partially_collected Vous avez aussi une URL de PDF (ex. public_file_url, avec expiration) pour redescendre la pièce si besoin 

    Côté droits, l’index des docs précise que la liste nécessite les scopes supplier_invoices:all ou supplier_invoices:readonly 

    2) Mettre à jour des statuts de cycle de vie (Refusée / Litige / etc.) via API

    Il faut distinguer (a) le cycle de vie e-invoicing (PA) et (b) le statut de paiement.

    (a) Cycle de vie e-invoicing (litige / refus…)

    Il existe un endpoint dédié pour piloter certaines transitions du cycle e-invoicing :

    • PUT /api/external/v2/supplier_invoices/:supplier_invoice_id/e_invoice_status 


    Actions supportées (d’après le changelog) :

    • Dispute → status = disputed (reason obligatoire)
    • Refuse → status = refused (reason obligatoire)
    • Undispute → status = approved (reason non obligatoire) [4]


    Limite importante : cet endpoint est annoncé comme disponible uniquement pour les factures dans le pilote e-invoicing (vendeur + acheteur enrôlés) et “à ce stade, seules les factures créées via l’UI Pennylane (éditeur ou mobile) sont éligibles au flux e-invoicing” 

    Mettre à jour les statuts e‑invoicing d’une facture fournisseur via API (cycle de vie RFE)

    Pennylane a un endpoint dédié pour piloter certaines transitions du cycle e‑invoicing côté factures fournisseurs :

    • Endpoint : PUT /api/external/v2/supplier_invoices/:supplier_invoice_id/e_invoice_status
    • Scope OAuth : supplier_invoices:all [1]
    • Transitions supportées (et uniquement celles‑ci) : disputed (litige), refused (refus), approved (sortie de litige / approbation). Le champ reason est requis pour disputed et refused. 

     

    Ce que ça couvre par rapport à votre liste

    • “En litige” →via status=disputed [1]
    • “Refusée” →via status=refused [1]
    • “Suspendue” →pas exposé comme action supportée par cet endpoint [1]
    • “Encaissée” → l’objet e_invoicing.status peut prendre des valeurs dont collected / partially_collected côté API, mais ce n’est pas une transition pilotable via l’endpoint (qui ne documente que dispute/refuse/approved). [2] [1]

     

    2) Mettre à jour le statut de paiement d’une facture fournisseur via API

    Indépendamment du cycle e‑invoicing, il existe un endpoint pour forcer le statut de paiement :

    • Endpoint : PUT /api/external/v2/supplier_invoices/:supplier_invoice_id/payment_status
    • Valeurs acceptées documentées : paid ou to_be_paid [3]


    Donc si votre besoin derrière “encaissée” est en réalité “considérée payée côté achats”, c’est plutôt ce endpoint qu’il faut utiliser.