TypeScript SDK
TypeScript / JavaScript
Installation
npm install @scell/sdkFonctionnalités
- Typage TypeScript complet (strict mode)
- API async/await basée sur les Promises
- 4 classes client (Bearer, API Key, Tenant, Public)
- Factures B2B + B2C, avoirs, signatures, fiscal, webhooks
- Invoice Templates (upload logo + couleurs + mentions)
- Coordonnées bancaires Factur-X (IBAN/BIC) + délai paiement par défaut
- Clôture journalière auto + email + CSV
- Auto-attestation ISCA nominative (tenant + sub_tenant)
- Mode sandbox avec préfixe sk_test_
- Paiement Stripe en ligne des factures Scell.io (depuis v2.2.0)
- Sub-tenants management : delete cascade ISCA + SuperPDP authorize URL (depuis v2.9.0)
- Receipt OpenTimestamps `ots_proof_base64` sur les clôtures fiscales (depuis v2.10.0)
- Signature blocks : paraphe automatique + mentions juridiques + date du jour (depuis v2.12.0)
- Devis (Quotes) : CRUD, envoi par email, signature, conversion en acomptes (depuis v2.13.0)
- PaymentSchedule complet : set/patch/delete/summary/convertLine/presets (depuis v2.13.0)
- Quote `callback_url` : redirige le buyer vers le site tenant après accept/refuse (depuis v2.13.1)
- `PaymentSummary.lines[]` : tracker visuel complet sans seconde requête (depuis v2.14.0)
- invoices.update() / delete() + creditNotes.update() / delete() — brouillons uniquement (depuis v2.16.0)
- Initiales multi-pages : `initials_block.positions[]` avec position et style override par page (depuis v2.17.0)
- Webhook secret affiché 1 fois à création / régénération + `secret_last4` pour fingerprint (depuis v2.19.0)
- `parent_quote_id` sur facture standard : lien soft vers un devis source pour la traçabilité (depuis v2.21.0)
- Statuts `refunded` / `partially_refunded` posés automatiquement par le backend + champs `refund_status` et `total_refunded` exposés (depuis v2.22.0)
- Couverture exhaustive des énumérations : 19 union types stricts (`InvoiceType`, `QuoteStatus`, `VatCategory`, `SignatureStatus`, etc.) — fin des `string` génériques côté SDK (depuis v2.23.0)
- BT-81 Payment Means Code : conformité Factur-X EN16931 avec les 11 codes UN/ECE 4461 (depuis v2.25.0)
- Registre fournisseurs (`suppliers`) : alimenté automatiquement par les factures reçues (GET + PATCH email/phone/notes uniquement — pas de création ni suppression manuelle, depuis v2.26.0 / v3.0.0)
- `InvoiceStatus` aligné sur les 16 statuts canoniques du backend (depuis v2.27.1)
- Référentiel sociétés par pays (`reference.countries()` / `.country(code)`) : TVA, identifiant national (registre + scheme ISO 6523), formes juridiques — pour des formulaires acheteur/vendeur adaptés au pays (depuis v2.29.0)
- Suivi de seuils micro-entrepreneur (`subTenants.getThresholds`) : jauges franchise TVA + plafond micro, projection de franchissement (règles datées loi 2025-1044) ; bascule TVA via `updateFiscalStatus` (depuis v2.30.0)
- Téléchargement des clôtures par sous-tenant (`fiscal.downloadClosing`, filtres `closing_type`/`sub_tenant_id`) + FEC par sous-tenant (depuis v2.30.0)
- Simulateur pré-émission de seuils (`subTenants.simulateThresholds`) : vérifier un franchissement AVANT d'émettre une facture (depuis v2.31.0)
- Contrat avoir explicite : un avoir partiel SÉLECTIONNE des lignes de la facture (`items[].invoice_line_id`), TVA exacte héritée par ligne (multi-taux) ; `remainingCreditable` typé (depuis v2.32.0)
- Déconnexion / reconnexion forcée SuperPDP d'un sous-tenant (`subTenants.superpdpDisconnect` / `superpdpReconnect`) + jeton signé 24h pour le widget en mode SuperPDP seul (`superpdpWidgetToken`) (depuis v3.1.0)
- Aperçu HTML live d'un document en cours de saisie (`documents.preview`), upload direct du logo e-mail (`branding.tenant.uploadLogoFile` / `branding.subTenants.uploadLogoFile`), overrides d'aperçu branding non persistés (`branding.tenant.preview(overrides)`) et dérivation des couleurs du template depuis le logo (`invoiceTemplates.deriveColorsFromEmailLogo`) (depuis v3.2.0)
- Groupes d'acomptes (deals multi-factures) `invoices.depositGroups()` / `depositGroup(id)`, assistant de mentions légales `invoiceMentions.assistant()` / `preview()`, échéancier de devis câblé `quotes.paymentSchedule`, couleurs dérivées du logo de facture `invoiceTemplates.deriveColorsFromInvoiceLogo()` + aperçu template `invoiceTemplates.preview()` ; correctifs devis `quotes.regeneratePublicLink` / `revokePublicLink` / `preview` (depuis v3.5.0)