Aller au contenu

Émettre une facture depuis un folio (standard / acompte / solde)

POST
/v1/folios/{folioId}/invoices
curl --request POST \
--url https://example.com/v1/folios/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/invoices \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "invoiceKind": "standard", "operatingMandateId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "siren": "123456789", "establishmentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "fiscalYear": 2026, "invoiceDate": "2026-06-08", "servicePeriodFrom": "2026-04-15", "servicePeriodTo": "2026-04-15", "billTo": { "type": "guest", "name": "example", "address": "example", "country": "example", "siret": "example", "vatNumber": "example", "vatRegime": "consumer" }, "entryIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }'

Numérotation NF203 atomique (zéro trou) + chaînage HMAC. Idempotency-Key obligatoire (anti-double-émission). Pour invoiceKind=final : les déductions d’acomptes sont résolues côté serveur — ne pas fournir de montants de déductions dans le body.

folioId
required
string format: uuid
Media type application/json
object
invoiceKind
string
default: standard
Allowed values: standard deposit final
operatingMandateId
required
string format: uuid
siren
required
string
/^\d{9}$/
Example
123456789
establishmentId
required
string format: uuid
fiscalYear
required
integer
Example
2026
invoiceDate
required
string format: date
Example
2026-06-08
servicePeriodFrom
string format: date
nullable
servicePeriodTo
string format: date
nullable
billTo
required
object
type
required
string
Allowed values: guest organization agency ota
name
required
string
address
string
nullable
country
string
nullable
siret
string
nullable
vatNumber
string
nullable
vatRegime
required
string
Allowed values: consumer fr_business eu_business_vatid non_eu
entryIds

Sous-sélection d’entries (split bill). Défaut : toutes les entries éligibles.

Array<string>
nullable

Facture émise — numéro NF203 attribué

Media type application/json
object
data
required
object
invoiceId
required
string format: uuid
invoiceNumber
required
string
Example
{
"data": {
"invoiceNumber": "FAC-2026-0000001"
}
}

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
}

Ressource introuvable

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
}