agentsclimarketplace

Super pdp

Skill QrCommunication/skills/skills/super-pdp

Expert d'intégration de l'API SuperPDP pour la facturation électronique européenne (Factur-X, UBL, CII, EN16931, Peppol BIS 3.0, PPF). À utiliser pour IMPLÉMENTER, intégrer ou déboguer des appels à l'API SuperPDP directement dans un projet (n'importe quel langage) : authentification OAuth2, création/envoi de factures, conversion entre formats, validation, synchronisation des statuts via invoice_events, annuaire Peppol/PPF. Déclencher dès qu'apparaissent : SuperPDP, api.superpdp.tech, /v1.beta/, invoice_events, validation_reports, directory_entries, Factur-X, UBL, CII, EN16931, Peppol, facture électronique.From its SKILL.md

Install
npx -y skills add QrCommunication/skills --skill super-pdp

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

8.1 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it

SuperPDP — intégration de l'API de facturation électronique

API SuperPDP v1.10.0.beta · Base URL https://api.superpdp.tech/ · Doc en ligne : https://www.superpdp.tech/openapi/

Règle n°1 — la spec OpenAPI est la source de vérité

Avant toute implémentation impliquant des structures de données (schémas, enums, champs requis, descriptions BT-/BG- de EN16931), consulter la spec bundlée :

Read / Grep : references/superpdp-openapi.yaml   (4143 lignes — la vérité)

Elle contient TOUS les schémas, enums et champs. Grep ciblé plutôt que lecture intégrale, p. ex. :

grep -n "en_invoice:"              references/superpdp-openapi.yaml   # schéma facture
grep -n "invoice_type_code"        references/superpdp-openapi.yaml   # enum types
grep -n "/v1.beta/invoices"        references/superpdp-openapi.yaml   # endpoint
grep -nA30 "EnInvoice:"            references/superpdp-openapi.yaml   # définition complète

Si la spec locale est absente dans un projet, fallback : WebFetch https://api.superpdp.tech/openapi.json.

Authentification — OAuth2 (PAS de Bearer API key)

POST https://api.superpdp.tech/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET
  • Client Credentials : accès à ses propres données (équivalent API key).
  • Authorization Code : accès aux données d'un autre utilisateur (GET /oauth2/authorizePOST /oauth2/token avec authorization_code).
  • Le token (Bearer) obtenu sert ensuite sur tous les endpoints /v1.beta/.
  • Config type (.env) : SUPERPDP_API_URL=https://api.superpdp.tech, SUPERPDP_CLIENT_ID, SUPERPDP_CLIENT_SECRET.

Les 14 endpoints (TOUS sous /v1.beta/)

MéthodeEndpointRôleAuth
GET/v1.beta/companies/meInfos entreprise couranteOAuth2
GET/v1.beta/invoicesLister (filtres direction/date/expand)OAuth2
POST/v1.beta/invoicesCréer/envoyer une factureOAuth2
GET/v1.beta/invoices/{id}Détail factureOAuth2
GET/v1.beta/invoices/{id}/downloadTélécharger PDF/XML brutOAuth2
POST/v1.beta/invoices/convertConvertir entre formatsPublic
GET/v1.beta/invoices/generate_test_invoiceFacture test (sandbox)OAuth2
GET/v1.beta/invoice_eventsLister événementsOAuth2
POST/v1.beta/invoice_eventsCréer un événement/statutOAuth2
GET/v1.beta/directory_entriesLister annuaire (Peppol/PPF)OAuth2
POST/v1.beta/directory_entriesCréer entrée annuaireOAuth2
GET/v1.beta/directory_entries/{id}Détail entréeOAuth2
DELETE/v1.beta/directory_entries/{id}Supprimer entréeOAuth2
POST/v1.beta/validation_reportsValider des facturesPublic

Détail des paramètres (pagination curseur, expand[], filtres) : references/api-reference.md.

Pièges d'implémentation (non négociables)

POST /v1.beta/invoices n'accepte PAS de JSON.

  • application/xml → XML CII/UBL brut.
  • multipart/form-data → PDF Factur-X (+ invoice).
  • Envoyer du JSON sur cet endpoint = erreur.

Les montants sont des STRINGS (format décimal "1000.00"), jamais des numbers, dans tout le modèle en_invoice.

Ce qui N'EXISTE PAS (ne jamais appeler) :

Faux endpoint / conceptRéalité
/v1/documents/n'existe pas
/v1/credit-notesun avoir = une facture invoice_type_code: "381"
/v1/validatec'est POST /v1.beta/validation_reports
/v1/invoices/ (sans .beta)c'est /v1.beta/invoices/
endpoint « cancel »n'existe pas
endpoint « mark-paid »POST /v1.beta/invoice_events status_code: "fr:212"

Formats supportés

FormatCléDescription
Factur-Xfactur-xPDF/A-3 + XML CII (France)
UBLublXML OASIS UBL 2.1
CIIciiXML UN/CEFACT
EN16931en16931JSON sémantique européen

Conversion : POST /v1.beta/invoices/convert?from=cii&to=ubl. Pour générer un Factur-X : multipart pdf + invoice.

Structure d'une facture EN16931 (en_invoice)

Modèle JSON minimal (montants = strings ; voir l'OpenAPI pour tous les champs) :

{
  "invoice_number": "INV-2026-001",
  "issue_date": "2026-03-03",
  "due_date": "2026-04-03",
  "invoice_type_code": "380",
  "document_currency_code": "EUR",
  "buyer_reference": "PO-12345",
  "seller": { "name": "Ma Societe SAS", "street_name": "123 Rue de Paris",
    "city_name": "Paris", "postal_zone": "75001", "country_code": "FR",
    "company_id": "SIRET:12345678901234", "vat_id": "FR12345678901" },
  "buyer": { "name": "Client SARL", "street_name": "456 Avenue des Champs",
    "city_name": "Lyon", "postal_zone": "69001", "country_code": "FR",
    "company_id": "SIRET:98765432109876", "vat_id": "FR98765432109" },
  "lines": [{ "id": "1",
    "invoiced_quantity": { "value": "10", "unit_code": "C62" },
    "line_extension_amount": "1000.00",
    "item": { "name": "Service de conseil" },
    "price": { "price_amount": "100.00" },
    "line_vat_information": { "vat_category_code": "S", "vat_rate": "20.00" } }],
  "document_totals": {
    "sum_of_invoice_line_net_amount": "1000.00",
    "invoice_total_amount_without_vat": "1000.00",
    "invoice_total_amount_with_vat": "1200.00",
    "amount_due_for_payment": "1200.00" },
  "vat_break_down": [{ "vat_category_taxable_amount": "1000.00",
    "vat_category_tax_amount": "200.00", "vat_category_code": "S",
    "vat_category_rate": "20.00" }],
  "payment_instructions": { "payment_means_code": "30",
    "credit_transfer": [{ "payment_account_identifier": "FR7630001007941234567890185" }] }
}

Workflow d'intégration type

  1. Auth : obtenir un token (client_credentials).
  2. Créer/envoyer : POST /v1.beta/invoices (XML ou multipart PDF).
  3. Valider (optionnel, public) : POST /v1.beta/validation_reports.
  4. Convertir si besoin : POST /v1.beta/invoices/convert?from=&to=.
  5. Suivre le cycle de vie : poller GET /v1.beta/invoice_events?invoice_id=… et publier les statuts métier via POST /v1.beta/invoice_events (fr:204fr:211, paiement fr:212).
  6. Annuaire : gérer la présence Peppol/PPF via directory_entries.

Codes métier (résumé)

invoice_type_code : 380 facture · 381 avoir · 384 rectificative · 389 auto-facturation. vat_category_code : S standard · Z zéro · E exonéré · AE autoliquidation · K intracommunautaire · G export · O non assujetti. payment_means_code : 30 virement · 48 carte · 49 prélèvement · 20 chèque · 10 espèces. unit_code : C62 unité · HUR heure · DAY jour · KGM kg…

Tables complètes + status codes invoice_events : references/api-reference.md.

Références

Conformité du format produit (Factur-X PDF/A-3, Schematron EN16931) et contexte réglementaire FR (ISCA, NF525, réforme PPF) → voir le skill voisin isca-nf525-facturation-electronique.

What ships with it: 3 files

131.7 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.