Patterns
API REST vs gRPC pour la facturation électronique
Pourquoi REST domine l'e-invoicing et gRPC reste marginal
Les standards de facturation électronique européens (Factur-X, UBL, Peppol BIS 3.0) reposent sur des échanges XML/JSON via HTTP REST. Aucun standard PDP ou Peppol n'impose ou même ne supporte gRPC : la sérialisation Protobuf rend le payload illisible par les outils fiscaux d'audit (Wireshark, curl, postman) et casse l'auditabilité ISCA. gRPC reste pertinent pour les communications internes haute fréquence (microservices, streaming bidirectionnel), mais les API publiques de PDP, du PPF et de Scell.io sont strictement REST + JSON. Choisir gRPC pour exposer une API e-invoicing externe est un anti-pattern : incompatibilité Peppol, audit fiscal complexe, pas de support des Access Points.
À retenir
- Peppol BIS 3.0 et PDP imposent du XML over HTTP, pas de gRPC
- Auditabilité fiscale : payloads JSON/XML lisibles, Protobuf opaque
- Scell.io API : REST JSON sur https://api.scell.io/api/v1
- gRPC pertinent pour services internes (worker → DB → cache)
- OpenAPI 3.1 reste le standard de doc, gRPC n'a pas d'équivalent universel
Exemple de code
# OpenAPI 3.1 — Scell.io REST endpoint
paths:
/api/v1/invoices:
post:
summary: Create invoice (Factur-X / UBL / CII)
security:
- apiKey: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceCreate'
responses:
'201':
description: Created
content:
application/json:
schema: { $ref: '#/components/schemas/Invoice' }