Référence développeur

SDKs officiels & Référence API

La référence complète pour intégrer Scell.io. SDKs type-safe pour TypeScript et PHP, plus un agent MCP pour les workflows IA. Chaque ressource, chaque méthode, entièrement documentée.

TypeScript

TypeScript SDK

TypeScript / JavaScript

v1.10.0

Installation

npm install @scell/sdk

Fonctionnalités

  • Typage TypeScript complet
  • API async/await basée sur les Promises
  • 3 classes client (Bearer, API Key, Tenant)
  • Factures, Signatures, Fiscal, Webhooks
  • Support multi-tenant intégré
  • Mode sandbox avec préfixes sk_test_ / tk_test_
PHP

PHP SDK

PHP 8.2+

latest

Installation

composer require scell/sdk

Fonctionnalités

  • PHP 8.2+ avec types stricts
  • Autoloading PSR-4
  • Auto-discovery Laravel (config/scell.php)
  • 3 classes client (Bearer, API Key, Tenant)
  • Factures, Signatures, Fiscal, Webhooks
  • Mode sandbox intégré
🤖

MCP Agent

Claude Desktop / Cursor / VS Code

v1.6.0

Installation

npx @scell/mcp-client claude <your-api-key>

Fonctionnalités

  • Compatible protocole MCP
  • Claude Desktop, Cursor, VS Code
  • 33 outils pour factures, signatures, fiscal
  • Zéro dépendance d'exécution
  • Support du mode sandbox

Installation

Installez le SDK officiel Scell.io pour votre plateforme. Les trois options se connectent à la même API.

TypeScript / PHP

terminal
typescript
npm install @scell/sdk
# or with yarn
yarn add @scell/sdk
# or with pnpm
pnpm add @scell/sdk

MCP Agent

terminal
bash
# Claude Desktop
npx @scell/mcp-client claude YOUR_API_KEY

# Cursor
npx @scell/mcp-client cursor YOUR_API_KEY

# VS Code
npx @scell/mcp-client vscode YOUR_API_KEY

Authentification

Scell.io supporte trois modes d'authentification, chacun avec une classe client dédiée.

ModeClasse clientPréfixe de cléCas d'usage
Bearer TokenScellClientSanctum tokenSessions dashboard, opérations utilisateur
API KeyScellApiClientsk_live_* / sk_test_*Serveur à serveur, intégrations backend
Tenant KeyScellTenantClienttk_live_* / tk_test_*Plateformes partenaires multi-tenant

Bearer Token (Dashboard)

Utilisez ScellClient avec un bearer token Sanctum pour les opérations utilisateur dashboard. Ressources : auth, companies, apiKeys, balance, webhooks, invoices (lecture), signatures (lecture).

auth-bearer.ts
typescript
import { ScellClient } from '@scell/sdk';
// Authenticate with a Sanctum bearer token (dashboard sessions)
const client = new ScellClient('your_bearer_token');
// Resources available on ScellClient:
// client.auth — login, register, logout, me
// client.companies — CRUD on companies + KYC
// client.apiKeys — manage API keys
// client.balance — check balance, reload, transactions
// client.webhooks — manage webhooks
// client.invoices — read-only invoice access
// client.signatures — read-only signature access
const me = await client.auth.me();
console.log(me.email);

Clé API (Serveur à serveur)

Utilisez ScellApiClient avec une clé secrète (sk_live_* ou sk_test_*) pour les opérations serveur à serveur complètes. Ressources : invoices, signatures, creditNotes, subTenants, fiscal, stats, billing, tenantInvoices, tenantCreditNotes, incomingInvoices.

auth-api-key.ts
typescript
import { ScellApiClient } from '@scell/sdk';
// Production
const client = new ScellApiClient('sk_live_your_api_key');
// Sandbox mode (sk_test_ prefix)
const sandbox = new ScellApiClient('sk_test_your_api_key');
// Resources available on ScellApiClient:
// client.invoices — full invoice CRUD + submit + download
// client.signatures — full signature CRUD + cancel + remind
// client.creditNotes — credit note management
// client.subTenants — manage sub-tenants
// client.fiscal — fiscal compliance (NF525/ISCA)
// client.stats — overview + monthly statistics
// client.billing — billing, usage, top-up
// client.tenantInvoices — tenant direct invoices
// client.tenantCreditNotes — tenant credit notes
// client.incomingInvoices — incoming invoice management

Clé Tenant (Partenaire multi-tenant)

Utilisez ScellTenantClient avec une clé tenant (tk_live_* ou tk_test_*) pour les opérations partenaires multi-tenant. Expose aussi les méthodes directes : me(), updateProfile(), balance(), quickStats(), regenerateKey().

auth-tenant.ts
typescript
import { ScellTenantClient } from '@scell/sdk';
// Production
const client = new ScellTenantClient('tk_live_your_tenant_key');
// Sandbox mode
const sandbox = new ScellTenantClient('tk_test_your_tenant_key');
// Resources:
// client.directInvoices — create invoices for sub-tenants
// client.directCreditNotes — create credit notes
// client.incomingInvoices — manage incoming invoices
// client.subTenantCreditNotes — sub-tenant credit notes
// client.fiscal — fiscal compliance
// client.billing — billing & usage
// client.stats — statistics
// client.subTenants — manage sub-tenants
// Direct methods on ScellTenantClient:
// client.me() — tenant profile
// client.updateProfile() — update profile
// client.balance() — check balance
// client.quickStats() — summary stats
// client.regenerateKey() — regenerate tenant key

Référence API

Référence complète des méthodes pour chaque ressource SDK. Exemples de code en TypeScript et PHP pour chaque ressource.

Factures

7 méthodes

Créez, validez, soumettez et téléchargez des factures électroniques aux formats Factur-X, UBL et CII. Disponible sur ScellApiClient (CRUD complet) et ScellClient (lecture seule).

MéthodeDescription
list(options?)Lister les factures avec pagination et filtres optionnels
get(id)Obtenir une facture par son UUID
create(data)Créer une facture (format Factur-X, UBL ou CII)
submit(id)Soumettre une facture validée au réseau PDP
download(id, type)Télécharger en PDF ou XML. type : "pdf" | "xml" | "facturx"
auditTrail(id)Obtenir la piste d'audit complète (création, validation, soumission…)
convert(data)Convertir entre formats de facture (Factur-X, UBL, CII)
invoices.ts
typescript
import { ScellApiClient } from '@scell/sdk';
const scell = new ScellApiClient('sk_live_your_api_key');
// Create a Factur-X invoice
const invoice = await scell.invoices.create({
format: 'facturx',
issue_date: '2026-03-30',
due_date: '2026-04-30',
currency: 'EUR',
seller: {
name: 'ACME Corp',
siren: '123456789',
vat_number: 'FR12345678901',
address: {
street: '10 Rue de la Paix',
city: 'Paris',
postal_code: '75002',
country: 'FR',
},
},
buyer: {
name: 'Client SA',
siren: '987654321',
vat_number: 'FR98765432100',
address: {
street: '5 Avenue des Champs',
city: 'Lyon',
postal_code: '69001',
country: 'FR',
},
},
lines: [
{
description: 'Consulting services',
quantity: 10,
unit_price: 150.00,
vat_rate: 20.0,
},
],
});
console.log(invoice.id); // UUID
console.log(invoice.status); // 'draft' | 'validated' | ...
console.log(invoice.total_amount);
// Submit invoice to PDP
await scell.invoices.submit(invoice.id);
// Download PDF
const pdf = await scell.invoices.download(invoice.id, 'pdf');
// Get audit trail
const trail = await scell.invoices.auditTrail(invoice.id);

Signatures

6 méthodes

Créez des demandes de signature électronique simple eIDAS EU-SES avec authentification SMS OTP. Supporte plusieurs signataires, signature ordonnée et URLs de redirection. Disponible sur ScellApiClient.

MéthodeDescription
list(options?)Lister les demandes de signature avec filtres optionnels
get(id)Obtenir une demande de signature par ID
create(data)Créer une demande de signature eIDAS EU-SES
cancel(id)Annuler une demande de signature en attente
remind(id)Envoyer une relance aux signataires en attente
download(id, type)Télécharger le document signé ou le fichier de preuve
signatures.ts
typescript
import { ScellApiClient } from '@scell/sdk';
const scell = new ScellApiClient('sk_live_your_api_key');
const signature = await scell.signatures.create({
name: 'Service Agreement Q2 2026',
document: {
content: 'base64_encoded_pdf_content_here',
filename: 'agreement.pdf',
},
signers: [
{
first_name: 'Jean',
last_name: 'Dupont',
email: 'jean.dupont@example.com',
phone: '+33612345678',
},
{
first_name: 'Marie',
last_name: 'Martin',
email: 'marie.martin@example.com',
phone: '+33698765432',
},
],
message: 'Please review and sign this agreement.',
ordered: true,
redirect_url: 'https://yourapp.com/signature/complete',
});
console.log(signature.id);
console.log(signature.status); // 'pending' | 'completed' | ...
console.log(signature.signing_url);
// Cancel a signature request
await scell.signatures.cancel(signature.id);
// Send a reminder
await scell.signatures.remind(signature.id);
// Download the signed document
const signed = await scell.signatures.download(signature.id, 'signed');

Avoirs

6 méthodes

Créez des avoirs liés à des factures existantes. Supporte les remboursements partiels et totaux. Disponible sur ScellApiClient.

MéthodeDescription
list()Lister tous les avoirs
get(id)Obtenir un avoir par ID
create(data)Créer un avoir lié à une facture
delete(id)Supprimer un avoir en brouillon
download(id)Télécharger l'avoir en PDF
send(id)Envoyer l'avoir au destinataire
credit-notes.ts
typescript
import { ScellApiClient } from '@scell/sdk';
const scell = new ScellApiClient('sk_live_your_api_key');
// Create a credit note linked to an invoice
const creditNote = await scell.creditNotes.create({
invoice_id: 'inv_uuid_here',
reason: 'Partial refund for returned goods',
lines: [
{
description: 'Returned item refund',
quantity: 2,
unit_price: 75.00,
vat_rate: 20.0,
},
],
});
console.log(creditNote.id);
console.log(creditNote.status);
// List all credit notes
const list = await scell.creditNotes.list();
// Download as PDF
const pdf = await scell.creditNotes.download(creditNote.id);
// Send to recipient
await scell.creditNotes.send(creditNote.id);

Entreprises

7 méthodes

Gérez les entités entreprises avec leurs informations légales (SIREN, numéro TVA, adresse). Inclut le flux de vérification KYC/KYB. Disponible sur ScellClient (Bearer token).

MéthodeDescription
list()Lister toutes les entreprises de l'utilisateur authentifié
get(id)Obtenir une entreprise par ID
create(data)Enregistrer une nouvelle entreprise avec ses données légales
update(id, data)Mettre à jour les informations de l'entreprise
delete(id)Supprimer une entreprise
initiateKyc(id)Démarrer le processus de vérification KYC/KYB
kycStatus(id)Vérifier le statut actuel de la vérification KYC
companies.ts
typescript
import { ScellClient } from '@scell/sdk';
const client = new ScellClient('your_bearer_token');
// Create a company
const company = await client.companies.create({
name: 'ACME Corp',
siren: '123456789',
vat_number: 'FR12345678901',
address: {
street: '10 Rue de la Paix',
city: 'Paris',
postal_code: '75002',
country: 'FR',
},
});
// List all companies
const companies = await client.companies.list();
// Update a company
await client.companies.update(company.id, { name: 'ACME Corp Updated' });
// Initiate KYC/KYB verification
await client.companies.initiateKyc(company.id);
// Check KYC status
const kyc = await client.companies.kycStatus(company.id);
console.log(kyc.status); // 'pending' | 'approved' | 'rejected'

Clés API

4 méthodes

Créez et gérez des clés API pour l'authentification serveur à serveur. Les clés peuvent être live (sk_live_*) ou sandbox (sk_test_*). La valeur de la clé secrète n'est affichée qu'une seule fois à la création. Disponible sur ScellClient (Bearer token).

MéthodeDescription
list()Lister toutes les clés API du compte
get(id)Obtenir une clé API par ID (valeur masquée)
create(data)Créer une nouvelle clé API (environnement live ou test)
delete(id)Révoquer et supprimer une clé API
api-keys.ts
typescript
import { ScellClient } from '@scell/sdk';
const client = new ScellClient('your_bearer_token');
// Create a new API key
const key = await client.apiKeys.create({
name: 'Production Key',
environment: 'live', // 'live' | 'test'
});
console.log(key.id);
console.log(key.key); // sk_live_... (shown only once)
// List all API keys
const keys = await client.apiKeys.list();
// Delete an API key
await client.apiKeys.delete(key.id);

Solde

4 méthodes

Consultez le solde de crédits, rechargez des crédits, configurez les alertes de solde faible et visualisez l'historique des transactions. Disponible sur ScellClient (Bearer token).

MéthodeDescription
get()Obtenir le solde de crédits et la devise
reload(data)Recharger les crédits avec un moyen de paiement
updateSettings(data)Mettre à jour le seuil d'alerte et la recharge automatique
transactions()Lister toutes les transactions de crédits (achats, consommations, recharges)
balance.ts
typescript
import { ScellClient } from '@scell/sdk';
const client = new ScellClient('your_bearer_token');
// Get current balance
const balance = await client.balance.get();
console.log(balance.credits);
console.log(balance.currency);
// Reload credits
await client.balance.reload({
amount: 500,
payment_method: 'card',
});
// Update alert settings
await client.balance.updateSettings({
low_balance_threshold: 50,
auto_reload: true,
auto_reload_amount: 200,
});
// List credit transactions
const transactions = await client.balance.transactions();

Webhooks

8 méthodes

Gérez les endpoints webhook pour recevoir des notifications en temps réel. Chaque webhook possède un secret de signature (wh_sec_*) pour la vérification HMAC-SHA256. Supporte le filtrage d'événements, les tests et les journaux de livraison. Disponible sur ScellClient (Bearer token).

MéthodeDescription
list()Lister tous les endpoints webhook
get(id)Obtenir les détails d'un webhook par ID
create(data)Créer un endpoint webhook avec abonnements aux événements
update(id, data)Mettre à jour l'URL, les événements ou le statut actif
delete(id)Supprimer un endpoint webhook
test(id)Envoyer un payload de test à l'URL du webhook
regenerateSecret(id)Régénérer le secret de signature du webhook (wh_sec_…)
logs(id)Voir les journaux de livraison et codes de réponse
webhooks.ts
typescript
import { ScellClient } from '@scell/sdk';
const client = new ScellClient('your_bearer_token');
// Create a webhook endpoint
const webhook = await client.webhooks.create({
url: 'https://yourapp.com/webhooks/scell',
events: [
'invoice.created',
'invoice.validated',
'signature.completed',
'balance.low',
],
active: true,
});
console.log(webhook.id);
console.log(webhook.secret); // wh_sec_... (for signature verification)
// List all webhooks
const list = await client.webhooks.list();
// Update a webhook
await client.webhooks.update(webhook.id, {
events: ['invoice.created', 'signature.completed'],
});
// Test a webhook (sends a test payload)
await client.webhooks.test(webhook.id);
// Regenerate the signing secret
const newSecret = await client.webhooks.regenerateSecret(webhook.id);
// View delivery logs
const logs = await client.webhooks.logs(webhook.id);
// Delete a webhook
await client.webhooks.delete(webhook.id);

Conformité fiscale

22 méthodes

Suite complète de conformité fiscale NF525/ISCA. Registre immuable avec chaîne de hachage SHA-256, clôtures journalières/mensuelles, ancrage TSA RFC 3161, export FEC, kill switch d'arrêt d'urgence et moteur de règles pour l'automatisation. Disponible sur ScellApiClient et ScellTenantClient.

MéthodeDescription
compliance()Obtenir le statut global de conformité fiscale (NF525)
entries()Lister les entrées du registre immuable SHA-256
closings()Lister les clôtures journalières et mensuelles
dailyClosing()Déclencher une clôture journalière immédiate
integrity()Lancer une vérification complète de la chaîne de hachage
integrityHistory()Obtenir l'historique de toutes les vérifications d'intégrité
integrityForDate(date)Vérifier l'intégrité pour une date précise
rules()Lister toutes les règles d'automatisation fiscale
createRule(data)Créer une règle fiscale (clé, valeur, description)
updateRule(id, data)Mettre à jour une règle fiscale existante
ruleDetail(key)Obtenir les détails d'une règle fiscale par clé
ruleHistory(key)Obtenir l'historique des modifications d'une règle
exportRules()Exporter toutes les règles fiscales en fichier téléchargeable
replayRules()Rejouer toutes les règles fiscales (recalculer les données dérivées)
anchors()Lister les ancres de timestamping TSA RFC 3161
killSwitchStatus()Obtenir le statut du kill switch (arrêt d'urgence)
activateKillSwitch()Activer le kill switch (suspend toutes les opérations fiscales)
deactivateKillSwitch()Désactiver le kill switch (reprendre les opérations)
fecExport()Générer l'export FEC pour les autorités fiscales françaises
forensicExport()Générer un export forensique avec données d'audit complètes
attestation(year)Obtenir l'attestation de conformité NF525 pour une année
attestationDownload(year)Télécharger le PDF de l'attestation pour une année
fiscal.ts
typescript
import { ScellApiClient } from '@scell/sdk';
const scell = new ScellApiClient('sk_live_your_api_key');
// ─── Compliance overview ───────────────────────────────
const status = await scell.fiscal.compliance();
console.log(status.is_compliant); // true | false
console.log(status.nf525_status);
// ─── Immutable ledger entries ──────────────────────────
const entries = await scell.fiscal.entries();
// ─── Closings ──────────────────────────────────────────
const closings = await scell.fiscal.closings();
await scell.fiscal.dailyClosing(); // Trigger a daily closing
// ─── Integrity verification ───────────────────────────
const integrity = await scell.fiscal.integrity();
const history = await scell.fiscal.integrityHistory();
const forDate = await scell.fiscal.integrityForDate('2026-03-30');
// ─── Fiscal rules engine ──────────────────────────────
const rules = await scell.fiscal.rules();
const newRule = await scell.fiscal.createRule({
key: 'auto_daily_closing',
value: true,
description: 'Automatically trigger daily closings at midnight',
});
await scell.fiscal.updateRule(newRule.id, { value: false });
const detail = await scell.fiscal.ruleDetail('auto_daily_closing');
const ruleHist = await scell.fiscal.ruleHistory('auto_daily_closing');
await scell.fiscal.exportRules();
await scell.fiscal.replayRules();
// ─── TSA Anchors ──────────────────────────────────────
const anchors = await scell.fiscal.anchors();
// ─── Kill switch ──────────────────────────────────────
const ksStatus = await scell.fiscal.killSwitchStatus();
await scell.fiscal.activateKillSwitch();
await scell.fiscal.deactivateKillSwitch();
// ─── Exports ──────────────────────────────────────────
const fec = await scell.fiscal.fecExport();
const forensic = await scell.fiscal.forensicExport();
const attestation = await scell.fiscal.attestation(2026);
const download = await scell.fiscal.attestationDownload(2026);

Statistiques

2 méthodes

Obtenez des statistiques agrégées et mensuelles pour les factures, signatures et revenus. Disponible sur ScellApiClient et ScellTenantClient.

MéthodeDescription
overview()Obtenir les statistiques agrégées (factures, signatures, revenus)
monthly()Obtenir la ventilation mois par mois de l'activité et des revenus
stats.ts
typescript
import { ScellApiClient } from '@scell/sdk';
const scell = new ScellApiClient('sk_live_your_api_key');
// Get overview statistics
const overview = await scell.stats.overview();
console.log(overview.total_invoices);
console.log(overview.total_signatures);
console.log(overview.total_revenue);
// Get monthly breakdown
const monthly = await scell.stats.monthly();
monthly.forEach(m => {
console.log(m.month, m.invoices_count, m.revenue);
});

Facturation

7 méthodes

Gérez les factures Scell.io, consultez les métriques d'utilisation, rechargez des crédits et listez les transactions de facturation. Disponible sur ScellApiClient et ScellTenantClient.

MéthodeDescription
invoices()Lister toutes les factures de facturation Scell.io
showInvoice(id)Obtenir les détails d'une facture de facturation
downloadInvoice(id)Télécharger une facture de facturation en PDF
usage()Obtenir les métriques d'utilisation de la période en cours
topUp(data)Initier une recharge de crédits
confirmTopUp(data)Confirmer une recharge en attente avec le code de confirmation
transactions()Lister toutes les transactions de facturation
billing.ts
typescript
import { ScellApiClient } from '@scell/sdk';
const scell = new ScellApiClient('sk_live_your_api_key');
// List billing invoices
const invoices = await scell.billing.invoices();
// Get a specific billing invoice
const inv = await scell.billing.showInvoice('billing_inv_id');
// Download billing invoice PDF
const pdf = await scell.billing.downloadInvoice('billing_inv_id');
// Get current usage metrics
const usage = await scell.billing.usage();
console.log(usage.invoices_used);
console.log(usage.signatures_used);
console.log(usage.credits_remaining);
// Top up credits
await scell.billing.topUp({ amount: 100, payment_method: 'card' });
// Confirm a pending top-up
await scell.billing.confirmTopUp({ top_up_id: 'tu_id', confirmation_code: '1234' });
// List billing transactions
const transactions = await scell.billing.transactions();

Sous-tenants

7 méthodes

Gérez les sous-tenants pour les plateformes partenaires multi-tenant. Chaque sous-tenant obtient sa propre clé tenant (tk_live_*) et peut être identifié par votre système d'ID externe. Disponible sur ScellApiClient et ScellTenantClient.

MéthodeDescription
list()Lister tous les sous-tenants
get(id)Obtenir les détails d'un sous-tenant par ID
create(data)Créer un sous-tenant avec les données de l'entreprise
update(id, data)Mettre à jour les informations d'un sous-tenant
delete(id)Supprimer un sous-tenant
findByExternalId(externalId)Rechercher un sous-tenant par votre ID externe
statsOverview(id)Obtenir les statistiques d'utilisation d'un sous-tenant
sub-tenants.ts
typescript
import { ScellApiClient } from '@scell/sdk';
const scell = new ScellApiClient('sk_live_your_api_key');
// Create a sub-tenant
const tenant = await scell.subTenants.create({
name: 'Partner Corp',
external_id: 'partner-001',
email: 'admin@partner-corp.com',
company: {
name: 'Partner Corp',
siren: '111222333',
address: {
street: '20 Boulevard Haussmann',
city: 'Paris',
postal_code: '75009',
country: 'FR',
},
},
});
console.log(tenant.id);
console.log(tenant.tenant_key); // tk_live_...
// List all sub-tenants
const list = await scell.subTenants.list();
// Get a specific sub-tenant
const detail = await scell.subTenants.get(tenant.id);
// Find by external ID
const found = await scell.subTenants.findByExternalId('partner-001');
// Update a sub-tenant
await scell.subTenants.update(tenant.id, { name: 'Partner Corp (Updated)' });
// Get sub-tenant stats
const stats = await scell.subTenants.statsOverview(tenant.id);
// Delete a sub-tenant
await scell.subTenants.delete(tenant.id);

MCP Agent@scell/mcp-client v1.6.0

Utilisez Scell.io directement depuis votre assistant IA. L'agent MCP expose 33 outils permettant à Claude, Cursor ou VS Code Copilot de créer des factures, gérer des signatures et surveiller la conformité fiscale en langage naturel.

Configuration

terminal
bash
# Claude Desktop
npx @scell/mcp-client claude YOUR_API_KEY

# Cursor
npx @scell/mcp-client cursor YOUR_API_KEY

# VS Code
npx @scell/mcp-client vscode YOUR_API_KEY

Invoices5 outils

OutilDescriptionExemple de prompt
create_invoiceCreate a Factur-X/UBL/CII electronic invoice"Create a Factur-X invoice from ACME Corp to Client SA for 10 hours of consulting at 150 EUR/h"
list_invoicesList all invoices with optional filters"Show me all invoices from this month"
get_invoiceGet details of a specific invoice by ID"Get details for invoice inv_abc123"
submit_invoiceSubmit an invoice to the PDP network"Submit invoice inv_abc123 to the PDP"
download_invoiceDownload an invoice as PDF or XML"Download the PDF for invoice inv_abc123"

Signatures4 outils

OutilDescriptionExemple de prompt
create_signatureCreate an eIDAS EU-SES signature request"Create a signature request for agreement.pdf with 2 signers: Jean Dupont and Marie Martin"
list_signaturesList all signature requests"List all pending signature requests"
get_signatureGet signature request details"What's the status of signature sig_xyz789?"
cancel_signatureCancel a pending signature request"Cancel signature request sig_xyz789"

Credit Notes2 outils

OutilDescriptionExemple de prompt
create_credit_noteCreate a credit note linked to an invoice"Create a credit note for invoice inv_abc123 with a 150 EUR refund"
list_credit_notesList all credit notes"Show all credit notes issued this quarter"

Companies3 outils

OutilDescriptionExemple de prompt
get_companyGet company details"Show me the details for company comp_id"
list_companiesList all registered companies"List all my companies"
create_companyRegister a new company"Register company ACME Corp with SIREN 123456789"

Balance3 outils

OutilDescriptionExemple de prompt
get_balanceGet current credit balance"What's my current credit balance?"
list_transactionsList credit transactions"Show my last 10 credit transactions"
reload_balanceReload credits"Add 500 credits to my balance"

Webhooks2 outils

OutilDescriptionExemple de prompt
list_webhooksList all webhook endpoints"Show all my webhook endpoints"
create_webhookCreate a new webhook endpoint"Create a webhook at https://myapp.com/hook for invoice.created events"

Fiscal12 outils

OutilDescriptionExemple de prompt
get_fiscal_complianceGet fiscal compliance status"Am I NF525 compliant?"
get_fiscal_entriesGet immutable ledger entries"Show the last 50 fiscal entries"
get_fiscal_closingsList daily/monthly closings"Show all fiscal closings for March 2026"
fiscal_daily_closingTrigger a daily fiscal closing"Run the daily fiscal closing now"
get_fiscal_integrityVerify hash chain integrity"Verify fiscal data integrity"
get_fec_exportExport FEC file for tax authorities"Generate the FEC export for 2025"
get_attestationGet NF525 attestation for a year"Get my NF525 attestation for 2025"
get_kill_switch_statusGet kill switch status"Is the kill switch active?"
activate_kill_switchActivate emergency kill switch"Activate the kill switch immediately"
deactivate_kill_switchDeactivate kill switch"Deactivate the kill switch"
get_fiscal_rulesList fiscal automation rules"Show all fiscal rules"
create_fiscal_ruleCreate a fiscal automation rule"Create a rule to auto-close daily at midnight"

Sub-Tenants2 outils

OutilDescriptionExemple de prompt
list_sub_tenantsList all sub-tenants"Show all my sub-tenants"
create_sub_tenantCreate a new sub-tenant"Create a sub-tenant for Partner Corp with external ID partner-001"

Événements webhook

Liste complète des événements webhook auxquels vous pouvez vous abonner. Utilisez ces noms d'événements lors de la création ou la mise à jour des endpoints webhook.

ÉvénementDescription
invoice.createdFacture créée
invoice.validatedFacture validée (Factur-X/UBL généré)
invoice.submittedFacture soumise au PDP
invoice.acceptedFacture acceptée par le destinataire
invoice.rejectedFacture rejetée
invoice.paidFacture marquée comme payée
signature.createdDemande de signature créée
signature.signedDocument signé par un signataire
signature.completedTous les signataires ont signé
signature.declinedSignature refusée
signature.expiredDemande de signature expirée
balance.lowSolde de crédits faible (seuil d'alerte)
balance.depletedSolde de crédits épuisé
kyb.approvedVérification KYB approuvée
kyb.rejectedVérification KYB rejetée

Gestion des erreurs

Toutes les méthodes SDK lèvent des exceptions typées avec des codes de statut HTTP. Gérez les erreurs en fonction du code de statut.

CodeStatutDescription
400Bad RequestCorps de requête malformé ou paramètres invalides
401UnauthorizedIdentifiants d'authentification manquants, invalides ou expirés
402Payment RequiredSolde de crédits insuffisant pour effectuer l'opération
403ForbiddenIdentifiants valides mais permissions insuffisantes sur la ressource
404Not FoundLa ressource demandée n'existe pas
409ConflictRessource déjà existante ou conflit d'état (ex. soumission en doublon)
422Unprocessable EntityErreur de validation. Consultez l'objet errors pour les détails par champ
429Too Many RequestsLimite de taux dépassée. Vérifiez l'en-tête Retry-After
500Server ErrorErreur serveur interne. Réessayez avec un backoff exponentiel
503Service UnavailableService temporairement indisponible. Réessayez après un court délai

Stratégie de relance

  • 1.429 Rate LimitedRespectez l'en-tête Retry-After. Le SDK relance automatiquement jusqu'à 3 fois avec le délai indiqué.
  • 2.500/503 Server ErrorRelancez avec un backoff exponentiel : 1s, 2s, 4s. Max 3 relances. Le SDK gère cela automatiquement.
  • 3.4xx Client ErrorNe relancez pas. Corrigez le payload de la requête ou les identifiants et réessayez.
error-handling.ts
typescript
import { ScellApiClient } from '@scell/sdk';
const scell = new ScellApiClient('sk_live_your_api_key');
try {
const invoice = await scell.invoices.create({ /* ... */ });
} catch (error) {
if (error.status === 422) {
// Validation error — check error.errors for field-level details
console.error('Validation:', error.errors);
// { "seller.siren": ["The siren must be 9 digits."] }
} else if (error.status === 401) {
// Invalid or expired API key
console.error('Authentication failed');
} else if (error.status === 402) {
// Insufficient credits
console.error('Insufficient balance — top up credits');
} else if (error.status === 404) {
// Resource not found
console.error('Resource not found');
} else if (error.status === 429) {
// Rate limited — retry after error.retryAfter seconds
console.error('Rate limited, retry after', error.retryAfter, 'seconds');
} else if (error.status >= 500) {
// Server error — retry with exponential backoff
console.error('Server error, retrying...');
}
}

Prêt à intégrer ?

Créez votre compte et obtenez vos clés API en quelques minutes. Commencez avec 100 crédits offerts.