Aller au contenu principal

Cas d’usage

Implémentation du flow B2C (buyer_is_individual + BR-CO-26)

Facturer un particulier sans SIRET ni TVA intra

Pour facturer un consommateur final (B2C), Scell.io applique automatiquement la règle EN 16931 BR-CO-26 quand vous passez `buyer_is_individual: true` dans le payload. Cette règle rend optionnels les champs BT-46 (BuyerLegalOrganisation), BT-47 (BuyerTaxIdentifier) et BT-48 (BuyerVATIdentifier). Sans cette règle, le XML CII serait rejeté par les validateurs EN16931 puisqu'un acheteur particulier n'a légalement ni SIREN ni TVA intracommunautaire. Champs requis en B2C : `first_name`, `last_name`, `address` (rue, code postal, ville, pays). Email recommandé pour l'envoi PDF. Le PDF affiche `Particulier` au lieu d'une raison sociale.

À retenir

  • Champ `buyer_is_individual: true` active BR-CO-26
  • BT-46, BT-47, BT-48 deviennent optionnels
  • Champs requis : `first_name`, `last_name`, `address`
  • Email recommandé (pas obligatoire) pour envoi PDF
  • PDF affiche `Particulier` au lieu d'une raison sociale
  • XML CII reste EN16931-valide

Exemple de code

import { ScellClient } from '@scell/sdk';
const scell = new ScellClient({ apiKey: process.env.SCELL_SECRET_KEY! });

const invoice = await scell.invoices.create({
  format: 'factur-x',
  buyer_is_individual: true, // Active BR-CO-26 (skip SIREN/TVA)
  buyer: {
    first_name: 'Jean',
    last_name: 'Dupont',
    email: 'jean.dupont@example.com',
    address: {
      street: '12 rue de la Paix',
      postal_code: '75002',
      city: 'Paris',
      country_code: 'FR',
    },
  },
  lines: [
    { description: 'Coaching sportif (10 séances)', quantity: 10, unit_price: 60.00, vat_rate: 20 },
  ],
});

Voir aussi

Vos préférences cookies

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