Agreement handling for Norwegian consumer invoicing
This page covers how the main vendor agreement for Norwegian consumer invoicing (B2CNO) is handled, how eFaktura invoices reach MPS (Mastercard Payment Services) for delivery to consumers, and what changes in activation on 26th of October 2026.
It applies to the main vendor agreement only, which covers eFaktura to netbank and Vipps together with the fallback routes email and print. AvtaleGiro (direct debit), its activation and its mandate handling are not affected.
The short version: eFaktura invoices are sent under Maventa’s agreement with MPS, so moving a sender to Maventa does not take over or replace their existing eFaktura setup. From 26th of October 2026, Visma Sign is no longer needed for eFaktura and the activation responses change. Your invoice payloads do not change, and senders that are already active need no action.
The activation process itself is documented in context in Consumer Invoicing (Norway), with the API methods in the B2CNO API and the B2C Norway SOAP methods.
eFaktura invoices are sent under Maventa’s agreement with MPS
Rather than each sender holding an individual issuer registration at MPS, Maventa submits eFaktura invoices under a single Maventa agreement. Sending under the service provider’s own agreement with MPS is the direction MPS recommends for handling issuer accounts, and it is how Maventa handles Norwegian senders.
Each sender’s own organisation number travels with every invoice as the legal organisation number, so invoices are attributed to the correct sender exactly as before.
Consumers see no difference. The invoice content, the sender name shown in the netbank, and the payment details are unchanged.
A small number of senders hold their own billing account with MPS. They are left untouched and continue to send under their own organisation number.
AvtaleGiro invoices travel through the same eFaktura channel, so all of this applies to them too. Nothing changes in your payloads, and the sender’s own organisation number still identifies them on every invoice.
Because a sender’s invoices do not depend on a registration of their own at MPS, there is nothing to take over from another service provider. That is what changes in activation on 26th of October 2026.
Activation does not wait on MPS
There is no registration at MPS for a sender and nothing to poll, so activation does not depend on anything outside Maventa. It is processed in the background through Maventa’s queue, so it completes within moments rather than hours. It is not synchronous with the API call, but you will not be waiting long enough to need a “pending, please wait” screen. If a sender’s status has not changed to ACTIVE within an hour, contact Maventa support.
Senders are reachable across all banks straight away. Each bank fetches new agreements from MPS on its own schedule, which is what makes a per-sender registration slow to take effect everywhere. Sending happens under Maventa’s agreement, which is already established with every bank, so there is no per-bank propagation delay for a newly activated sender.
The one thing that breaks
If you activate through the SOAP API and your integration matches on OK: Email sent to <signer_email> to detect a successful activation, that response will no longer be returned. Your integration would read a successful activation as a failure.
Test for OK instead. This is the only change on this page that will break an integration that works today. Everything else is either a change you can ignore or cleanup you can do at your own pace.
What changes in your integration
The way you activate does not change, on either API. What changes is what comes back, because the response that today reports that an agreement has been sent for signing no longer has anything to report.
REST API
Activation through POST /v1/company/profiles with network: "BANK".
network_settings name and email are no longer used. GET /v1/services/b2cno reports the status in Maventa rather than at MPS, and stops returning RESERVED.
Activating an already-active sender is rejected with a different error message.
SOAP API (v1.1)
Activation through b2c_issuer_agreement_order.
OK: Email sent to <signer_email> is no longer returned. signer_name and signer_email stay in the method signature but are no longer used, and blank values are accepted.
disable_b2c_issuer_agreement stops reporting issuer-state errors.
The SOAP contract does not change. No method is renamed or removed, and no field is taken out of a signature. If you still activate consumer invoicing through SOAP v1.1, this is a good moment to move to the REST API — SOAP v1.1 remains available for existing integrations, but the REST API is where new functionality is added.
Each change in detail
The takeover process will disappear, and so will Visma Sign for eFaktura
This is the change that matters most for onboarding.
Today, activating the main vendor agreement means transferring a sender’s existing agreement to Maventa. If MPS reports that the sender’s organisation number is already registered by another service provider, a person with signatory rights has to sign through Visma Sign to authorise the takeover, and the old agreement has to be terminated before activation can complete. Every move from another provider has to be planned as a cutover, coordinated between the sender, their previous provider and Maventa.
From 26th of October 2026, none of that applies. Maventa sends under its own agreement with MPS and will not touch a sender’s registration with another provider. Nothing is transferred and nothing is terminated. A sender can be active with Maventa and with their previous provider at the same time, and MPS does not block this.
Visma Sign will no longer be used for eFaktura activation at all. Because there is no takeover, there is nothing left to authorise, so no signature is required from anyone regardless of whether the sender is already registered elsewhere. Visma Sign is still used for AvtaleGiro, where it serves a different purpose, described in AvtaleGiro is not affected.
For you, this removes the coordination that used to make migrations awkward:
- No cutover date to agree with the sender or their previous provider.
- No signatory to track down, and no waiting for a signature before a sender can go live.
- Senders can be activated in Maventa while their existing setup keeps running, and moved over at their own pace.
- You can test real sending through Maventa before the sender commits to switching.
- Senders may close their old agreement whenever it suits them. It is no longer a prerequisite for activating with Maventa, and leaving it open does not cause duplicate invoices. Invoices reach the consumer through whichever provider the sender submits them to.
RESERVED is deprecated
GET /v1/services/b2cno returns today what MPS knows about the sender’s organisation number. From 26th of October 2026 it reports the status in Maventa instead.
| Value | Until 26.10.2026 | From 26.10.2026 |
|---|---|---|
ACTIVE |
The organisation number is registered as an issuer at MPS under Maventa | Consumer invoicing is active in Maventa and the sender can send |
FREE |
The organisation number is not registered as an issuer at MPS by any provider | Consumer invoicing is not active for this company in Maventa |
RESERVED |
The organisation number is registered as an issuer at MPS by another service provider, so a signature is needed before activation | No longer returned |
FAULT, ERROR
|
Something went wrong — contact support | Unchanged |
RESERVED exists today to signal that another service provider holds the sender’s registration and that a signature is needed. Since neither the takeover nor the signature remains, the value has nothing left to report. If your integration branches on RESERVED, that branch becomes dead code and can be removed.
Activation responses change
-
REST — activating a sender that is already active is still rejected with
422, but the error becomesProfile is already registered for given endpoint idinstead ofAgreement is already active. Only integrations that match on the error text itself need updating. -
SOAP — a successful activation returns
OK.OK: Email sent to <signer_email>is no longer returned, because no agreement is sent for signing. Re-ordering an agreement for a sender that is already active also returnsOK. -
SOAP —
signer_nameandsigner_emailremain in the method signature and are not being removed. They are simply no longer used to send anything, and blank values are accepted. You can keep passing the values you pass today, or not. -
REST — the
nameandemailinnetwork_settingsare not required fields, and are no longer used. With no signature to send, there is nobody to address it to. Integrations that continue to send them keep working, so no change is forced on you.
Turning the service off
Nothing is checked at MPS when the service is switched off, so turning it off succeeds unless the service was not enabled in the first place.
-
REST — delete the sender’s
BANKnetwork profile. The consumer invoicing route is removed and the sender can no longer send B2C invoices. Deletion no longer depends on what MPS reports about the sender. -
SOAP —
disable_b2c_issuer_agreementreturnsOK.ERROR: Cannot disable agreement. Issuer state is ...is no longer returned. The method name does not change, even though what it switches off is now the service rather than an agreement.
What stays the same
- Invoice payloads. Nothing changes in what you send, on either API.
- Senders that are already active. They keep sending without interruption. There is nothing for you or them to do, and no sender needs to be re-activated.
- How senders are identified. Each sender’s own organisation number travels with every invoice as the legal organisation number, so invoices are attributed to the correct sender.
- What consumers see. The invoice content, the sender name shown in the netbank, and the payment details are unchanged.
- How you activate. The same endpoint and the same method, with the same parameters.
AvtaleGiro is not affected
AvtaleGiro activation and mandate handling work exactly as before, including the parts that involve Visma Sign. It is easy to read “Visma Sign is no longer used for eFaktura” as “Visma Sign is gone”, and that is not the case.
- AvtaleGiro requires a direct debit agreement between the sender and their bank, tied to the bank account number the agreement is registered on. It is arranged manually with the bank, using customer ID
229221to identify Visma, and it sits outside Maventa. - If a sender’s mandates are currently held by another service provider, a person with signatory rights still authorises a takeover through Visma Sign. This exists so that Maventa can retrieve the sender’s existing direct debit mandates through the ATG mandate API. It does not transfer the direct debit agreement, which stays between the sender and their bank.
- Direct debit mandates continue to be fetched by Visma only.
- Activating AvtaleGiro in Maventa does not stop a sender’s existing deduction file route. The invoice notification can go through Maventa while the deduction file goes through the previous provider. This has always been true for AvtaleGiro, and eFaktura behaves the same way, so the two channels no longer differ on this point.
Timeline
| Date | What happens |
|---|---|
| Before 26th of October 2026 | Check what your SOAP integration matches on for a successful activation. If it tests for OK: Email sent to <signer_email>, change it to test for OK
|
| 26th of October 2026 | The takeover and the Visma Sign step for eFaktura are removed, RESERVED is no longer returned, and the activation and disable responses change |
| After 26th of October 2026 | Retire any code that branches on RESERVED, handles the eFaktura signing flow, or waits out a delay before letting a sender send |
What you can clean up afterwards
None of this is urgent, and none of it breaks if you leave it alone.
- If your integration matches on the
Agreement is already activeerror on REST, update it to the new message. - If your integration handles
ERROR: Cannot disable agreement. Issuer state is ...on SOAP, or a failed profile deletion on REST, those cases no longer occur. - If your integration branches on
RESERVED, or handles the agreement signing flow for eFaktura, that code can be retired. - If your onboarding process treats a move from another provider as a cutover — by asking senders to close their old agreement first, or by collecting a signatory for Visma Sign — you can simplify it. Neither step is required for eFaktura.
- If your integration shows a “pending, please wait” state during activation, you can remove it.
Questions?
Maventa’s support team is happy to help with anything about this change.