Aller au contenu principal
Factur-X type 381 · EN16931 · ISCA · B2C hérité · Partiel/Total

Avoirs conformes EN16931 liés à vos factures — héritage automatique.

POST /credit-notes avec invoice_id → avoir Factur-X type 381, buyer/seller figés, B2C hérité, chaîne ISCA. Partiel ou total. SDK PHP et TypeScript.

$api = ScellApiClient::withApiKey('sk_live_...');

// Avoir total sur une facture existante
$creditNote = $api->creditNotes()->builder()
    ->forInvoice('invoice-uuid')
    ->reason('Retour marchandises — bon état')
    ->lines([
        ['invoice_line_id' => 'line-uuid-1', 'quantity' => 2],
    ])
    ->create();

echo 'Credit note: ' . $creditNote->credit_note_number;
echo 'Amount: '      . $creditNote->total_ttc;

Le problème

  • Cohérence buyer/seller impossible à maintenir — un avoir doit reprendre exactement les informations acheteur et vendeur de la facture source. Si modifiées entre-temps (changement d'adresse, SIRET corrigé), l'avoir diverge et peut être rejeté par le client ou l'administration.
  • Chaîne ISCA et compliance fiscale — un avoir doit entrer dans le ledger fiscal avec un numéro séquentiel distinct (AVO-YYYY-NNNN), un hash SHA-256 lié à la chaîne de la facture source. Un avoir émis hors-séquence crée un trou d'audit.
  • Validation EN16931 stricte — l'avoir Factur-X (code 381) a ses propres règles BR. Le buyer_is_individual hérité de la facture doit être propagé. Un avoir B2C avec balises SIRET crée une non-conformité Schematron.

Notre solution

  • POST /credit-notes avec invoice_id — Scell snapshot automatiquement buyer et seller depuis la facture source au moment de l'émission. Les colonnes buyer_* et seller_* sur l'avoir sont figées indépendamment de toute modification ultérieure du buyer ou de la company.
  • Héritage B2C automatique — si la facture source est buyer_is_individual: true, l'avoir hérite automatiquement de ce flag. Les balises SIRET/TVA/L441-10 sont supprimées sans configuration, conformément EN16931 BR-CO-26.
  • Partiel ou total, lignes sélectives — le tableau lines[] avec invoice_line_id permet un avoir partiel ligne par ligne. Sans le tableau lines[], l'avoir couvre la totalité de la facture. La règle InvoiceCreditable valide que la facture n'est pas déjà totalement avoinée.

6 garanties avoir

Liaison stricte à invoice_id

Le champ invoice_id lie l'avoir à une facture existante et vérifiée. Anti-IDOR complet : la facture doit appartenir au même tenant/sub_tenant. Impossible de créer un avoir orphelin ou cross-tenant.

Liaison facture garantie

Héritage buyer/seller figé

Les colonnes buyer_* (name, siret, address) et seller_* (company) sont snapshotées depuis la facture source à l'émission. Aucune modification ultérieure du buyer ou de la company n'impacte l'avoir déjà émis.

Données immuables ISCA

Partiel par lignes (invoice_line_id)

Le tableau lines[] accepte N lignes avec invoice_line_id + quantity optionnelle. Un avoir partiel avoire sélectivement. Sans lines[], l'avoir est total. La rule InvoiceCreditable vérifie l'absence de sur-avoinement.

Partiel ou total en 1 champ

B2C hérité automatiquement

Si la facture source est buyer_is_individual: true, CreditNoteService propage automatiquement le flag. Les balises BT-46/47/48 et les mentions L441-10 sont supprimées sans configuration — conformité BR-CO-26 garantie.

B2C hérité sans config

Download PDF/A-3b + XML CII

Avoir disponible via GET /credit-notes/{id}/download/{format}. Format pdf (PDF/A-3b), xml (CII seul), facturx (complet). Fichier stocké en S3 WORM avec hash ISCA. Accessible par API, signed URL ou webhook.

PDF + XML disponibles

Validation stricte 422 explicite

La rule InvoiceCreditable vérifie statut creditable (validated, transmitted, accepted, paid), absence de sur-avoinement, appartenance des lignes. Chaque violation retourne 422 avec le code d'erreur exact — pas de corruption silencieuse.

0 sur-avoinement possible
Hébergé en FranceScaleway Paris
RGPDDonnées FR
Factur-X conformeDGFiP EN16931
eIDAS SESRègl. 910/2014
ISCA SHA-256Ledger immuable
TLS 1.3Chiffrement bout-à-bout

Questions fréquentes

Prêt à émettre votre premier avoir Factur-X ?

Sandbox gratuit. Aucune carte de crédit. Avoir EN16931 conforme en 1 appel.

Essayer gratuitementVoir les SDKs

Vos préférences cookies

Nous utilisons des cookies pour améliorer votre expérience. Les cookies essentiels sont toujours actifs. Politique cookies.