Release June 16th

Another release before everyone starts thinking more about their vacations than about subscription management!

This release is mostly a bug fixing release. Under the covers we have been hard at work on technical changes to improve average performance, as well as laying the groundwork for future features.

Have a nice summer, and as always, reach out if you have any questions or feedback!

API and Backend

Added

  • [Preview] Automatic cleanup of historic data for a series of entities. Done to ensure automatic compliance with data retention rules and laws (GDPR and similar applicable regulations), and to improve performance by reducing the amount of stale data in the system. The cleanup process will run periodically and remove data that is older than a certain threshold, while ensuring that necessary data for reporting and auditing purposes is retained. This was previously a manual process to be implemented by the tenant.

  • The Invoice endpoint now includes filtering on multiple states using OR semantics.

Changed

  • [Preview] Tailor made subscription plans now support inline chain definitions.

  • Vipps and MobilePay agreements include deactivation time.

  • Reporting now adjusts subscriber order information pro-actively on all orders regardless of payment method. Previously this was only done for Vipps and MobilePay orders.

Fixed

  • [Preview] Payment Matching policies now correctly handle multiple matching states.

  • An issue where the synchronization of Organizations and Products would fail in some cases, leading to missing/invalid data in reports.

  • An issue where rescheduling a Payment Demand Reminder would NOT actually reschedule the due date, but only the processing date.

  • An issue where updating a cancellation time for a subscription would not rerate it, nor credit the outstanding payment demand, which could happen if the subscription was originally cancelled at the end of the billing period.

  • An issue with the Invoice endpoint where it would not respect input time zones for the date filtering fields. These fields are deprecated and better served with the Analytics API, but now they will at least work as intended.

  • Multiple issues with payment matching, discovered by the introduction of policies.

  • An issue in reporting where allowance transaction would not be closed when consumed on a reminder.

  • An issue in reporting where some account transactions would lose tax breakdown information.

  • A very rare edge case issue where subscriptions would not be updated with new subscriber information during orders.

Deprecated

These items will be removed in a future release.

  • The Map User API endpoint in the simplified Order API is now deprecated, and removed from the reference documentation. This endpoint was used to map user identities during subscriber creation and order completion. The functionality has been replaced with a more streamlined approach.

  • Purchased Additional Products in the SubscriptionPlan object will be removed in a future release (Products with IncludedInPlan = false). They can be accessed via the PurchasedAdditionalProducts property on the Subscription object instead. This change was made to better separate the concept of products included in the plan and products that were added on top of the plan.

Merchant Client

Added

  • [Preview] Option to configure tailor made Subscription Plans. This allows merchants to create custom plans for specific subscribers, with a tailored set of products and pricing. This is useful for handling special cases that do not fit into the standard plans, such as one-off offers or grandfathering existing subscribers into legacy plans.

Changed

  • Multitude of minor adjustments to the UI

    • Alignment/Styling for Invoice Contact button in the subscription view.

    • Adjusted scheduled plan changes to make it more clear that they are scheduled and not active.

    • Layout corrections for the price adjustment process.

    • Filtering for configuring ‘next-best-offer’ in checkout.

    • Default sorting on Subscriber list/search view.

  • Multitude of text and language adjustments to make the UI more clear and consistent.

  • Improved user-feedback and performance for actions related to Subscription Plan changes when validating and calculating updated prices specifically.

Fixed

  • An issue where losing the authenticated state would lead to a blank page with no indication of what went wrong. This is now handled with a prompt to re-authenticate.

  • An issue where changing subscriber information would sometimes prompt for a change of payment method when an Invoice Contact was associated.

  • Removed the option for registering payments on a draft/open invoice.

  • Removed the option for crediting already settled Enterprise Plan Payment Demands, as this is not a supported flow and can lead to confusion.

  • An issue where crediting and reissuing an Invoice would lead to an error message in some scenarios.

  • An issue where adding a new order would be blocked due to an invalid handling of an expired Denial Order.

  • An issue where the invoice filtering “eye icon”, would filter ALL invoices in some cases.

Self-Service, Sales Poster and Checkout

Added

  • Added support for displaying scheduled subscription plan changes, similar to the subscription view in Merchant. This allows subscribers to see upcoming changes to their subscription plan, such as a scheduled downgrade or upgrade, and better understand their subscription lifecycle.

Changed

  • Additional state handling improvements for Vipps and MobilePay in checkout when the user navigates back and forth.

Fixed

  • An issue where ‘next-best-offer’ in checkout would be shown multiple times.

  • An issue where invoice lines on subscription with editions would show the time range and not the edition numbers.

  • An issue where one-of payments of reminders would display the original invoice amount instead of the reminder amount (i.e. without the added fees or reductions by allowances).

  • An issue in checkout where invoice fees was not shown in the order summary.

Release May 13th

We are back with another release, it has been almost two months since the last one. The release includes a mix of new features, improvements to existing functionality, and bug fixes across the API, Backend, Merchant Client, Self-Service, Sales Poster and Checkout. Notable features in terms of the business impact include the support for preventing churn and presenting next-best-offers in checkout and self-service.

In addition to the public facing changes listed below, there are also a number of internal improvements and optimizations that have been made to enhance the overall performance and reliability of the system, as well as paving the way for future features.

API and Backend

Added

  • [Preview] Introduced configuration options to allow Payment matching on paid and credited demands and invoices. This might be useful when consumers have configured fixed bank transfers instead of relying on the invoice and the associated ExternalInvoiceIdentifier.

  • [Preview] A configuration option has been added so merchants and restrict Billing Account generation during the order process to only ever allow one Billing Account per subscriber. This is useful for merchants who want to ensure all orders from a subscriber are consolidated under a single Billing Account. The configuration only steers order generation, and is not a system wide restriction.

  • [Preview] Support for defining subscription plans directly, instead of relying on preconfigured Template Plans and the available override parameters. This allows more control in cases where individual subscription plans are needed. Especially useful for merchant with primarily enterprise customers. The feature consists of multiple parts:

    • New API endpoint to create and get subscription plans directly.

    • Modified endpoint for creating subscriptions to allow associating with a directly created subscription plan.

    • Modified order endpoint for referencing existing subscription plans when creating orders.

    • Modified endpoints for scheduling subscription changes to allow referencing existing subscription plans.

  • Option to directly create Demand Reminders. Useful when dunning is driven by external parties such as debt collection agencies, or when the merchant wants to have more control over the timing and content of reminders manually. Refer to Creating Reminders On Demand for more details.

  • Support for updating some credit note header information and re-submitting it to the PEPPOL network. Brings feature parity with the same functionality for invoices, and allows merchants to correct mistakes in credit notes without having to cancel and re-issue them.

  • The feature for automatically waiving reminder fees on payments, now support all increments of reminder fees instead of just the original Invoice amount. In essence if a subscriber pays the exact amount on any reminder or invoice, the remaining fees will be waived.

  • The reporting subsystem now includes Tax Details for reminder fees. Previously this was generalized to a single percentage.

  • Reporting now includes the transaction type for Allowances and Charges, enabling better reporting and analysis of the different types of fees and allowances that are applied to payment demands and billing accounts.

Changed

  • Removed restriction on overriding Due Date when crediting and re-issuing account payment demands. It now follows the payment agreement rules for due date calculations similar to how Subscription and Order demands work.

  • Removed properties from reminder schedules that were never populated (Payment Provider and Payment Method) to avoid confusion.

  • Cancellations triggered due to missing payments (debt cancellation), will now update the subscription cancellation time if the subscription was already cancelled. This ensures that subscribers cannot circumvent the early cancellation by pre-emptively cancel at the end of the current period.

  • The logic for decoding ExternalInvoiceIdentifiers (KID or OCR Reference), has been updated to allow decoding of “filler” characters in a sensible way, instead of responding with an error.

  • Reminder Document states will now be updated when the underlying Invoice is marked as paid to ensure the state of the reminder follows the invoice. There is still no separate state on the reminder, i.e. it cannot be marked as paid directly.

  • When creating an order, where a Denial Orders blocks the registration, the validation error will now include the type of Denial Order that caused the block. This allows applications to better understand why an order was blocked and take appropriate actions or display relevant information to the user.

  • Changed Payment Registrations so it is no longer possible to approve/complete a payment without a valid Subscriber Account. This prevents payments from being ending in a orphaned completed state without any actionable billing relationship.

Fixed

  • An issue where products and organization data would not be automatically synchronized to the reporting sub system, causing reports to be missing data until a manual sync was triggered.

  • An issue where crediting already settled payment demands, did not handle reminder fees correctly. Allowances are now added to cover the reminder fee when crediting, and the credit note issued on shows the original invoice amount to avoid drift with recipients.

  • An issue where transferring a Charge or an Allowance from Subscriber A to Subscriber B and BACK AGAIN would fail.

  • An issue where changing the payment agreement on a running subscription with an existing payment demand, would not update the agreement on the demand. This affected only changes to/from CreditCard agreements, as most other switches would not require an update of the demand.

  • The Vipps and MobilePay refund wrapper now returns the right refunded amount, previously it always returned 0.

Deprecated

These items will be removed in a future release.

  • The Map User API endpoint in the simplified Order API is now deprecated, and removed from the reference documentation. This endpoint was used to map user identities during subscriber creation and order completion. The functionality has been replaced with a more streamlined approach.

  • Purchased Additional Products in the SubscriptionPlan object will be removed in a future release (Products with IncludedInPlan = false). They can be accessed via the PurchasedAdditionalProducts property on the Subscription object instead. This change was made to better separate the concept of products included in the plan and products that were added on top of the plan.

Merchant Client

Added

  • [Preview] Option to configure ‘next-best-offer’ for checkout (see checkout section below for details).

  • Support to configure terms acceptance for checkout (see checkout section below for details).

  • Option to sending reminder copy (PDF) for Enterprise Plan Payment Demands, this works the same way as for the other demand types that already has the option.

  • The possibility to filter expired plans in the Enterprise Plan overview.

Changed

  • Removed menu items for now data dumps and invoice production. These have been replaced with more focused features in the UI.

  • Handling of manually creating and updating payments so Subscriber Billing Account is enforced in the UI as well as in the API. This prevents payments from being ending in a orphaned completed state without any actionable billing relationship.

  • Improved the performance for the Dashboard.

Fixed

  • An issue where timezone would be ignored, leading to inaccurate data in the dashboard.

  • An issue where the language element would not reflect the chosen language.

Self-Service, Sales Poster and Checkout

Added

  • [Preview] Checkout: Support for ‘next-best-offer’ style offer selection in checkout in case of Denial Orders blocking the order. This needs to be configured to a fixed offer in Merchant.

  • Checkout: Support for toggling if terms should be accepted by explicitly (checkbox) or implicitly. This varies by market and payment provider requirements and is now configurable in Merchant.

  • Self-Service: Support for displaying a fixed offer, similar to the ‘next-best-offer’ in checkout, in the self-service portal when subscribers wants to cancel their running subscription. This effectively results in a subscription “downgrade” (change of plan) instead of a churned subscriber.

Changed

  • Internal handling of Swedbank Pay, Vipps and MobilePay accounts to make account selection explicit so invalid account setup is easier to detect and handle when setting up checkout journeys (a configuration error will be presented).

  • Styling differences between the various checkout views.

Fixed

  • An issue where the language element would not reflect the chosen language.

  • Another issue where subscriber information was missing due to multiple navigation actions by the user during the checkout process.

  • An issue where some query parameters were case sensitive in checkout.

  • Checkout now supports templatePlanId again (in addition to the obsolete templatePackageId).

  • An issue where using the back button during checkout would cause payment providers selection to revert to the default instead of the configured providers.

Release April 27th

Small hotfix to fix an issue related to session handling when completing orders in checkout.

Checkout

Fixed

  • Fixed an issue where redirects to/from the Vipps and MobilePay apps would lead to lost sessions on iOS, causing orders to not be completed properly, relying on the fallback check in all cases. This was caused by a change in behaviour of an unsupported feature that checkout unknowingly relied upon.

Release March 11th

Welcome to the spring release. This time around we include a mix of fixes and improvements, with a focus on improving existing workflows and performance. Most of the changes relate to handling edge cases by preventing the issue from occurring in the first place, or providing options to easily identify and fix the issue when it does occur.

API and Backend

Added

  • The simplified Order API now supports mapping user identities during subscriber creation and order completion. This allows for better integration with external identity providers and more seamless user management. It works by upserting the user <-> subscriber mapping, so ensure that users are authenticated before using it.

  • Support for crediting already settled Payment Demands and generating credit notes for them. This allows for more flexible handling of refunds and adjustments after a payment has settled a demand.

  • SubscriptionDeactivated events are now emitted when a future subscription is deleted, marking it as deactivated immediately. Previously only the SubscriptionCancelled event was emitted for this type of subscriptions.

  • Swedbank Pay transactions now include an optional list of Reversals indicating any reversals that have been made on the transaction.

  • Validation to prevent orders with a SubscriptionPlan on a pinned Organization can be created on a different Organization. This ensures that pinned plans are only used within the intended Organization.

Changed

  • The auditing of API requests has been changed to avoid impacting API response times as much. There is still a non-zero cost, but it is significantly reduced.

  • Reminder Schedules now carry the DueDate calculated when being scheduled. This avoids issues where changing the Dunning Process configuration would lead to invalid reminders being generated (DueDate before IssueTime).

  • Slightly changed the Payment creation for Card based payments generated by Swedbank Pay, in order to increase the chances of the payment being matched automatically.

  • Purchased Additional Products now has its own property on the Subscription instead of being included in the Subscription Plan list of Additional Products. The products are still included in the plan list but will be removed at a later date. This change was made to better separate the concept of products included in the plan and products that were added on top of the plan.

  • Improved eFaktura scanning performance.

  • SettleDate now follows the time of payment processing, not the ValueDate of the payment. This means that the settle date will be more accurate, but may surface issues where manual cash settlement routines uses the PaymentDemand settle date instead of the payment.

  • It is no longer possible to register multiple stop rules on a single Dunning Process. This was never supported, but there were no checks to prevent it from being configured. This change was made to avoid confusion and ensure that the Dunning Process configuration is clear and consistent.

Fixed

  • An issue where new AvtaleGiro mandates would be skipped if the subscriber had an existing mandate on the same account that was deactivated.

  • An issue where Subscriber Contact information would be lost when doing automatic profile updating from Vipps and MobilePay.

  • An issue where VAT information was not included in a few edge cases.

  • An issue where scheduled SubscriptionPlan change would use todays price for calculations instead of the price on the change time.

  • An issue where settling a payment demand with a reminder fee, but writing off the fee, would not update the ledger with the correct credit amount.

  • A race condition on orders with immediate schedule changes would fail to create the schedule correctly. In all cases this has been resolved by our monitoring, but now it is fully resolved and will not cause a short term inconsistent state.

  • An issue where in some cases cancelling a subscription would not update the user authorization model correctly, causing the user to retain access to subscription content after cancellation. This only affected a small subset of subscriptions that was cancelled before their original EndTime.

Deprecated

These items will be removed in a future release.

  • The Map User API endpoint in the simplified Order API is now deprecated, and removed from the reference documentation. This endpoint was used to map user identities during subscriber creation and order completion. The functionality has been replaced with a more streamlined approach.

  • Purchased Additional Products in the SubscriptionPlan object will be removed in a future release (Products with IncludedInPlan = false). They can be accessed via the PurchasedAdditionalProducts property on the Subscription object instead. This change was made to better separate the concept of products included in the plan and products that were added on top of the plan.

Known Limitations

  • The feature for crediting already settled payment demands, currently does not handle reminder fees correctly. This means that an allowance will have to be added manually to cover the reminder fee. We are working on a solution for this, but in the meantime, please be aware of this limitation when using the new crediting feature.

Merchant Client

Added

  • An option to move connected users to a different account on the same subscriber. Simplifies handling when users need to be moved between accounts, when correcting mistakes.

  • Support for refunds/reversals on Swedbank Pay transactions, allowing merchants to easily process refunds and reversals directly from the transaction view in the Merchant without needing to use the SwedbankPay portal.

Changed

  • Prevent registration of multiple stop rules on a single Dunning Process, as this is not supported and could lead to confusion.

  • The sections for Subscriptions and Invoices and Payments on the Subscriber Overview have been replaced with a new component type that takes up less screen space but still provides the necessary information and features.

  • Added Quantity as an optional field when creating account invoices manually.

  • Additional information is shown on Swedbank Pay transactions related to reversals and refunds.

Fixed

  • Translations for the new bulk price adjustment tool introduced in the previous release.

  • A performance issue where the subscriber overview would load too much data, affecting subscribers with a large number of historic reminders.

  • A performance issue where visiting the Connected Users page would take a long time for subscribers with a large number of users. There are some constraints on how fast we can query the underlying IdP, but the optimizations have changed the performance from 50 seconds to below 3 seconds for 300 connected users.

  • An issue where the date on the Delivery view on a subscriber would deviate from the same delivery date on the delivery overview page.This was caused by a missing timezone adjustment.

Self-Service, Sales Poster and Checkout

Added

  • Checkout: Support for displaying Invoice Fee as part of the price.

  • Checkout: Support for ordering new subscriptions for previously connected users without a direct subscriber connection.

Fixed

  • Reminders are now visually marked as paid when the Invoice/Payment Demand is settled. This prevents Vipps and MobilePay single payments of already paid reminders.

Release February 2nd

This is a minor/hotfix release to fix a few issues related to the order flow in the merchant and self-service (different issues), as well as a minor fix for quantity mapping in the billing engine for transactional invoices.

API and Backend

Fixed

  • An issue where 0 amount Vipps and MobilePay campaigns would be rejected due to an invalid minimum campaign amount. The validation has been removed as these 0 amount campaigns are valid.

  • An issue where quantities defined on transactions for Account Payment Demands (transactional invoices) would not result in a multiplied amount based on the quantity when generating the corresponding Invoice Document.

Merchant Client

Fixed

  • An issue where it was not possible to create transactional invoice lines with quantities greater than 1.

  • An issue where it was not possible to order new subscriptions with an existing eFaktura agreement.

  • An issue where searching for users in ADB2C would timeout due to too many queries being sent. The changes will improve the overall performance of the search experience as well.

Checkout

Fixed

  • An issue where an initial period/campaign with amount 0 would show an error/warning message, even though the order could be completed successfully.

Release January 28th

Happy new year and welcome to 2026. We are ready with the first release of the year, bringing a mix of fixes and improvements. As always under the covers we are continuing with stability and performance improvements across the board.

API and Backend

Added

  • The OpenAPI document is now versioned. The current version is v1 (or unversioned). No breaking changes are introduced in this release. The documentation has been updated with information about what we consider breaking changes.

Changed

  • Improved the handling of Payment Stop processing to cancel future subscriptions correctly in cases where the stop evaluation is configured to run after renewal processing. This ensures that future subscriptions are cancelled as expected when a payment stop is in place.

Fixed

  • A mapping issue where the PaymentMethod ‘eFaktura’ was not mapped to a string on orders, resulting in a number being returned if querying for an order completed with eFaktura as payment method (no known impact, but fixed for consistency).

  • An issue where DenialOrders would not be validated correctly when creating new orders via the API, causing blind failures when the order was processed with no feedback to the caller.

  • An issue where self-chaining would cause template subscription plans to break.

  • An issue where Payment Demands for Enterpriseplans would not point to the correct NextSubscriptionId when the subscriptions were renewed in the reporting subsystem.

Merchant Client

Added

  • Added configuration option for listing default Reporting Tags when creating new subscriptions. This allows merchants to have certain tags selectable by default instead of requiring manual and error-prone typing.

  • Support for adding Tax Group when manually creating charges and allowances corrections to a subscriber account (credits and debits).

  • Extended the corrections views with Tax Group information when applicable as well as Timestamps for when the correction was created.

Changed

  • [Preview] Multiple adjustments to the new bulk crediting and write-off tool introduced in the previous release.

  • [Preview] Multiple improvements to simplify the creation of transactional invoices.

  • Adjusted Vipps and MobilePay agreement views to align with other list/grid views in the Merchant Client.

  • Invoice Fees are now grouped together by Tax Group (Percentage) to simplify the view and reduce clutter.

  • Column width on Template Subscription Plan view.

Fixed

  • A display error when registering a payment on a reminder.

  • An issue where invalid TAX was shown when creating a new order with a discount.

  • An issue where the daily paid amounts were displaced due to timezone differences.

Self-Service, Sales Poster and Checkout

Added

  • Option for creating Vipps and MobilePay agreements on existing subscriptions, similar to how SwedbankPay agreements can be created. This allows subscribers to add these payment methods to existing subscriptions without needing to create a new order.

Changed

  • Invoice Fees are now grouped together by Tax Group (Percentage) to simplify the view and reduce clutter.

Fixed

  • An issue where it was not possible to remove a future cancellation of a subscription.

  • An issue where the wrong source address was used when creating a temporary delivery address change.

Release December 10th

Last release of 2025, this is a minor release with a mix of fixes and small improvements.

Happy holidays to everyone, we will be back with a new release in January.

API and Backend

Added

  • Validation for templates with chains, making sure the chain is valid for the choices/selections also after the first period. This prevent invalid orders from being created, and ensures that renewals will work as expected (the chain will still be terminated on renewal if invalid). This change is relevant for both Order creation and Subscription Plan pre-validation.

  • Accounting transaction information for Swedbank Pay when the transactions are managed by a payment request in the billing system.

  • Support for mapping Additional Products to User Authorization information immediately when adding them to a running subscription.

Changed

  • The generation of final/account-balance demands have been changed so it now consumes account balance directly, as charges and allowances, where it would previously attempt generate details as if they were products. This brings the behavior in line with how other demand types handle account balances.

  • Adjusted text for handling Charges and Claims on eFaktura demands (only relevant for Norwegian recipients).

  • Extended the Swedbank Pay transaction response to include Currency and newly added accounting information.

  • Retrieving remote VippsMobilePay agreement information now also includes campaign details.

Fixed

  • An issue where Tax Details were not generated correctly for demands where allowances were split. This could lead to negative total amount on invoices, and incorrect tax reporting.

  • An issue where the selected Payment Method and Provider would not be stored correctly on orders. The billing would be correct, affecting mostly the reporting experience.

  • Two related issues in reporting where AccountTransactionHistory entries would not be re-opened correctly after being reverted to the billing account during crediting.

  • An issue where subscription periods would be negative in some edge cases when using “remainder of year” or “remainder of month” as the initial period length (term).

  • An issue introduced in the previous change in serialization rules, where updating an issue invoice with new header information was not accepted even if modelled correctly.

Merchant Client

Added

  • [Preview] New tool for bulk crediting and write-off of outstanding demands and transactions on accounts. Allows merchants to “reset” a subscribers account to zero balance in a controlled manner.

  • Support for directly refunding VippsMobilePay charges from the Merchant Client. Avoids the need to context-switch to the Vipps or MobilePay portal for refunds.

  • Support for directly refunding Swedbank Pay transactions from the Merchant Client. Avoids the need to context-switch to the SwedbankPay portal for refunds.

Changed

  • Extended the economic overview with additional information for each transaction.

  • A few minor translation adjustments to some grid columns and filter labels.

Fixed

  • An issue where it was not possible to update a temporary delivery address change.

  • A performance issue for the Subscription Plan view which would sometimes hang and abort after 30 seconds.

Self-Service, Sales Poster and Checkout

Added

  • [Preview] Support for an alternative client_id during checkout. This allows merchants to use different client applications for Self service and ordering. Possibly streamlining the user experience with other front systems, such as the CMS. Essentially it is possible for checkout and CMS to share a client.

  • Checkout will now attempt to determine the default country based on the OrganizationId defined in the selected subscription plan. Prefilling the Country field where possible. If undefined will fallback to a blank field.

Changed

  • For existing subscriber checkout should now update contact information with the latest provided information. Previously it would not update anything on existing subscribers. This uses a new callback feature in the Orders SDK.

Fixed

  • An issue in checkout making it possible to order on an expired Subscription Plan.

  • An issue in checkout where it was not possible to start a payment flow on one provider type and then switch to another provider type without loosing information on the subscriber in the process.

Release November 17th

We are ready with the november release. This time around we have quite a few UI adjustments and fixes. Most of the work done in the API and Backend is under the hood and won’t be directly visible. We are in general focusing our efforts on improved performance and building the foundation for future features.

API and Backend

Breaking Changes

In this release we have tightened the serializer behaviour when handling JSON data. This means that in some cases clients may have sent invalid JSON, which has been handled regardless because the serializer was lenient.

With the change, the schema-valid JSON will be handled as before, but invalid JSON will now be rejected with an error.

This is strictly speaking a breaking change, but we expect that very few clients will be affected, and additionally it is just an enforcement of the existing schema.

Added

  • Support for new Billing Frequencies: 2, 3 and 6 weeks.

Changed

  • Creating scheduled subscription changes no longer waits for the processing to complete before returning. This improves responsiveness of the API.

  • An empty body is permitted on subscription cancellations, previously a body was required, even if it was empty.

  • Added Organization Number in the eFaktura requests to adhere to new requirements from Mastercard Payment Services and the norwegian banks.

  • The OpenAPI schema now references a shared header parameter for the S4-TenantId header. This reduces the size of the schema significantly.

  • The OpenAPI schema no longer includes all possible input formats acceptable by the runtime, so for the most part application/json is the only documented type. If you previously used text/json or application/json-patch these will continue to work for the foreseeable future, but we recommend switching to application/json. Some generator may have had issues with multiple content types, so this change should help with that as well.

Fixed

  • An issue where Template Plan validation passed, even if some of the products did not have a valid price.

  • An issue where no validation information was returned when creating the same sequence multiple times.

  • An issue where some transactions on Account Demands would be created without Currency information if the Account Demand was generated due to a previous payment related cancellation.

  • An issue where deliveries would not be handled correctly in case of a subscription plan change, leading to missing delivery notifications.

  • An issue with missing contact information in reporting when automatically retrieving subscriber contact details from VippsMobilePay.

  • An issue in the order API where Order Reference was not forwarded properly.

  • OpenAPI schema no longer contains an invalid definition for optional types. Instead the types renders as OptionalOf.

Merchant Client

Added

  • [Preview] Support for including existing balance on an account when creating a new order.

  • [Preview] New KPI for tracking scheduled near-future payment cancellations.

  • [Preview] Support for configuring multiple list prices in bulk/batches.

  • Support for adding reporting tags to a subscriber.

  • Support for sending e-mail notifications to users when a shared user is added to their account.

  • Indication of how invoices have been settled, showing the transactions and payment(s) that was used.

  • Users that have been deleted from the IdP, but where the mapping has not been removed, are now indicated in the user grids.

  • Ledger entries created by a reminder, typically fees, are now linked to the reminder that created them.

Changed

  • Automatic refresh of payments view after re-matching.

  • The payment and invoices overview so that deviating payments is put on the invoice they belong to if associated to one.

  • The detail view for invoices now include more information and the layout has been slightly changed.

  • Products list now includes a master/detail view for products with multiple billing frequency prices.

  • Exporting the products to excel now includes the ProductId in addition to the existing columns.

  • Styling improvement to the ledger view.

  • The organizations view has been replaced with a new grid type with filtering and sorting aligned with the other replaced grids.

Fixed

  • Prevented the use of identical start and end dates when creating a temporary address change.

  • An issue where the contract surcharge would always show NOK as the currency regardless of the actual currency used.

  • An issue where adding a pause would allow switching to an inactive subscription plan.

  • An issue where the current state of temporary address change or delivery stop would not be shown correctly.

  • An issue where the selected payment file format would not be persisted in the session after importing a file.

  • Prevented OIO to be shown as a invoicing method if not configured.

  • An issue where it was not possible to fill out all required fields for manually created Account Invoices if OIO was selected as the payment method.

  • An issue where a temporary delivery address change would be cut short with 1 hour if registered exactly during daylight saving times.

  • An issue where registering a subscription plan change would show an incorrect price if the new plan had a reduced price.

  • Fixed an issue where changing payment agreement to an e-mail agreement the e-mail would not be displayed.

  • Fixed an issue for the users KPI, the changed users count was summarized incorrectly.

  • Fixed an issue where assigning Email as a valid payment agreement type would not work.

Self-Service, Sales Poster and Checkout

Changed

  • The checkout business flow now displays prices without VAT/TAX.

  • Improved handling of whitespace chars in all input fields for checkout.

  • Prevented the use of identical start and end dates when creating a temporary address change.

  • Aligned product sort or of temporary changes to match the sort order in the merchant.

Fixed

  • A few Danish translation issues in checkout.

Release October 27th

This is a minor release to fix two issues related to the order flow and evaluation of template subscription plan rules.

API and Backend

Fixed

  • An issue where chosen products would not flow to the next step in a chain of plans, causing the second and subsequent period to contain all available products instead of the chosen ones.

  • An issue where the overridden price for an order would not flow to the next step in a chain of plans, causing the second and subsequent period to use the list prices instead of the overridden one.

Release September 23rd

Its autumn and while the rain pours down outside and the temperature drops, we sit behind our screens whittling away at the backlog. Measured in number of changes, this is probably the largest release we have ever had. From the list below you can see there are a lot of different areas affected, and these are just the observable changes.

As some may have noticed the developer docs are also getting a needed expansion, for this reason we have added a short section here about doc changes as well.

We probably have 1 or 2 more releases for you this year, so stay tuned, and enjoy this release!

API and Backend

Added

  • Support for Order Reference. A free form text field similar to Buyer Reference. Instead of following the subscriber, the order reference follows the subscription.

    • The order reference can be set on Orders, Subscription and Enterprise Plans.

    • IS carried on to the Invoice if present.

    • Available in the reporting data model for demands (if set).

    • It is also possible to set/remove order references during subscription changes.

  • Support for handling VippsMobilePay agreements being stopped in the Vipps or MobilePay app. By default subscriptions will be set to another payment agreement, the behaviour can be changed to cancel the subscription instead.

  • New orders can now consume existing account charges and allowances, the behaviour can be toggled with a parameter in the order flow.

  • Support for reversals of Swedbank Pay transactions.

  • Vipps and MobilePay charges can now be refunded if captured.

  • Subscriber contact information is included for account transactions in the reporting model.

  • OrganizationId is added to the Payment Stop Schedule to ease querying and filtering.

  • Support for DeactivationTime on PaymentAgreements.

  • Improved validation when configuring how External Invoice Identifiers should be generated.

  • Support for re-scheduling a reminder on an Account Demand.

Changed

  • Orders with Vipps or MobilePay profile collection will now cause a contact replacement. This is a change in behaviour, previously the contact would be added side-by-side in case of existing contact.

  • Querying for PaymentDemands now includes settlement account transactions if they exist. This allows the caller to determine how a demand was settled instead of assuming it was paid directly.

  • Removed simulated synchronicity behaviour for a series of endpoints:

    • Create Payment ( POST /payment )

    • Cancel Subscription ( POST /subscription/{id}/cancel )

  • AvtaleGiro payment agreements are now deactivated when the underlying mandate is cancelled. Previously they were deleted from the query results.

  • Extended Authorization product generation to include Additional Products included in subscription plans (purchased AddOns are not included until renewal, this will be added in a future release).

Fixed

  • An issue where VippsMobilePay account reference would not be validated in the API, leading to a bad caller experience (processing failure after acceptance of the request).

  • Fixed an issue where the MerchantRedirectUrl for VippsMobilePay was not verified during order creation leading to a bad caller experience (processing failure after acceptance of the request).

  • Fixed an issue with missing currency on account transactions when allowances were split during settlement.

Removed

  • The endpoint for changing packages (/subscription/{id}/changepackage) have been removed from the API. This was a deprecated endpoint and has been replaced by the more flexible scheduled subscription changes feature.

  • The Enum value PayEx for PaymentProviderType has been removed. The value PayEx is still present where it was used as a string.

Merchant Client

Added

  • Support for configuring deactivation behaviour for VippsMobilePay accounts. Default is to leave the subscription, but it can be changed to cancel the current subscription.

  • Support for adding and showing the new Order Reference field. The support includes new Orders, subscription changes, displaying on running subscriptions and on Invoices.

  • Password reset support for shared and email domain based users.

  • Support for configuring invoice fees for additional payment provider types.

Changed

  • Changing to Email payment agreements now verify the existence of an email address on the subscriber.

  • The data source used for searching/listing account transactions.

  • Simplified the configuration of External Invoice Identifier generation scheme.

  • Previewing Order details now adjusts for Permanent Discount settings.

  • Vipps and MobilePay agreements now display the external Agreement Identifier making it easier to identify the right one.

Fixed

  • An issue where it was possible to attempt changing historic subscription periods.

  • An issue where purchased Additional Products would not count toward the total number of shared users available.

  • An issue where the display start time for deliveries was not adjusted for the distribution offset.

  • An issue where display start time for product deliveries was not adjusted for the distribution offset.

  • Formatting of some numbers in the dashboard.

  • An issue where KPIs would show incorrect values in case of summaries being 0 (or not present for the given day).

  • An issue where filtering choices for deliveries would not be consistent with the content shown in the result.

Self-Service, Sales Poster and Checkout

Added

  • Support for creating Vipps, MobilePay, Email and PEPPOL payment agreements on running subscriptions.

  • Warning message for expired card payment agreements in use on a running subscription.

Changed

  • Changed order of subscriber contact information fields.

  • Improved stepwise tracking support in checkout.

Fixed

  • General translation corrections for multiple languages.

Developer Documentation

A short list of things that have been added or significantly expanded upon in the documentation since july.

  • Introduction to Additional Products (Add-ons).

  • A primer on querying using OData and the Analytics API.

  • References to test data for payment providers.

  • Scenario description for bringing your own payment provider.

  • More details and concept explanations in relation to billing.

  • Visualizations for various entity relationships and timelines.

  • New sequence diagram for orders including Vipps/SwedbankPay examples.

Release August 18th

We are back after a long summer absence, with the 6th release of the year.

This time around there is an emphasis on improving the visuals in the Merchant Client and Self-Service. While each change is minor the number of changes contributes to a more polished and cohesive user experience.

There are some public features and fixes in the API, but mostly the changes are under the covers.

API and Backend

Added

  • [Preview] Support for automatic cancellation of subscription when subscribers disable their Vipps and MobilePay agreements.

  • Support for updating a few of the VippsMobilePay account options.

  • Automatic deactivation of eFaktura agreements that are no longer valid with Mastercard Payment Services.

  • Support for deactivating Swedbank Pay agreements before card expiry.

  • The reporting subsystem now contains Subscriber Contact information directly on the AccountTransactions and AccountTransactionHistory views.

  • AccountTransactionHistory is now available in the OData API.

Changed

  • A validation error will now be returned if an Enterprise Plan is re-activated without having been activated earlier.

  • Product details are included when getting scheduled subscription changes.

Fixed

  • An issue where calculating the next subscription with scheduled changes would not generate the correct results.

  • An issue where payment demands with fees and zero priced or included additional products would fail to be generated.

  • An issue in Reminders that would generate the wrong Payable Amount and Line Extension Amount when one or more allowances with non-zero VAT value were present on one of the reminders (but not in the invoice).

  • Filtering of PaymentAgreements now actually filter out deactivated agreements, causing the query parameter IncludeDeactivated to work as intended.

Merchant Client

Added

  • [Preview] Support for transferring not-billed allowances and charges to new billing accounts and between subscribers.

  • [Preview] Scheduled Subscription changes to be executed at a later time instead of immediately as is the current behaviour (Contact support if you want to use this feature).

  • Support for maintaining some of the Checkout Configuration options directly (refer to the documentation for details).

  • Option to re-submit Invoices to the PEPPOL Network directly from the Merchant Client.

Changed

  • Extended the dashboard with values for ACV (Average Customer or Subscription Value) and CLTV (Customer or Subscription Lifetime Value).

  • The dashboard now also contains a chart for outstanding invoices and invoices due.

  • The layout and styling of the dashboard.

  • Layout for self-service configuration.

  • Better support for handling search without an assigned organization filter for multiple search views.

  • Visual improvements to payment agreement related elements.

  • Searching for corrections now include a textual description if available in the result for each correction.

Fixed

  • An issue where switching a subscription plan, when both the number of units and the fixed price were changed, would not display the correct final price.

  • Removed a non-functional option to generate emails for invoice drafts.

  • Prevented restarting subscriptions with a future cancellation time (it is still possible to undo/remove the cancellation).

  • Error handling for cases where ordering a restart of a subscription reports failures. Previously, there was inadequate feedback to the user.

Self-Service, Sales Poster and Checkout

Added

  • Support for deactivating old and unused payment agreements.

  • Support for paying a single outstanding invoice via Vipps and MobilePay if those payment methods are enabled. Does not require a payment agreement. Refer to the documentation for details.

  • Tracking/Tracing of user interactions and events within the checkout workflow.

  • Checkout configuration now includes options for setting different default subscription plans for each journey type.

Changed

  • It is no longer possible to remove registered cancellations on subscriptions with a 100% permanent discount, preventing unintended eternally-free subscriptions.

  • Improved the error handling in checkout when Denial Orders are present on a subscriber.

Fixed

  • Checkout now reports configuration errors more clearly, instead of just showing a generic error message and “crashing”.

  • An issue where mapping users would fail in case of password reset flow being used during orders.

Release June 17th

The 5th release of INFO-Subscription in 2025 is here, it also marks the last release before the summer holidays.

This release contains a mixed bag of things, such as more improvements to the newly introduced additional products and additional details on billing transactions to facilitate better reporting and auditing of billing transactions. It also contains a number of improvements to the checkout to improve the conversion rate.

API and Backend

Added

  • [Preview] Added validation to prevent a plan change to a different billing frequency when an existing subscription has an additional product with a price override.

  • [Preview] Support for updating some header level information on already issued invoices.

  • Added property to Allowance and Charge account transaction creation that indicates if the registered transaction is adjustment is included in the ledger (and thus needs to be reversed when billing the transaction).

  • Added support for resubmitting an existing invoice to the PEPPOL Network.

  • Subscriber Contacts can now be queried directly via the OData reporting API. Previously they were only available via the owning subscriber.

  • POST /order/{id}/complete now contains an optional parameter to control wait time (or disabling waiting entirely), before returning a result. This is useful if your workflow has an upper bound on the processing.

  • A new complete transaction log for all billing related transactions is available in the reporting subsystem.

Changed

  • Allowances now contains TaxDetails when generated based on transactions with TaxDetails (Split and Proration for Paid periods).

  • Added support for retrieving upstream/remote status of Vipps MobilePay ePayments.

  • Final/Balance Demands with allowances from the billing account will now map these as allowances on the Invoice. Previously they were mapped as negative charges.

Fixed

  • [Preview] An issue where scheduled plan changes would not properly merge included additional products with identical purchased additions products.

  • [Preview] An issue where scheduled removals of additional products would not work when the product was present as both an included product and a purchased product.

  • An issue in the reporting subsystem where subscriber contact information was not always correctly set when retrieving details from Vipps MobilePay.

  • An issue where the proration calculation for paid periods would be off by one day. Resulting in invalid amounts being calculated for allowances. The allowance was more than owed to the subscriber, so the negative effects was to the seller.

Merchant Client

Added

  • Option to search for subscribers based on their Organization Number identification (Organization Number and CVR Norway, Sweden and Denmark).

  • New possibility to disable eFaktura agreements manually as a fallback when the subscriber is unable to cancel it upstream.

Changed

  • Price display to ensure prices/amounts are always shown in an identical manner.

  • Option to filter for organization is now optional for a number of search views.

  • General styling improvements to some of the grid views to make them more consistent with the rest of the application.

Fixed

  • [Preview] An issue where transactional/account invoices could not be created if no default Currency was configured.

  • An issue preventing activation of Enterprise Plans if not activated during creation.

  • An issue where subscription plans without an organization restriction could not be used when bulk creating subscriptions on enterprise plans.

  • A minor performance issue where payment agreements were sent during credit and re-issue even if the same agreement should be reused.

Self-Service, Sales Poster and Checkout

Added

  • Option to regret a subscription cancellation if it is in the future.

  • Support for journey specific text for checkout.

  • Support for displaying plan information on checkout for journeys related to ordering a subscription.

Changed

  • Sorting of subscription periods so active subscriptions are always shown first.

  • Price display to ensure prices/amounts are always shown in an identical manner.

Release May 8th

A new release of INFO-Subscription is ready, we didn’t make it in time for May 4th, so no Star Wars references this time. Contrary to the last release notes we would like to announce that the INFO-Subscription team is still here, and we are committed to providing you with the best possible service. So don’t worry, INFO-Subscription is not going anywhere!

This release includes a number of improvements and bug fixes both to existing features and to the preview features we are working on. As always there are a number of under-the-hood changes that are not listed here, but which should improve the overall performance and stability of the platform, or make room for new features in the future.

API and Backend

Added

  • [Preview] Support for removing Additional Product from a running subscription (will be wrapped as a scheduled change).

  • [Preview] Support for adding units to Account Payment Demand transactions.

  • [Preview] Support for generating payments directly from the SwedbankPay integration instead of via Billing. This allows for automatic payment generation for non-recurring SwedbankPay transactions, letting INFO-Subscription take care of the bookkeeping directly.

  • Added a new trigger for the event type PaymentProcessingFailed, it is now also triggered when an operation fails related to VippsMobilePay EPayments (non-recurring).

  • Updated versions of the default supplied Power Bi reports.

Changed

  • [Preview] Adding an additional product to a subscription will now validate if there is an active price for the product chosen, that matches with the frequency of the subscription.

  • Crediting a PaymentDemand on AvtaleGiro, BetalingsService, AutoGiro or eFaktura (with a replacement), now allows for switching the payment method to a different one with a specific Due time. Previously it was only possible to switch if leaving the time to be determined by the system.

  • Added validation to prevent deletion of a Product which is used as an Additional Product on a Subscription.

  • Retry handling and queue wait time in the POST /order/{id}/complete endpoint has been changed to reduce the mean time to complete the order. The retry handling is now more aggressive.

  • Allowed VippsMobilePay descriptions to be longer than 50 characters. The limit is now set at 100 characters. This is to follow the new API limitations from VippsMobilePay.

Fixed

  • Invalid response code in the documentation for a few endpoints. The documentation now states the correct response codes for the following endpoints (most of them were listing a lot of status codes that were not relevant):

    • GET /authorizations/source/account/{id}

    • GET /authorizations/domain/{id}

    • GET /authorizations/source/emaildomain/{id}

    • GET /authorizations/source/external/{id}

    • GET /vippsmobilepay/account

    • GET /vippsmobilepay/account/{id}

    • GET /authorizations/source/subscriber/{id}

    • GET /subscription/scheduledsubscriptionchange/{id}/execute

    • GET /vipps/vippsaccount

    • GET /vipps/vippsaccount/{id}

    • GET /vipps/agreement/{id}

    • GET /vipps/charge/{id}

    • GET /vipps/charge

  • An issue where billing would generate a 0 amount allowance during settlement, in cases where existing allowances and a payment would be used to cover the exact demand amount.

  • An issue where automatic payment demand crediting would not work. This happened on future orders where the subscription was deleted before being started.

  • An issue where the VippsMobilePay agreement product description was not being set correctly during orders, but instead would duplicate the plan name.

  • An issue where a Payment Updated timestamp would be set during approval, even if the payment was not updated.

  • The accounting time on account transactions in the reporting subsystem was not set correctly during billing.

  • An issue where TaxPercent was not set on account charges in the reporting subsystem.

  • An issue where multiple reminders would not consider previously consumed allowances when generating the followup Payable Amount.

Merchant Client

Added

  • [Preview] Support for selecting additional products when ordering a new subscription.

  • [Preview] Support for adding and removing additional products on a running subscription.

Changed

  • Unified the look and feel of the newly introduced price tooltip, so that it is consistent across all places where it is used. This is the tooltip that show prices with and without VAT and the VAT percentage.

  • Unified the formatting of dates on Payments in all related views.

Fixed

  • [Hotfix] An issue where searching for subscribers required a configuration value that not all tenants have a value for.

  • An issue where removing a shared user from a subscriber account would remove it from all accounts, not just the one it was removed from.

Self-Service, Sales Poster and Checkout

Changed

  • Handling of the automatic Swedbank Pay account selection during checkout and orders via sales poster to behave in a consistent manner with multiple organizations and accounts.

Fixed

  • [Hotfix] An issue where it was not possible to create a subscriber without a valid email address in the sales poster.

  • [Preview] Multiple issues related to the checkout application including (but not limited to)

    • Handling of not-supported SwedbankPay languages so it now defaults to English instead of breaking.

    • Better redirect handling for VippsMobilePay app switch scenarios.

    • Improved user and subscriber existence check to avoid duplicate subscribers.