Skip to main content
What's new

Changelog

All Scell.io API updates

  1. Feature
    v2.25.0

    Factur-X BT-81 compliance: standardized payment means on mark-paid

    • Backend — New `PaymentMeansCode` enum (11 UN/ECE 4461 codes: 1, 10 cash, 20 cheque, 30 credit transfer, 42 payment to account, 48 card, 49 direct debit, 57 standing agreement, 58 SEPA SCT, 59 SEPA SDD, 97 clearing) with FR/EN labels
    • Backend — POST /v1/invoices/{id}/mark-paid endpoint now requires `payment_means_code` (with optional `payment_means_text` for free-form bank label). 3 controllers covered: outgoing invoices, incoming invoices, tenant incoming
    • Backend — Factur-X CII XML now includes `<ram:SpecifiedTradeSettlementPaymentMeans><ram:TypeCode>X</ram:TypeCode>` (was hardcoded to 42 — non-compliant as soon as an invoice was paid by anything other than direct bank transfer)
    • Backend — Migration adds `payment_means_code` (varchar 2) + `payment_means_text` (varchar 100) columns on invoices + credit_notes (nullable, backward compatible on historical invoices)
    • Dashboard — Antd "Mark as paid" modal with payment-means Select (common B2B France codes prioritized: SEPA credit transfer, classic transfer, cheque, card, direct debit, cash), optional bank label field, default = 58 (SEPA transfer)
    • PHP SDK scell/sdk v2.25.0 — `Scell\Sdk\Enums\PaymentMeansCode` enum + `InvoicesResource::markPaid()` with required param
    • TypeScript SDK @scell/sdk v2.25.0 — `PaymentMeansCode` union literal type + typed `markPaid()`
    • MCP Agent @scell/mcp-client v2.25.0 — New tools `scell_mark_invoice_paid` + `scell_mark_incoming_invoice_paid` (catalog 96 → 98)
    • Public OpenAPI sync: `PaymentMeansCode` schema exposed + MarkPaidRequest enriched with examples
    • Tests — 9 MarkPaidWithMeansCodeTest tests (22 assertions): enum cast, persistence, strict validation, BT-81 XML generation, backward compat
  2. Platform
    v2.24.0

    SDKs aligned on v2.24: CreditPacks, FEC all, InvoiceTemplates wired, BalanceResource deprecated

    • Backend — Public OpenAPI sync drift 15→0 (4 endpoints + 8 schemas added: VAT context, FEC all, archive-health, API key rotate). 180 paths + 40 schemas documented.
    • Backend — `ApiDocumentation` official SDK mentions bumped to v2.24.0+
    • PHP SDK `scell/sdk` v2.24.0 — public `CreditPacksResource`, `BillingResource::listPacks()` + `checkoutPack()`, cross sub-tenant `FiscalResource::exportFecAll()`, `TenantIncomingInvoiceResource::dispute()`, typed `PaymentSchedulePreset` DTO. `BalanceResource` marked `@deprecated` (endpoints removed backend 2026-05-10). Tests 156→191 (920 assertions). PHPStan clean.
    • TypeScript SDK `@scell/sdk` v2.24.0 — `client.invoiceTemplates` now wired (was orphan), `client.version()` helper for drift detection, public `client.creditPacks`, 3 broken Fiscal doublon methods removed. `BalanceResource` marked `@deprecated`. Tests 118→133 (15 new). Zero runtime dependencies preserved.
    • MCP Agent `@scell/mcp-client` v2.24.0 — **24 new tools** (catalog 72→96): Buyers (5), Invoice Templates (6), Branding (3), Billing (4), Credit Packs (2), Sub-Tenant CRUD (4). Fixed `VERSION` CLI const (frozen since v2.15 at 2.14.0), fixed header tools count, fixed `scell_tenant_list_signatures` description (removed obsolete `403 COMPANY_REQUIRED` ref). 190/190 tests green.
    • Site — `/sdk` page updated with the 3 v2.24.0 versions + "96 tools" mention on the MCP card. `/api-docs` page (Swagger UI) serves the synced OpenAPI.
    • PostHog EU project 188671 activated on all 3 sites (Next.js website + Vite dashboard) — privacy-first product analytics, consent-aware via P2.21 store, active PII blocklist, host `eu.i.posthog.com` (GDPR).
    • llms.txt docs (PHP, TS, MCP) — v2.24.0 sections added with features and notes (Refund not applicable SDK-side: goes via CreditNote or Stripe webhook).
  3. Feature
    v2.23.0

    Exhaustive enum coverage in SDKs + docs

    • PHP SDK scell/sdk v2.21.0 — 19 enums exposed under `Scell\Sdk\Enums\*` (8 PHP BackedEnums synced via back→front codegen + 11 string enums backed by PostgreSQL CHECK constraints)
    • TypeScript SDK @scell/sdk v2.23.0 — same 19 enums exposed as strict union types (`InvoiceType`, `QuoteStatus`, `VatCategory`, `SignatureStatus`, etc.)
    • MCP Agent @scell/mcp-client v2.22.0 — tool descriptions enriched with allowed values for the 19 enums (the LLM now sees the full API vocabulary)
    • Exposed enums: `InvoiceTemplateKind`, `InvoiceType`, `PaymentScheduleLineAmountType`, `PaymentScheduleLineStatus`, `QuoteStatus`, `QuoteAuditAction` (21 values), `SubTenantOnboardingStatus`, `VatCategory` (8 EN16931 categories)
    • DB enums: `CreditNoteStatus`, `CreditNoteType`, `SignatureStatus`, `SignatureArchiveStatus`, `InvoiceArchiveStatus`, `TenantKybStatus`, `CompanyStatus`, `ApiKeyStatus`, `TenantInvoiceStatus`, `TenantTransactionType`, `OnboardingSessionStatus`
    • Website — new "Enums & Statuses" section on the /sdk page listing the 19 enums with values and description (no more guessing on quote, signature, sub-tenant statuses…)
    • llms.txt documentation (PHP, TS, MCP) — "Enums & statuses" section aligned 1:1 with the SDK code
  4. Feature
    v2.22.0

    Automatic refunded status on invoices with credit notes

    • Backend — new `refunded` and `partially_refunded` statuses added to the invoice check constraint (16 statuses total)
    • Backend — `CreditNoteObserver` automatically sets the status on credit note validate: `refunded` when sum of credit notes ≥ total incl. VAT, otherwise `partially_refunded`
    • Backend — new `refund_status` (none|partial|full) and `total_refunded` (float) fields exposed on every Invoice payload (GET /invoices, GET /invoices/{id})
    • Backend — retroactive backfill applied in prod: 1 invoice impacted (QRCOM-202605-00001) realigned to a coherent `partially_refunded`
    • PHP SDK scell/sdk v2.20.0 — complete `InvoiceStatus` enum (16 values) + `refund_status` and `total_refunded` fields on the Invoice DTO
    • TypeScript SDK @scell/sdk v2.22.0 — exhaustive `InvoiceStatus` union type + `refund_status` and `total_refunded` on the Invoice interface
    • MCP Agent @scell/mcp-client v2.21.0 — enriched tool descriptions for invoice tools with the new statuses and refund_* fields
    • Dashboard — "Mark paid" button hidden as soon as a validated credit note exists on the invoice (business inconsistency prevented client-side)
    • Bonus fix — signed quote PDF: stamp rendered as a clean image (instead of raw text) + second-precise timestamp
    • Bonus fix — mark-paid endpoint: target status corrected to `completed` (not `paid`) to match the ISCA workflow, fixes the historical 500
    • Bonus fix — deposit/balance invoice wizard: buyer is now pre-filled from the source quote (parity with the standard mode)
  5. Feature
    v2.21.0

    Standard invoice from a quote + critical fixes for quote signature & UX

    • New: POST /api/v1/invoices accepts parent_quote_id for standard invoices — invoice↔quote link preserved (tenant-scoped anti-IDOR)
    • Dashboard — "Create invoice" button on quote drawer: redirects to the wizard pre-filled (lines + buyer copied from quote)
    • Dashboard — "Pre-fill from a quote" selector directly in the create invoice wizard (standard mode)
    • Dashboard — "To invoice" total now reactive on keystroke in the deposit modal AND in the invoice wizard (bug fix: value was not updating on %/€ switch or scroll)
    • PHP SDK scell/sdk v2.19.0 — fluent method $builder->parentQuoteId() + payload fix (the field was silently dropped since v2.15.0)
    • TypeScript SDK @scell/sdk v2.21.0 — parent_quote_id field on CreateInvoiceInput
    • MCP Agent @scell/mcp-client v2.20.0 — parentQuoteId field on the scell_create_invoice tool
    • Critical fix — handwritten signature canvas on public quotes (static import of signature_pad, fixes empty bundle in production)
    • Critical fix — CSRF 419 on public quote accept/refuse (api/v1/public/quotes/* routes excluded from stateful Sanctum middleware)
    • Public quote confirmation page — "Close window" button (window.close + fallback hint) instead of back to home
  6. Feature
    v2.16.0

    SDKs — Full invoices & credit notes CRUD + mark-paid

    • TypeScript SDK @scell/sdk v2.16.0 — invoices.update(), invoices.delete(), creditNotes.update(), creditNotes.delete() (draft only, ISCA compliance)
    • PHP SDK scell/sdk v2.14.0 — same update/delete methods added on PHP side
    • MCP Agent @scell/mcp-client v2.15.0 — new scell_mark_invoice_paid tool (mark outgoing invoice as paid)
    • API Backend — POST /invoices/{id}/mark-paid for outgoing invoices (validated/transmitted/sent/accepted statuses)
    • /sdk page overhauled — examples with complete payloads verified against backend, Quotes & Payment Schedule sections added, menu reordered
    • llms.txt documentation updated (API + MCP)
  7. Feature
    v1.9.0

    MCP Agent + Official SDKs

    • TypeScript SDK @scell/sdk v1.10.0 — 16 resources, full type coverage
    • PHP SDK scell/sdk — native Laravel integration, 16 resources
    • MCP Agent @scell/mcp-client v1.5.0 — 33 tools for Claude, Cursor, VS Code
    • Public llms.txt and openapi.json files for AI consumption
  8. Platform
    v1.5.0

    Multi-tenant B2B + ISCA Compliance

    • Full Tenant API: sub-tenants, delegated billing, consolidated billing
    • ISCA self-certification: attestation, technical dossier, measures register
    • Immutable fiscal ledger with SHA-256 hash chain
    • FEC export (French accounting entries file) for tax authorities
    • Emergency fiscal kill-switch
  9. Feature
    v1.2.0

    Full Factur-X Support

    • Automatic generation of compliant PDF/A-3 files
    • Validation of BASIC, EN 16931 and EXTENDED profiles
    • Conversion between formats (Factur-X, UBL 2.1, CII D16B)
    • Native Reliable Audit Trail (PAF) support
  10. Platform
    v1.1.0

    eIDAS Signatures Overhaul

    • Multi-signer support (sequential and parallel)
    • SMS OTP through our certified signature partner — included in per-signer price
    • Customisable invitation emails
    • Webhooks signature.signed, signature.completed, signature.expired
    • Timestamped proof file with 10-year archiving
  11. Launch
    v1.0.0

    Public Launch

    • REST API open in public beta
    • Electronic Invoicing and eIDAS EU-SES Signature modules
    • Free sandbox with sk_test_ keys
    • Web dashboard for managing invoices and signatures
    • HMAC-SHA256 webhooks with automatic retry

Your cookie preferences

We use cookies to improve your experience. Essential cookies are always active. Cookie policy.