Aller au contenu

Préparer les soumissions e-reporting B2C d'une décade (ADR-00D101 §6)

POST
/v1/e-reporting/prepare
curl --request POST \
--url https://example.com/v1/e-reporting/prepare \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "operatingMandateId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "periodStart": "2026-07-01", "periodEnd": "2026-07-10" }'

Agrège les factures ÉMISES de la période (jour × taux de TVA) et matérialise une soumission prepared PAR FLUX non vide (domestic = consumer ; international = eu_business_vatid + non_eu ; B2B FR exclus). Période = décade civile STRICTE (1-10, 11-20, 21-fin de mois). Re-préparer une période couverte → 409 (contrainte DB anti-chevauchement). Montants en centimes (string, bigint-safe).

Media type application/json
object
operatingMandateId
required
string format: uuid
periodStart
required

Début de décade (1, 11 ou 21)

string format: date
Example
2026-07-01
periodEnd
required

Fin de décade (10, 20 ou dernier jour du mois)

string format: date
Example
2026-07-10

Soumissions préparées (une par flux non vide — liste vide si aucune vente e-reportable)

Media type application/json
object
data
required
object
operatingMandateId
required
string format: uuid
periodStart
required
string format: date
periodEnd
required
string format: date
submissions
required
Array<object>
object
id
required
string format: uuid
flow
required
string
Allowed values: domestic international
totalBaseHt
required
object
amountCents
required

Montant en centimes (bigint sérialisé en string)

string
currency
required
string
Allowed values: EUR GBP
totalTax
required
object
amountCents
required

Montant en centimes (bigint sérialisé en string)

string
currency
required
string
Allowed values: EUR GBP
transactionCount
required
integer
lineCount
required
integer
Example
{
"data": {
"submissions": [
{
"flow": "domestic",
"totalBaseHt": {
"amountCents": "12000",
"currency": "EUR"
},
"totalTax": {
"amountCents": "12000",
"currency": "EUR"
}
}
]
}
}

Corps ou paramètres invalides

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Non authentifié

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Permission refusée ou périmètre non vérifiable

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Conflit d’état ou stock épuisé

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}