Summary
This release brings invoice export to your ERP from a workflow, Stripe in the hosted checkout, price indexing on schedules that carry their own pricing, and a broad set of pricing, quote and subscription improvements in Desk.
Events
See the subscription behind an event
Events can be ingested against a specific subscription, by passing a pricing plan subscription id or reference on POST /v1/events/ingest, which is useful when you want usage attributed to one subscription directly. The Event panel now shows that pricing plan subscription, and the subscription id is included in the event metadata, so it’s clear which subscription an event was booked against.
Fixes
- Meter values and properties can no longer be archived while they’re still used in meter value calculations that feed active products, which previously could leave a product referencing archived building blocks.
- The meter creation form now shows a usage-metric disclaimer when a value or property is added without a usage metric, and correctly hides the notice once a usage metric exists.
Pricing
Index prices on schedules that carry their own pricing
Price indexing when copying a schedule now also works for schedules that define their pricing directly, rather than by referencing a pricing plan version. This closes the gap between two recent additions, pricing defined directly on a schedule and indexing all prices by a percentage when copying, so direct-priced schedules can be indexed the same way as plan-based ones.
Pricing improvements in Desk
- You can add a new version to an active pricing plan directly, via a “Create new version” button, with a tooltip explaining that a new version is needed to add or edit pricings.
- The only remaining version of a pricing plan can no longer be deleted; instead you can clear it, removing all pricings, so a plan always keeps at least one version.
- When adding a discount, the relevant level is now preselected (invoice-discount level on a schedule, the product when adding to a product, and so on), saving a manual step.
- Conditional pricing is easier to set up, with more explicit actions in the creation panel.
- In the single-currency case, the currency for a new pricing item now defaults to the pricing plan version’s currency.
Fixes
- Archiving a pricing plan version is now blocked while it’s still used by a cancelled schedule, which previously could break invoice refreshes for rate-card schedules with a “no applicable version” error.
Quotes
Sales representatives can complete upgrade quotes
Accepting an upgrade quote shows a modal to update the customer’s details, but a sales representative only had view access to customers and was blocked at that step. Sales representatives now have a customer-contributor capability, so they can complete the acceptance flow without being handed broader customer-management rights.
Fixes
- Quote links and the post-activation redirect now point to the correct subscription. Where a billing subscription existed, the quote overview and the redirect after activating a subscription from a quote could point at the billing subscription instead of the quote’s own subscription.
- Submitting a quote that still has form errors is now blocked, so the finalize call isn’t sent while the form is invalid.
- The company registration number is no longer required when verifying the customer profile during quote acceptance; it is now optional.
Subscriptions
Cancelling an approval request returns the subscription to draft
When an approval request for a subscription is cancelled, the subscription is now set back to DRAFT, so it clearly reflects that it still needs to go through approval rather than being left in an in-between state.
Subscription details in Desk
- Schedule start and end dates are now shown in the collapsed schedule view, and the end date of an initial term is shown on the input when you set one.
- When a customer has no country set, an “Add customer country” shortcut appears in the customer selector while creating a subscription, opening the edit-customer panel inline.
- The Additional details section now shows what’s selected, including when default values apply, instead of hiding the chosen values.
- The recent-invoices list now has a loading state and refreshes automatically once the first invoices have been created after activating a subscription, since they are generated asynchronously.
- The edit-subscription-terms modal now uses radio groups instead of toggles for options such as combining subscriptions and split usage, for a clearer, more consistent form.
Invoices
Mixed tax-inclusive and tax-exclusive prices in combined invoices
When multiple subscriptions are combined onto a single invoice, prices configured including tax and prices configured excluding tax are now handled correctly together on that combined invoice, so the totals are right regardless of how each subscription’s prices were set up.
Fixes
- Fixed invoice preview for rate cards where the rate card doesn’t start on the day of the preview, for example previewing before a rate card’s start date, which previously failed.
Customers
Filter for processing-only customers
You can now filter customers by whether they are processing-only, in both the API and Desk, making it easier to find and work with this group of customers.
Payments
Stripe in the hosted checkout
Stripe payments are now supported in the hosted payment web experience, so customers paying through the hosted checkout can pay via Stripe.
External payments without a payment acceptor
For externally-created payments that Solvimon only receives, rather than initiates, the payment acceptor is no longer required: paymentAcceptorResourceId may be null, since the payment method and acceptor don’t exist in the platform.
Integrations
Export invoices to your ERP from a workflow
A new workflow action lets you export an invoice to your ERP as part of a workflow, so finalised invoices can flow into your accounting system automatically instead of being exported by hand.
Deprecated API fields
The following field is now deprecated. It continues to work for backwards compatibility, but we recommend not relying on it.
total_number_of_pages(paginated list responses): no longer supported; kept only as a legacy page-count value for compatibility.