Nouveautés
Changelog
Toutes les mises à jour de l'API Scell.io
- Fonctionnalitév2.25.0
Conformité Factur-X BT-81 : mode d'encaissement normé sur mark-paid
- Backend — Nouvel enum `PaymentMeansCode` (11 codes UN/ECE 4461 : 1, 10 espèces, 20 chèque, 30 virement, 42 versement bancaire, 48 CB, 49 prélèvement, 57 permanent, 58 virement SEPA, 59 prélèvement SEPA, 97 compensation) avec labels FR/EN
- Backend — Endpoint POST /v1/invoices/{id}/mark-paid exige désormais `payment_means_code` (avec `payment_means_text` optionnel pour libellé bancaire libre). 3 controllers couverts : factures sortantes, factures entrantes, tenant incoming
- Backend — XML CII Factur-X inclut maintenant `<ram:SpecifiedTradeSettlementPaymentMeans><ram:TypeCode>X</ram:TypeCode>` (était hardcodé à 42 — non-conforme dès qu'une facture était payée autrement)
- Backend — Migration colonnes `payment_means_code` (varchar 2) + `payment_means_text` (varchar 100) sur invoices + credit_notes (nullable, backward compat sur factures historiques)
- Dashboard — Modal "Marquer payée" Antd avec Select des modes de paiement (codes courants B2B France priorité affichage : virement SEPA, virement classique, chèque, CB, prélèvement, espèces), champ libellé bancaire optionnel, default = 58 (virement SEPA)
- SDK PHP scell/sdk v2.25.0 — Enum `Scell\Sdk\Enums\PaymentMeansCode` + `InvoicesResource::markPaid()` avec param obligatoire
- SDK TypeScript @scell/sdk v2.25.0 — Type `PaymentMeansCode` union literal + `markPaid()` typed
- Agent MCP @scell/mcp-client v2.25.0 — Nouveaux tools `scell_mark_invoice_paid` + `scell_mark_incoming_invoice_paid` (catalogue 96 → 98)
- OpenAPI publique sync : schema `PaymentMeansCode` exposé + MarkPaidRequest enrichi avec exemples
- Tests — 9 tests MarkPaidWithMeansCodeTest (22 assertions) : cast enum, persistence, validation strict, génération XML BT-81, backward compat
- Plateformev2.24.0
SDKs alignés sur v2.24 : CreditPacks, FEC all, InvoiceTemplates wired, BalanceResource deprecated
- Backend — OpenAPI publique sync drift 15→0 (4 endpoints + 8 schemas ajoutés : VAT context, FEC all, archive-health, API key rotate). 180 paths + 40 schemas documentés.
- Backend — `ApiDocumentation` mention SDK officielles bumpées vers v2.24.0+
- SDK PHP `scell/sdk` v2.24.0 — `CreditPacksResource` publique, `BillingResource::listPacks()` + `checkoutPack()`, `FiscalResource::exportFecAll()` cross sub-tenant, `TenantIncomingInvoiceResource::dispute()`, DTO `PaymentSchedulePreset` typed. `BalanceResource` marqué `@deprecated` (endpoints supprimés backend 2026-05-10). Tests 156→191 (920 assertions). PHPStan clean.
- SDK TypeScript `@scell/sdk` v2.24.0 — `client.invoiceTemplates` désormais wired (était orphan), `client.version()` helper pour drift detection, `client.creditPacks` publique, suppression 3 méthodes Fiscal doublons cassées. `BalanceResource` marqué `@deprecated`. Tests 118→133 (15 nouveaux). Zero runtime dependencies préservé.
- Agent MCP `@scell/mcp-client` v2.24.0 — **24 nouveaux tools** (catalogue 72→96) : Buyers (5), Invoice Templates (6), Branding (3), Billing (4), Credit Packs (2), Sub-Tenant CRUD (4). Fix `VERSION` CLI const (figé depuis v2.15 à 2.14.0), fix header tools count, fix description `scell_tenant_list_signatures` (retire ref obsolète `403 COMPANY_REQUIRED`). 190/190 tests verts.
- Site — Page `/sdk` mise à jour avec les 3 versions v2.24.0 + mention "96 outils" sur la card MCP. Page `/api-docs` (Swagger UI) sert l'OpenAPI sync. Pages publiques (about, contact, dpa, trust, blog) inchangées.
- PostHog EU project 188671 activé sur les 3 sites (website Next.js + dashboard Vite + ...) — analytics produit privacy-first, consent-aware via store P2.21, PII blocklist active, host `eu.i.posthog.com` (RGPD).
- Documentation llms.txt (PHP, TS, MCP) — sections v2.24.0 ajoutées avec features et notes (Refund non applicable côté SDK : passe par CreditNote ou Stripe webhook).
- Fonctionnalitév2.23.0
Couverture exhaustive des énumérations dans les SDK + doc
- SDK PHP scell/sdk v2.21.0 — 19 énumérations exposées dans `Scell\Sdk\Enums\*` (8 BackedEnum PHP synchronisées via codegen back→front + 11 string enums adossés aux contraintes CHECK PostgreSQL)
- SDK TypeScript @scell/sdk v2.23.0 — mêmes 19 énumérations exposées en union types stricts (`InvoiceType`, `QuoteStatus`, `VatCategory`, `SignatureStatus`, etc.)
- Agent MCP @scell/mcp-client v2.22.0 — descriptions d'outils enrichies avec les valeurs autorisées des 19 énumérations (le LLM voit désormais le vocabulaire complet de l'API)
- Énumérations exposées : `InvoiceTemplateKind`, `InvoiceType`, `PaymentScheduleLineAmountType`, `PaymentScheduleLineStatus`, `QuoteStatus`, `QuoteAuditAction` (21 valeurs), `SubTenantOnboardingStatus`, `VatCategory` (8 catégories EN16931)
- Énumérations DB : `CreditNoteStatus`, `CreditNoteType`, `SignatureStatus`, `SignatureArchiveStatus`, `InvoiceArchiveStatus`, `TenantKybStatus`, `CompanyStatus`, `ApiKeyStatus`, `TenantInvoiceStatus`, `TenantTransactionType`, `OnboardingSessionStatus`
- Site — nouvelle section « Énumérations & statuts » sur la page /sdk listant les 19 énumérations avec valeurs et description (fin de la confusion sur les statuts de devis, signatures, sub-tenants…)
- Documentation llms.txt (PHP, TS, MCP) — section « Enums & statuts » alignée 1:1 avec le code des SDK
- Fonctionnalitév2.22.0
Statut refunded automatique sur factures avec avoir
- Backend — nouveaux statuts `refunded` et `partially_refunded` ajoutés à la check constraint des factures (16 statuts au total)
- Backend — observer `CreditNoteObserver` qui pose automatiquement le statut au validate d'un avoir : `refunded` si la somme des avoirs ≥ total TTC, sinon `partially_refunded`
- Backend — nouveaux champs `refund_status` (none|partial|full) et `total_refunded` (float) exposés sur tout payload Invoice (GET /invoices, GET /invoices/{id})
- Backend — backfill rétroactif appliqué en prod : 1 facture impactée (QRCOM-202605-00001) repassée en `partially_refunded` cohérent
- SDK PHP scell/sdk v2.20.0 — enum `InvoiceStatus` complet (16 valeurs) + champs `refund_status` et `total_refunded` sur le DTO Invoice
- SDK TypeScript @scell/sdk v2.22.0 — type union `InvoiceStatus` exhaustif + `refund_status` et `total_refunded` sur l'interface Invoice
- Agent MCP @scell/mcp-client v2.21.0 — descriptions enrichies pour les outils invoices avec les nouveaux statuts et champs refund_*
- Dashboard — masquage du bouton « Marquer payée » dès qu'un avoir validé existe sur la facture (incohérence métier prévenue côté UI)
- Fix bonus — signature PDF des devis acceptés : tampon image rendu propre (au lieu de texte brut) + horodatage à la seconde
- Fix bonus — endpoint mark-paid : statut cible corrigé en `completed` (et non `paid`) pour matcher le workflow ISCA, fix du 500 historique
- Fix bonus — wizard facture acompte/solde : l'acheteur est désormais pré-rempli depuis le devis source (parité avec le mode standard)
- Fonctionnalitév2.21.0
Facture standard depuis un devis + fixes critiques signature & UX devis
- Nouveau : POST /api/v1/invoices accepte parent_quote_id pour les factures standard — lien facture↔devis préservé (anti-IDOR tenant scope)
- Dashboard — bouton « Créer une facture » sur le drawer de devis : redirige vers le wizard pré-rempli (lignes + acheteur copiés depuis le devis)
- Dashboard — sélecteur « Pré-remplir depuis un devis » directement dans le wizard create invoice (mode standard)
- Dashboard — total « À facturer » réactif au keystroke dans la modal d'acompte ET dans le wizard facture (fix bug : la valeur ne se mettait pas à jour au switch %/€ et au scroll)
- SDK PHP scell/sdk v2.19.0 — méthode fluent $builder->parentQuoteId() + fix payload (le champ était silencieusement droppé depuis v2.15.0)
- SDK TypeScript @scell/sdk v2.21.0 — champ parent_quote_id sur CreateInvoiceInput
- Agent MCP @scell/mcp-client v2.20.0 — champ parentQuoteId sur l'outil scell_create_invoice
- Fix critique — canvas de signature manuscrite sur les devis publics (import statique de signature_pad, corrige le bundle vide en production)
- Fix critique — CSRF 419 sur l'acceptation/refus d'un devis public (routes api/v1/public/quotes/* exclues du middleware stateful Sanctum)
- Page publique de confirmation de devis — bouton « Fermer la fenêtre » (window.close + hint fallback) à la place du retour à l'accueil
- Fonctionnalitév2.16.0
SDKs — CRUD complet factures & avoirs + mark-paid
- SDK TypeScript @scell/sdk v2.16.0 — invoices.update(), invoices.delete(), creditNotes.update(), creditNotes.delete() (brouillons uniquement, conformité ISCA)
- SDK PHP scell/sdk v2.14.0 — mêmes méthodes update/delete ajoutées côté PHP
- Agent MCP @scell/mcp-client v2.15.0 — nouvel outil scell_mark_invoice_paid (marquer une facture sortante comme payée)
- API Backend — POST /invoices/{id}/mark-paid pour les factures sortantes (statuts validated/transmitted/sent/accepted)
- Page /sdk refondue — exemples avec payloads complets vérifiés vs backend, sections Devis et Échéancier ajoutées, menu réorganisé
- Documentation llms.txt mise à jour (API + MCP)
- Fonctionnalitév1.9.0
Agent MCP + SDKs officiels
- SDK TypeScript @scell/sdk v1.10.0 — 16 resources, typage complet
- SDK PHP scell/sdk — intégration Laravel native, 16 resources
- Agent MCP @scell/mcp-client v1.5.0 — 33 outils pour Claude, Cursor, VS Code
- Fichiers llms.txt et openapi.json publics pour les IA
- Plateformev1.5.0
Multi-tenant B2B + Conformité ISCA
- API Tenant complète : sub-tenants, facturation déléguée, billing consolidé
- Auto-certification ISCA : attestation, dossier technique, registre des mesures
- Grand livre fiscal immutable avec chaîne de hachage SHA-256
- Export FEC (Fichier des Écritures Comptables) pour l'administration fiscale
- Kill-switch fiscal d'urgence
- Fonctionnalitév1.2.0
Support complet Factur-X
- Génération automatique des PDF/A-3 conformes
- Validation des profils BASIC, EN 16931 et EXTENDED
- Conversion entre formats (Factur-X, UBL 2.1, CII D16B)
- Piste d'Audit Fiable (PAF) native
- Plateformev1.1.0
Refonte Signatures eIDAS
- Support multi-signataires (séquentiel et parallèle)
- OTP SMS via notre partenaire de signature certifié — inclus dans le prix par signataire
- Personnalisation des emails d'invitation
- Webhooks signature.signed, signature.completed, signature.expired
- Fichier de preuve horodaté et archivage 10 ans
- Lancementv1.0.0
Lancement Public
- API REST ouverte en beta publique
- Modules Facturation électronique et Signature eIDAS EU-SES
- Sandbox gratuit avec clés sk_test_
- Dashboard web pour la gestion des factures et signatures
- Webhooks HMAC-SHA256 avec retry automatique