Search
Getting Started Invoice sending Invoice sending Consumer Invoicing Printing Email invoicing Invoice receiving Invoice receiving Scanning Detect Fraud reporting Integration tools Webhooks Reference implementations Maventa Connector Embeddable User Interface Peppol Peppol Network Document Exchange Invoice Response Self-billing support Invoicing formats Invoicing formats Validation Peppol BIS 3.0 Finvoice 3.0 Document types and type codes Preview Maventa JSON (table) Preview Maventa JSON (json schema) Account management Companies and Settings Department Company Users Billing Accounts receivable Accounts receivable Ropo Reminder & Collection Amili Kassavirta Amili Perintä

Embeddable User Interface

The Embeddable User Interface (EUI) allows ERP integrators to embed Maventa’s interface directly into their product. End customers get access to Maventa features and services without waiting for ERP-side development, reducing time to market for new capabilities.

What to handle via API vs EUI

Although most functionality is available through the EUI, some functions are best handled through a direct API integration:

Everything else can be handled through the EUI:

How the EUI looks

EUI view for settings

EUI view for settings

Close

How to take the EUI into use

Decide what to show and how

Start by deciding which parts of the EUI your end customers need. Then consider how to present those views:

Read more about customising the EUI. To get started, contact Maventa support and request an ERP profile. Maventa will set up a profile based on your preferences.

Choose an embedding method

Maventa offers two embedding methods:

  1. Script embedding — Include a script tag on your HTML page. Recommended for products that run in the user’s browser.
  2. Iframe embedding — Use an iframe or similar solution. Note that cross-domain content loading may cause issues with this method.

Both methods require fetching an access token for the company.

Hosting domains

The EUI is hosted under the following domains:

Production:

Testing:

Fetch an access token for the company

The EUI uses token-based authentication with company_uuid, user_api_key, and vendor_api_key.

Fetch the token from the AutoXChange OAuth2 endpoint using the following parameters:

Parameter Description Value/example
vendor_api_key The vendor API key for the ERP 37fc1ebc-dd4f-11ea-87d0-0242ac130003
scope The scope required — eui is mandatory eui
grant_type The OAuth2 grant type client_credentials
client_id The company UUID 298c6ce2-dd4f-11ea-87d0-0242ac130003
client_secret The user API key 32d74434-dd4f-11ea-87d0-0242ac130003

Endpoints:

cURL example for fetching a token

curl -X POST "https://ax-stage.maventa.com/oauth2/token" \
-H "accept: application/json" \
-H "Content-Type: multipart/form-data" \
-F "grant_type=client_credentials" \
-F "client_id=company_uuid" \
-F "client_secret=user_api_key" \
-F "scope=eui" \
-F "vendor_api_key=erp_vendor_api_key"

Example of a successful token response

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudG......",
  "token_type": "bearer",
  "expires_in": 3600,
  "scope": "eui"
}

Once you have an access token, use it with your chosen embedding method: script embedding or iframe embedding.

Method 1 - Script embedding

Add a <script> tag to your HTML page:

<body>
    <div style="height: 1024px" id="eui-container"></div>
    <script src="https://autointerface-embeddable.maventa.com/embed"
            data-token="eyJ0eXAiOiJKV1QiLCJraWQiOiJjODJhZTdiZTU...."
            data-container-id="eui-container"
            data-default-path="/invoices"
            data-profile="my_erp_profile_name"
            data-locale="en"
            data-setup-top_menu="false"
    ></script>
</body>
Parameter Description Value/example
src Main URL for EUI https://autointerface-embeddable.maventa.com/embed
data-token The access_token from the OAuth2 response eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9….
data-container-id Must match the id of the container div. The EUI renders inside this element eui-container
data-default-path Page to open on load. See direct URLs /invoices
data-profile The ERP’s profile name for customisation my_erp_profile_name
data-locale Language of the EUI (fi, se, no, dk, nl, en) fi (default: company’s country)
data-setup-top_menu Setup parameter for further customisation false = hide / true = show
div style=”height:..” A height must be set on the container, either static or dynamic. Without it, the EUI will not be visible height: 1024px

In the example above, the EUI opens directly to the invoices page with the language set to English and the top menu hidden.

With script embedding, there is no way to renew the token. The access token expires after one hour, ending the user’s session. Make sure your application allows users to refresh the page and re-authenticate when the token expires.

Method 2 - Iframe embedding

Endpoints:

  Testing Production
Get access token https://ax-stage.maventa.com/oauth2/token https://ax.maventa.com/oauth2/token
Initiate EUI session https://autointerface-embeddable-stage.maventa.com/authentication/token https://autointerface-embeddable.maventa.com/authentication/token
Renew token https://autointerface-embeddable-stage.maventa.com/authentication/renew https://autointerface-embeddable.maventa.com/authentication/renew

Monitor token expiry for automatic session renewal

While the EUI session is active, monitor the token expiry time. The expires_in attribute in the token response indicates how long the access token is valid. Deduct a few minutes from this value to avoid session interruptions. Stop the renewal process when the user closes the EUI or logs out.

To enable token renewal, pass a unique ID as the session_id parameter in the initial authentication request (see the next step). This ID associates the session with subsequent renewal requests.

If the token is not renewed before it expires, the session ends and the user must re-authenticate.

Open the EUI session in a browser component

Once you have a token, open the EUI in a browser component. Depending on the component’s capabilities, pass the token either in the POST body or in the Authorization header as a Bearer token.

Parameter Description Value/example
token The access_token from the OAuth2 response eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9….
profile The ERP’s profile name for customisation my_erp_profile_name
locale Language of the EUI (fi, se, no, dk, nl) no
redirect_to Page to open on load. See direct URLs /invoices
session_id Unique session identifier (UUID recommended) erp_users_session_id

cURL for initiating an EUI session with POST

curl -X POST "https://autointerface-embeddable-stage.maventa.com/authentication/token" \
-H "Content-Type: multipart/form-data" \
-F "token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9......" \
-F "profile=my_erp_profile_name" \
-F "locale=no" \
-F "redirect_to=/invoices" \
-F "session_id=erp_users_session_id"

HTML form example for token login

<!DOCTYPE html>
<html>
<head></head>
<body>
  <form action="https://autointerface-embeddable-stage.maventa.com/authentication/token" method="POST" target="_blank">
    <fieldset>
      <legend>Authentication using token</legend>
      <br/>
      <label>token:</label>
      <input type="text" name="token" size="100" />
      <br/>
      <label>session_id:</label>
      <input type="text" name="session_id" size="70" />
      <br/>
      <label>redirect_to:</label>
      <input type="text" name="redirect_to" size="70" />
      <br/>
      <label>profile:</label>
      <input type="text" name="profile" size="40" />
      <br/>
      <br/>
      <input type="submit" value="Log in"/>
    </fieldset>
  </form>
</body>

Renew the token for an existing session

When the token is about to expire, fetch a new access token and pass it to the EUI renewal endpoint together with the session_id from the initial request. If you can extract the session cookie from the browser component, you can use that instead of the session_id.

cURL for renewing an EUI session token

curl -X POST "https://autointerface-embeddable-stage.maventa.com/authentication/renew" \
-H "Content-Type: multipart/form-data" \
-F "token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudGl0eSI6InVzZXIiLCJ1c......" \
-F "session_id=erp_users_session_id"

Customise your own view of the EUI

The EUI is highly customisable. Each ERP can control which views and features are visible to end customers — for example, hiding the received invoices list if the ERP does not support invoice receiving. Customisation is done through ERP profiles and optional setup parameters.

ERP profiles

ERP profiles are the primary way to customise the EUI. Each profile is created by the Maventa team based on the ERP’s requirements. Contact Maventa support to request a profile before starting the integration.

...&profile=name_of_the_profile

Key points about profiles:

Setup parameters

Setup parameters provide additional control on top of profiles. They use the same structure as profiles but override profile settings at the request level. This is useful for adjusting views for specific customers without creating separate profiles. Empty values for any setup parameter are treated as false.

For example, to hide invoice receiving for customers who do not use that feature:

...&setup[sections][invoices][inbound]=false
&setup[sections][settings][invoice][receiving]=false

List of setup parameters

Use these parameters to show or hide specific parts of the EUI. To request additional parameters, contact Maventa support.

Menu

  • menu — show/hide all menus (top and left)
    • menu top_menu — show/hide only the top menu
    • menu left_menu — show/hide only the left menu

Invoice lists

  • sections invoices
    • sections invoices inbound — show/hide the received invoices list
    • sections invoices outbound — show/hide the sent invoices list and invoices in error state list

Settings

  • sections settings — show/hide the entire settings tab from the top menu
    • sections settings company — show/hide company settings from the left menu
      • sections settings company details — show/hide company details
      • sections settings company address — show/hide company address information
    • sections settings invoice — show/hide all invoice settings from the left menu
      • sections settings invoice receiving — show/hide invoice receiving settings
      • sections settings invoice sending — show/hide invoice sending settings
      • sections settings invoice layout_settings — show/hide invoice layout settings
      • sections settings invoice notifications — show/hide invoice notification settings

Other documents

  • sections documents
    • sections documents order — show/hide orders
    • sections documents order_response — show/hide order responses
    • sections documents catalogue — show/hide catalogues
    • sections documents catalogue_response — show/hide catalogue responses

Direct URLs

Direct URLs open the EUI on a specific page. Use these to provide contextual navigation — for example, linking to the invoice list from the ERP’s invoicing section, or opening the settings page from the ERP’s settings area. You can also link directly to a single invoice’s details.

Available URLs

Dashboard

  • / — Dashboard (currently a blank page with menus)

Invoice lists

  • /invoices — Received invoices
  • /invoices/outbound — Sent invoices
  • /invoices/error — Sent invoices in error state

Invoice details

  • /invoices/{invoice_id} — Details for a received invoice
  • /invoices/outbound/{invoice_id} — Details for a sent invoice

Invoice settings

  • /settings/invoice/sending/index — Invoice sending settings
  • /settings/invoice/notifications/index — Invoice notification settings
  • /settings/invoice/receiving/index — Invoice receiving settings (network activation, scanning service)
  • /settings/invoice/bank_network_no/index — Consumer invoicing settings (Norway)
  • /settings/invoice/bank_network_fi/index — Bank network activation (Finland)

Company settings

  • /settings/company/details/index — Company details
  • /settings/company/address/index — Company address information

Other document lists

  • /documents — Received documents
  • /documents/outbound — Sent documents
  • /documents/error — Sent documents in error state

Other document settings

  • /settings/document/receiving/index — Receiving settings for non-invoice documents
  • /settings/additional_services/visma_scanner_receiving/index — Visma Scanner activation

Services

  • /finder — Finder (search for e-invoice addresses)
  • /receivables — Receivables management (Finland)
  • /consumer_vendor_registry — Consumer agreements (Norway)

Receivables details

  • /receivables/{invoice_id} — Details for a receivable assignment

Supported browsers

Back to top

AI Chat Support 24/7

  • Get help via AI chat available 24/7 whenever it suits you
  • Chat extensively uses Maventa support pages, websites, and blogs in its answers
  • If you need assistance that the AI cannot provide, you can also ask a customer service agent to join the conversation
  • Support requests processed Monday to Friday
Cancel Open chat

Got feedback?

Did you not find what you were looking for? Or was something explained unclearly? Or just want to share your thoughts? We are happy to hear your feedback!

Note: This form is not a way to get support, this is only for feedback for the documentation website. If you need support, please contact Maventa support.

Integration Guide Services & Reach API Specification Changelogs Integration guide Getting Started Invoice sending Consumer Invoicing Printing Email invoicing Invoice receiving Scanning Detect Fraud reporting Webhooks Reference implementations Maventa Connector Embeddable User Interface Peppol Network Document Exchange Invoice Response Self-billing support Invoicing formats Validation Peppol BIS 3.0 Finvoice 3.0 Document types and type codes Maventa JSON (table) Maventa JSON (json schema) Companies and Settings Department Company Users Billing Accounts receivable Ropo Reminder & Collection Amili Kassavirta Amili Perintä Services and reach Maventa services and reach e-invoicing in Finland Mass Printing Service e-invoicing in Sweden e-invoicing in Norway e-invoicing in Denmark e-invoicing in the Netherlands e-invoicing in Belgium e-invoicing in Germany e-invoicing in Estonia e-invoicing in Latvia e-invoicing in Poland e-invoicing in Italy e-invoicing in France e-invoicing in Spain Api specification API overview Getting Started Common & authentication API Invoices API Documents API Companies & settings API Lookups API Detect API Validator API Receivables API Billing API Scanning API B2CFI API B2CNO API B2CSE API Partner API Getting Started API Methods Overview Account Configuration API Methods Invoice Sending API Methods Invoice Receiving API Methods B2C Norway API Methods B2C Finland API Methods Other API Methods Changelogs Product changelog Developer Changelog
Clear Send

Enter your credentials to Maventa testing environment, to authenticate and try things out with the Swagger UI. This will fetch a Bearer token using OAuth2 with the endpoint POST https://ax-stage.maventa.com/oauth2/token. The token is stored in your browser's session storage (cleared when you close the tab) and used in Swagger calls done from this documentation website. The token is valid for 1 hour.

Never use your production credentials here. This is only for testing the Maventa test environment in the Swagger UI.
Reset All None
eui global company lookup document:receive document:send invoice:receive invoice:send company:read company:write validate receivables:assignments analysis billing:reports partner:invoice_delivery_actions partner:lookups partner:takeovers partner:lyanthe_scan_service fi_bank_message:send fi_bank_message:receive
Cancel Sign In