Summary

This release brings coupons for the first period, quote fields for CRM sync, manual invoice sending, Adyen onboarding (KYC), richer cost predictions, self-service sandbox provisioning, and a broad set of invoicing and Desk fixes.

Pricing

Coupons for the first period Coupons can now be configured to apply to the first period only, so you can give a customer an introductory discount on their first invoice without it carrying over to subsequent periods.

Quotes

First invoice amount stored on the quote The result of a quote’s invoice preview, in particular the first invoice amount, is now stored in a field on the quote. This makes the expected first-invoice value directly available on the quote, so it can be surfaced or synced to an external system such as a CRM (for example Salesforce) without recomputing it.

Custom field on the quote object Quotes can now carry a custom field of their own, letting you store an external identifier (such as a CRM organisation ID) directly on the quote for reconciliation with your other systems.

Invoices

Send invoices manually You can now configure, at platform level, that invoices are only sent manually rather than automatically, giving you a final review step and full control over when an invoice actually goes out to the customer.

Resubmit an e-invoice even when it succeeded It’s now possible to resubmit an e-invoice from the UI even when its status is already SUCCESS or IGNORE. Previously resubmission was only allowed for e-invoices that hadn’t reached those states; you can now re-send when needed regardless of the current status.

Fixes

bug-fix
  • Fixed weekly (WEEK CALENDAR) proration: weekly-priced items were being billed at the full-week rate for partial weeks, and are now prorated correctly.
  • Fixed a case where adding one-off invoice lines could corrupt the invoice due to tax category handling.
  • One-off products that aren’t tied to a subscription now correctly have their sales tax loaded.
  • Fixed an invoice update failing with a “group amount does not match tax category summaries” error when combining percentage-based pricing with a fixed-amount total discount.
  • Added validation when adding a one-off invoice line with flat pricing but no volume.
  • The Desk invoice view now shows the missing information for “Already deducted” one-off deduction lines.

Payments

Adyen onboarding (KYC) This release adds support for Adyen KYC onboarding. A new POST /v1/adyen/kyc/sessions endpoint creates a hosted-onboarding session for a legal entity, and Desk now surfaces the onboarding flow: a warning banner appears on the Payments overview when an active Adyen integration has an unverified legal entity, with an “Update details” action that opens Adyen’s hosted onboarding, and the onboarding component now lives on the payout page. In addition, payment-method tokenization initiated from Desk now uses the correct Moto shopper interaction instead of Ecommerce.

Cost prediction

More detail in the cost prediction response The cost prediction response now includes the wallet balance and the invoice_id, so a prediction carries more of the context you need to act on it without additional lookups.

Reporting

Invoice usage report file-to-file transfer Invoice usage reports can now be delivered via file-to-file transfer. This is far more efficient for very large usage report files, which can be streamed and synced directly instead of being processed line by line.

Sandboxes

Self-service sandbox provisioning You can now provision a sandbox self-service, without manual setup on our side. A sandbox token is requested with an email address and a captcha (for bot protection), and a new sandbox platform is created automatically, including a default payments (Adyen) system integration, so you can start testing payments straight away.

Desk

Choose a role when creating an API key When creating an API key you can now choose its role, ADMINISTRATOR or READ_ONLY, so you can hand out read-only keys where full access isn’t needed.

Fixes

bug-fix
  • Fixed several seat-count editing bugs, including saves failing on draft subscriptions and on schedules with an end date, caused by the frontend re-sending an end_at that the backend assigns itself.
  • Fixed slow loading of subscriptions that have complex pricing plans.