All Docs
FeaturesCalmony PayUpdated March 15, 2026

v1.0.99: Fixing the Calmony Pay SDK Invoice Interface

v1.0.99: Fixing the Calmony Pay SDK Invoice Interface

What Changed

Release v1.0.99 corrects a specification drift in the Calmony Pay SDK's invoice interface.

The pinned SDK Client Interface specification defines the invoices namespace as having exactly four methods:

MethodDescription
invoices.createCreate a new invoice
invoices.retrieveRetrieve an invoice by ID
invoices.listList invoices
invoices.downloadPdfDownload a PDF copy of an invoice

What Was Wrong

Prior to this release, the implemented SDK exposed eight methods on the invoices namespace:

  • create
  • retrieve
  • update ⚠️ not in spec
  • list
  • finalize
  • pay
  • voidInvoice
  • downloadPdf

While several of these extra methods may be functionally useful, their presence — most critically invoices.update — represented a deviation from the pinned contract that the SDK Client Interface specification defines. Exposing an undocumented and unspecified method on a public interface creates an implicit, unsupported API surface that downstream consumers could come to depend on.

Why This Matters

The Calmony Pay SDK is the single integration point between SaaS Factory products and the payment processing layer. Keeping the SDK's public interface strictly aligned with its pinned specification ensures:

  • Predictability — consumers know exactly what methods are available and supported.
  • Stability — unspecified methods cannot be relied on and may be removed without notice.
  • Auditability — the interface is reviewable against a known source of truth.

Action Required

If your integration calls invoices.update on the Calmony Pay SDK client, that call will no longer be supported after upgrading to v1.0.99. Review all usages of invoices.update in your codebase and replace them with appropriate alternatives before upgrading.

Affected file: src/lib/calmony-pay/client.ts