# API Seqino PDP - Introduction

Bienvenue dans la documentation de l'**API Seqino PDP**. Cette API fournit une interface moderne et simplifiée aux services de facturation électronique français, vous donnant la puissance d'une Plateforme de Dématérialisation Partenaire (PDP) sans la charge de gestion associée.

Pour toute question, visitez la [Page Support](https://help.api-pdp.seqino.com/fr).

## Concepts Clés

Comprendre la relation entre les **Sponsors**, les **Clients** et les **Mandats** est essentiel pour travailler avec l'API Seqino PDP.


```mermaid
graph TB
    seqino[Seqino]
    seqino --> |propose une API grey-label à| sponsor_gl[Sponsor PDP]
    seqino --> |propose une API white-label à| sponsor_wl[Sponsor PDP]

    subgraph sponsors["𝗦𝗽𝗼𝗻𝘀𝗼𝗿𝘀"]
        sponsor_gl["Sponsor PDP (ERP, OD)"]
        sponsor_wl["Sponsor PDP (Banque, ...)"]
    end
    class sponsors grouping
    class sponsor_gl sponsor
    class sponsor_wl sponsor

    subgraph clients["𝗖𝗹𝗶𝗲𝗻𝘁𝘀"]
        C1[Client A<br/>Entreprise 1]
        C2[Client B<br/>Entreprise 2 - Service X]
        C3[Client C<br/>Entreprise 2 - Service Y]
    end
    class clients grouping
    class C1 client
    class C2 client
    class C3 client

    subgraph mandates["𝗠𝗮𝗻𝗱𝗮𝘁𝘀"]
        M1[Mandat A]
        M2[Mandat B]
        M3[Mandat C]
        M4[Mandat D]
    end
    class mandates grouping
    class M1 mandate
    class M2 mandate
    class M3 mandate
    class M4 mandate

    subgraph ppf[PPF]
        directory[Annuaire]
        einvoicing[Facturation électronique]
        ereporting[Télédéclaration]
    end

    class directory service
    class einvoincing service
    class ereporting service
    class ppf grouping

    sponsor_gl --> |gère les clients| C1
    sponsor_gl --> C2

    C1 --> |accorde la permission via| M1
    C1 --> M2
    C1 --> M3

    M1 --> |autorise l'accès à| directory

    classDef sponsor fill:transparent,stroke:green,stroke-width:2px;
    classDef client fill:transparent,stroke:purple,stroke-width:2px;
    classDef mandate fill:transparent,stroke:#E50000,stroke-width:2px;
    classDef service fill:transparent,stroke:blue,stroke-width:2px;
    classDef grouping fill:transparent,color:black,stroke-dasharray: 4 10;
```

## Entités Clés

### 🏢 **Le Sponsor**

- **Qui** : Un client de Seqino qui s'est inscrit pour l'API grey-label ou white-label. Exemples : ERP, Banques, Plateformes comptables, OD.
- **Rôle** : Fournit des services PDP à leurs clients en utilisant les API Seqino.
- **Responsabilité** : Collecter les mandats, intégrer l'API Seqino. Gérer les opérations de facturation au nom des **Clients**.
- **Processus de création** : Contrat entre le Sponsor et Seqino.


### 👥 **Les Clients**

- **Qui** : Une entreprise ou un département qui utilise le logiciel/service du **Sponsor** (externe à Seqino) pour la facturation électronique et autres services.
- **Rôle** : Créer, envoyer, recevoir, payer des factures.
- **Responsabilité** :
  - Le client devra signer un mandat ou déléguer son consentement au Sponsor PDP.
  - 🤍 White label : le client désigne le Sponsor comme sa PDP.
  - 🖤 Grey label : le client désigne Seqino comme sa PDP.
- **Identifiant** : En-tête `X-PDP-Client-Id` (requis pour la plupart des opérations). Identifiant unique.
- **Processus de création** : Via le tableau de bord Sponsor ou l'API d'Onboarding.


### 📋 **Mandat**

- **Qu'est-ce que c'est** :
  - Un Mandat permet au **Client** d'accorder au **Sponsor** le droit de gérer les opérations PDP en son nom, spécifiquement la réception de factures et la gestion de leur cycle de vie.
  - Le périmètre d'un mandat reflète le périmètre d'une entrée d'annuaire PPF (Ligne d'annuaire). Les types de périmètres suivants sont autorisés :
    - SIREN
    - SIREN + suffixe (Méthode simple pour séparer plusieurs départements sans utiliser le SIRET)
    - SIREN + SIRET
    - SIREN + SIRET + code_routage (code routage)
- **Objectif** : Matérialise la relation entre une PDP (PDP de réception) et une entité commerciale.
- **Processus de création** : Via le tableau de bord Sponsor ou l'API d'Onboarding.


## Architecture de l'API

### En-têtes et Authentification


```http
X-PDP-Client-Id: client-acme-corp        # Requis pour les opérations client
```

### Catégories d'Endpoints

| Catégorie | Objectif | Requiert l'ID Client |
|  --- | --- | --- |
| **Clients** | Gérer les clients et l'onboarding |  |
| **Paramètres** | Configurer les préférences client |  |
| **Utilisation** | Collecter l'utilisation de l'API par client et facturer en conséquence |  |
| **Mandats** | Gérer les entités légales et les entrées d'annuaire PPF |  |
| **Brouillons** | Créer et valider les brouillons de factures |  |
| **Facturation** | Envoyer et recevoir des factures électroniques |  |
| **Télédéclaration** | Envoyer les informations de télédéclaration |  |
| **Cycle de vie** | Interroger ou s'abonner aux événements de cycle de vie |  |


### Flux de Travail Typique

1. **🔗 Onboarding** : Créer un lien d'onboarding pour un nouveau client
2. **📋 Création de Mandat** : Le client accorde les permissions via un mandat signé
3. **📘 Configuration Annuaire** : Enregistrer les informations de routage de l'entreprise
4. **📄 Traitement des Factures** : Envoyer/recevoir des factures électroniques
5. **📊 Surveillance** : Suivre l'utilisation et générer des rapports ou factures pour les clients du sponsor


## Pour Commencer

1. **Obtenir les Identifiants** : Récupérez votre `X-PDP-Sponsor-Id` auprès de Seqino
2. **Onboarding Client** : Utilisez les endpoints d'onboarding pour enregistrer de nouveaux clients
3. **Gestion Annuaire** : Configurer les informations de routage de l'entreprise
4. **Commencer la Facturation** : Commencer à envoyer et recevoir des factures électroniques