Skip to content

Synchronisation avec les PDP ​

Cette documentation decrit comment Scell.io synchronise les factures entrantes avec les Plateformes de Dematerialisation Partenaires (PDP).

Table des matieres ​

  1. Vue d'ensemble
  2. Synchronisation SuperPDP
  3. Evenements synchronises
  4. Configuration
  5. Gestion des erreurs

Vue d'ensemble ​

La reforme de facturation electronique francaise impose l'utilisation de Plateformes de Dematerialisation Partenaires (PDP) pour l'echange de factures entre entreprises assujetties a la TVA.

Scell.io s'integre avec ces plateformes pour :

  • Recevoir automatiquement les factures entrantes
  • Synchroniser les statuts (acceptation, rejet, paiement)
  • Transmettre les factures sortantes

Synchronisation SuperPDP ​

Mecanisme de polling ​

Pour les plateformes qui n'exposent pas de webhooks natifs (comme SuperPDP), Scell.io utilise un mecanisme de polling intelligent :

ParametreValeur
FrequenceToutes les 5 minutes
EndpointGET /v1.beta/invoice_events
Directionin (factures entrantes)
PaginationPar curseur (starting_after_id)

Processus de synchronisation ​

+---------------+     1. Poll events      +------------+
|   Scell.io    | ----------------------> |  SuperPDP  |
|   Scheduler   |                         |    API     |
+---------------+ <---------------------- +------------+
        |              2. New events
        |
        v
+---------------+
|   Process &   |
|   Store       |
+---------------+
        |
        v
+---------------+     3. Webhook          +------------+
|   Webhook     | ----------------------> |   Client   |
|   Dispatcher  |                         |   Server   |
+---------------+                         +------------+

Persistance du curseur ​

Pour eviter les doublons et garantir la fiabilite :

  • Le curseur (last_event_id) est stocke par tenant
  • En cas d'erreur, le curseur n'est pas mis a jour
  • La synchronisation reprend au dernier point connu

Evenements synchronises ​

Mapping des evenements ​

Evenement SuperPDPWebhook Scell.ioDescription
api:receivedinvoice.incoming.receivedNouvelle facture recue
api:validatedinvoice.incoming.validatedFacture validee techniquement
api:acceptedinvoice.incoming.acceptedFacture acceptee par le destinataire
api:rejectedinvoice.incoming.rejectedFacture rejetee

Evenements geres localement ​

Certains evenements sont geres uniquement cote Scell.io :

Webhook Scell.ioDescription
invoice.incoming.disputedContestation ouverte par le client
invoice.incoming.paidFacture marquee comme payee

Configuration ​

Activation de la synchronisation ​

Pour activer la synchronisation automatique avec SuperPDP, configurez les credentials dans les parametres du tenant :

bash
curl -X PATCH "https://api.scell.io/api/v1/companies/{id}/settings" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "pdp_provider": "superpdp",
    "pdp_credentials": {
      "client_id": "your_client_id",
      "client_secret": "your_client_secret",
      "environment": "production"
    },
    "sync_enabled": true
  }'

Variables d'environnement (backend) ​

env
# SuperPDP Configuration
SUPERPDP_API_URL=https://api.superpdp.fr
SUPERPDP_CLIENT_ID=your_client_id
SUPERPDP_CLIENT_SECRET=your_client_secret

# Sync Configuration
INCOMING_INVOICE_SYNC_ENABLED=true
INCOMING_INVOICE_SYNC_INTERVAL=5

Parametres de synchronisation ​

ParametreDescriptionDefaut
sync_enabledActive/desactive la synchronisationtrue
sync_intervalIntervalle en minutes5
auto_acceptAcceptation automatique des facturesfalse
notification_emailEmail pour alertesnull

Gestion des erreurs ​

Retry automatique ​

En cas d'echec de synchronisation :

TentativeDelai
1ereImmediate
2eme+1 minute
3eme+5 minutes
4eme+15 minutes
5eme+1 heure

Apres 5 echecs consecutifs, une alerte est envoyee et la synchronisation est mise en pause.

Codes d'erreur ​

CodeDescriptionAction
sync_auth_failedAuthentification SuperPDP echoueeVerifier les credentials
sync_rate_limitedRate limit atteintAttendre le reset
sync_parse_errorErreur de parsingContacter le support
sync_duplicateFacture deja existanteIgnoree automatiquement

Logs et monitoring ​

Consultez les logs de synchronisation via l'API :

bash
curl "https://api.scell.io/api/v1/sync/logs?from=2026-01-01&limit=100" \
  -H "Authorization: Bearer {token}"

Reponse :

json
{
  "data": [
    {
      "id": "log_abc123",
      "timestamp": "2026-01-24T14:30:00+00:00",
      "event": "sync_completed",
      "provider": "superpdp",
      "invoices_synced": 5,
      "duration_ms": 1234
    }
  ],
  "meta": {
    "total": 100,
    "last_sync": "2026-01-24T14:30:00+00:00",
    "next_sync": "2026-01-24T14:35:00+00:00"
  }
}

Declenchement manuel ​

Pour forcer une synchronisation immediate :

bash
curl -X POST "https://api.scell.io/api/v1/sync/trigger" \
  -H "Authorization: Bearer {token}"

Reponse :

json
{
  "message": "Synchronisation declenchee",
  "job_id": "job_xyz789",
  "estimated_completion": "2026-01-24T14:31:00+00:00"
}

Support ​

Documentation Scell.io