Exemples fonctionnels de FRR
Cette page montre comment représenter dans un fichier FRR les principaux cas de e-Reporting déposés dans le Flow Service BCSolutions.
Le périmètre est volontairement limité aux rapports que votre SI dépose lui-même avec POST /v1/flows, puis recherche avec POST /v1/flows/search et récupère avec GET /v1/flows/{flowId}.
Les rapports produits puis transmis au PPF ne sont pas décrits ici.
La procédure d'appel n'est pas répétée dans chaque cas : tous les exemples sont déposés avec flowSyntax: "FRR" et le fichier XML dans la partie multipart file.
➡️ Déposer, rechercher et récupérer des flux
➡️ Principes du e-Reporting
Télécharger les cinq exemples FRR complets (.zip)
Les types de FRR et les cinq cas illustrés
Le standard Flow Service prévoit six qualifications flowType pour les FRR. Cinq cas sont illustrés ci-dessous par des exemples XML ; le sixième, MultiFlowReport, correspond à un FRR regroupant au moins deux types de e-Reporting différents et sera pris en charge prochainement.
Le standard Flow Service ne demande pas au client de fournir flowType lors du dépôt. Le client transmet le FRR ; la plateforme analyse le document et qualifie ensuite le flux.
| Cas fonctionnel | Bloc FRR | Qualification flowType attendue |
|---|---|---|
| Vente B2B internationale déclarée individuellement | 10.1 — TransactionsReport/Invoice | UnitaryCustomerTransactionReport |
| Achat B2B international déclaré individuellement | 10.1 — TransactionsReport/Invoice | UnitarySupplierTransactionReport |
| Encaissement individuel rattaché à une transaction déclarée | 10.2 — PaymentsReport/Invoice/Payment | UnitaryCustomerPaymentReport |
| Ventes B2C agrégées | 10.3 — TransactionsReport/Transactions | AggregatedCustomerTransactionReport |
| Encaissements B2C agrégés | 10.4 — PaymentsReport/Transactions/Payment | AggregatedCustomerPaymentReport |
| Rapport contenant au moins deux types de e-Reporting | Plusieurs blocs parmi 10.1, 10.2, 10.3, 10.4 | MultiFlowReport — prochainement |
flowType dans flowInfoflowType est une qualification produite par la plateforme. Pour déposer un FRR, fournissez name, flowSyntax: "FRR" et, si vous le souhaitez, un trackingId. N'ajoutez pas flowType dans le flowInfo d'entrée.
En-tête commun ReportDocument
Les exemples utilisent le même principe d'en-tête :
<ReportDocument>
<Id>FRR-103-B2C-20260915</Id>
<IssueDateTime>
<DateTimeString>20260920101500</DateTimeString>
</IssueDateTime>
<TypeCode>IN</TypeCode>
<Sender>
<Id schemeId="0238">0119</Id>
<Name>Plateforme agreee</Name>
<RoleCode>WK</RoleCode>
</Sender>
<Issuer>
<Id schemeId="0002">100000009</Id>
<Name>VENDEUR EXEMPLE</Name>
<RoleCode>SE</RoleCode>
</Issuer>
</ReportDocument>
TypeCode=IN correspond ici à une déclaration initiale. Les exemples de cette page ne traitent pas les mécanismes de rectification.
Le rôle de l'Issuer dépend du rapport :
SElorsque l'entreprise déclare une transaction de vente ;BYlorsqu'elle déclare un achat B2B international.
10.1 — Vente B2B internationale
Cas d'usage
Une entreprise française déclare individuellement une facture de vente émise à un client professionnel situé hors du périmètre de la facture électronique domestique française.
Le rapport contient une occurrence Invoice par facture. Il ne s'agit donc pas d'un agrégat.
Structure utile
<TransactionsReport>
<ReportPeriod>
<StartDate>20260901</StartDate>
<EndDate>20260930</EndDate>
</ReportPeriod>
<Invoice>
<ID>F2026-INT-001</ID>
<IssueDate>20260915</IssueDate>
<TypeCode>380</TypeCode>
<CurrencyCode>EUR</CurrencyCode>
<BusinessProcess>
<ID>B1</ID>
<TypeID>urn.cpro.gouv.fr:1p0:ereporting</TypeID>
</BusinessProcess>
<!-- Seller, Buyer, totaux et ventilation TVA -->
</Invoice>
</TransactionsReport>
Le BusinessProcess/ID transporte le cadre de facturation applicable à la transaction. BusinessProcess/TypeID identifie le profil e-Reporting et vaut urn.cpro.gouv.fr:1p0:ereporting dans ces exemples.
Télécharger le FRR 10.1 vente complet (.xml) · Afficher le XML
Résultat fonctionnel attendu
Après qualification, le flux est exposé comme UnitaryCustomerTransactionReport. Le document reste un FRR sortant du point de vue du Flow Service.
10.1 — Achat B2B international
Cas d'usage
Une entreprise française déclare individuellement une facture d'achat reçue d'un fournisseur étranger lorsque cette opération relève du e-Reporting.
La structure reste TransactionsReport/Invoice. La différence fonctionnelle principale est que le déclarant est ici l'acheteur : l'Issuer porte le rôle BY.
<Issuer>
<Id schemeId="0002">200000008</Id>
<Name>ACHETEUR EXEMPLE</Name>
<RoleCode>BY</RoleCode>
</Issuer>
Télécharger le FRR 10.1 achat complet (.xml) · Afficher le XML
Résultat fonctionnel attendu
Après qualification, le flux est exposé comme UnitarySupplierTransactionReport.
Même s'il s'agit fonctionnellement d'un achat, ce FRR a été déposé par votre SI vers la plateforme. Sa flowDirection est donc Out.
10.2 — Paiement individuel
Cas d'usage
Une transaction déclarée individuellement nécessite également une déclaration de paiement, par exemple lorsqu'il faut déclarer l'encaissement d'une prestation pour laquelle la TVA est exigible à l'encaissement.
Le paiement reste rattaché à la facture concernée :
<PaymentsReport>
<ReportPeriod>
<StartDate>20260901</StartDate>
<EndDate>20260930</EndDate>
</ReportPeriod>
<Invoice>
<ID>F2026-SERV-INT-001</ID>
<IssueDate>20260905</IssueDate>
<Payment>
<Date>20260918</Date>
<SubTotals>
<TaxPercent>20.00</TaxPercent>
<CurrencyCode>EUR</CurrencyCode>
<Amount>1200.00</Amount>
</SubTotals>
</Payment>
</Invoice>
</PaymentsReport>
Télécharger le FRR 10.2 complet (.xml) · Afficher le XML
Résultat fonctionnel attendu
Après qualification, le flux est exposé comme UnitaryCustomerPaymentReport.
10.3 — Transactions B2C agrégées
Cas d'usage
Une entreprise déclare les ventes réalisées avec des particuliers ou d'autres non-assujettis. Contrairement au flux 10.1, le FRR ne transporte pas une ligne par ticket, facture ou transaction.
Il transporte des agrégats journaliers. Chaque bloc Transactions représente un regroupement fonctionnel, notamment par date, devise et catégorie de transaction. La ventilation TVA est portée par les blocs TaxSubtotal.
<Transactions>
<Date>20260915</Date>
<TransactionsCurrency>EUR</TransactionsCurrency>
<CategoryCode>TLB1</CategoryCode>
<TaxExclusiveAmount>1500.00</TaxExclusiveAmount>
<TaxTotal>222.50</TaxTotal>
<TransactionsCount>25</TransactionsCount>
<TaxSubtotal>
<TaxPercent>20.00</TaxPercent>
<TaxableAmount>1000.00</TaxableAmount>
<TaxTotal>200.00</TaxTotal>
</TaxSubtotal>
<!-- autres taux éventuels -->
</Transactions>
Les catégories utilisées par le standard pour ce bloc comprennent notamment :
CategoryCode | Signification fonctionnelle |
|---|---|
TLB1 | Livraison de biens taxable |
TPS1 | Prestation de services taxable |
TNT1 | Opération non taxable en France |
TMA1 | Opération relevant du régime de la marge |
Télécharger le FRR 10.3 complet (.xml) · Afficher le XML
Résultat fonctionnel attendu
Après qualification, le flux est exposé comme AggregatedCustomerTransactionReport.
TransactionsCount indique éventuellement combien de transactions ont contribué à l'agrégat, mais le FRR 10.3 ne permet pas de retrouver chacune de ces transactions individuellement. Les montants représentent les cumuls réglementaires du regroupement.
10.4 — Encaissements B2C agrégés
Cas d'usage
L'entreprise déclare les encaissements B2C qui doivent faire l'objet d'un e-Reporting de paiement.
Comme pour le 10.3, il ne s'agit pas de transmettre un paiement unitaire pour chaque client. Le rapport porte des montants encaissés agrégés, avec une ventilation par taux de TVA.
<Transactions>
<Payment>
<Date>20260915</Date>
<SubTotals>
<TaxPercent>20.00</TaxPercent>
<CurrencyCode>EUR</CurrencyCode>
<Amount>720.00</Amount>
</SubTotals>
<SubTotals>
<TaxPercent>10.00</TaxPercent>
<CurrencyCode>EUR</CurrencyCode>
<Amount>220.00</Amount>
</SubTotals>
</Payment>
</Transactions>
Télécharger le FRR 10.4 complet (.xml) · Afficher le XML
Résultat fonctionnel attendu
Après qualification, le flux est exposé comme AggregatedCustomerPaymentReport.
Déposer l'un de ces FRR
Le même appel POST /v1/flows est utilisé pour les cinq exemples.
flowInfo
{
"name": "frr-10.3-transactions-b2c-agregees.xml",
"flowSyntax": "FRR",
"trackingId": "ERP-FRR-202609-103-001"
}
Requête multipart
curl -X POST "https://<flow-api-host>/v1/flows" \
-H "Authorization: Bearer <access-token>" \
-H "Organization-Id: <organization-id>" \
-F 'flowInfo={
"name":"frr-10.3-transactions-b2c-agregees.xml",
"flowSyntax":"FRR",
"trackingId":"ERP-FRR-202609-103-001"
};type=application/json' \
-F 'file=@frr-10.3-transactions-b2c-agregees.xml;type=application/xml'
Le retour 202 Accepted confirme la prise en compte technique du fichier et fournit un flowId. Il ne faut pas en déduire que le rapport a déjà terminé tous ses contrôles.
Rechercher les FRR que vous avez déposés
Les FRR de cette page sont tous des flux sortants (Out) du point de vue de votre intégration avec le Flow Service.
Rechercher les rapports 10.3
{
"limit": 100,
"where": {
"updatedAfter": "2026-09-20T00:00:00Z",
"flowDirection": ["Out"],
"flowType": ["AggregatedCustomerTransactionReport"]
}
}
Rechercher plusieurs familles de FRR
{
"limit": 100,
"where": {
"updatedAfter": "2026-09-20T00:00:00Z",
"flowDirection": ["Out"],
"flowType": [
"UnitaryCustomerTransactionReport",
"UnitarySupplierTransactionReport",
"UnitaryCustomerPaymentReport",
"AggregatedCustomerTransactionReport",
"AggregatedCustomerPaymentReport"
]
}
}
MultiFlowReport pourra être utilisé comme critère flowType dans les recherches dès que sa qualification automatique sera prise en charge.
Vous pouvez également rechercher précisément un dépôt en réutilisant le trackingId fourni au moment du POST /v1/flows.
Récupérer le FRR déposé
Deux représentations sont utiles pour les rapports décrits sur cette page :
GET /v1/flows/{flowId}?docType=Metadata
GET /v1/flows/{flowId}?docType=Original
Metadataretourne les métadonnées et la qualification du flux ;Originalrestitue le fichier XML FRR original déposé par votre SI.
Les représentations ReadableView, Converted et Ubl sont réservées aux factures entrantes et ne s'appliquent pas aux FRR.
Cette récupération concerne exclusivement le FRR correspondant au flux que vous avez déposé dans notre API. La consultation des rapports effectivement produits puis transmis au PPF sera documentée séparément.