Search

Example

This is an example page of elements and components we can have in the new documentation

Headings, starting with heading 2

There are 6 levels of headings but you should always start with level 2, that is two ## characters. Level 1 is reserved for the title of the full page.

Heading 2 can be done with two ## characters:

## Heading 2

Heading 3

Can be done with three ### characters:

### Heading 3

Heading 4

For level 4, use four #### characters:

#### Heading 4
Heading 5

For level 5, use five ##### characters:

##### Heading 5
Heading 6

For level 6, use six ###### characters:

###### Heading 6

Text effects

You can have italic text by wrapping it inside one one asterisk: italic

*italic*

For bold text, use two asterisks: bold

**bold**

Use three asterisks for bold and italic: bold and italic

***bold and italic***

Use strikethrough for deletions: strikethrough

~~strikethrough~~

Links can be created with square brackets followed by parentheses: Link Text

[Link Text](http://example.com)

For a reference style link: Link Text

[Link Text][1]

[1]: http://example.com

Blockquotes

Blockquotes can be indicated using the > symbol:

This is a blockquote. Add the actual double quote characters “yourself” if you are using this as a quote as in someone said something.

> This is a blockquote. Add the actual double quote characters "yourself" if you are using this as a quote as in someone said something.

Lists

Unordered Lists

Use asterisks to create an unordered list:

* Item 1
* Item 2
  * Sub-item 1
  * Sub-item 2

Ordered Lists

Use numbers followed by periods for an ordered list:

  1. First item
  2. Second item
    1. Subitem 1
    2. Subitem 2
1. First item
2. Second item
   1. Subitem 1
   2. Subitem 2

Images

Images are similar to links but use an exclamation mark before the square brackets:

Alt Text

Alt Text

Close

Code Blocks

Inline code can be indicated with backticks: inline code

`inline code`

For larger code blocks, use three backticks:

function example() {
  return "This is a code block";
}

Syntax highlighting

Always define the language like this:

# this is ruby code
array = ['some', 'code']
puts "Choosing one of them: #{array.sample}"
def foo
  puts 'foo'
end

Plain code blocks

If you do not define the language or define “plain” it is treated differently

def foo
  puts 'this will not be syntax coloured'
end

Horizontal Rules

Horizontal rules can be added with three dashes:


---

Tables

Tables can be created using pipes and dashes:

Header 1 Header 2
Cell 1 Cell 2
Cell 3 Cell 4
| Header 1 | Header 2 |
| -------- | -------- |
| Cell 1   | Cell 2   |
| Cell 3   | Cell 4   |
Tables with popovers and icons

Tables work well with inline popovers for contextual information. Use \n in popover content to create line breaks — useful for country-specific lists or multi-line explanations that would otherwise break table syntax.

Feature Service A Service B
Organisation number NO: Organisation number.
SE: Organisation number.
DK: CVR number.
FI: Business ID (y-tunnus)
NO/SE: Organisation number.
DK: CVR.
NL: KvK
Account number NO: Account number.
SE: BankGiro or PostGiro.
DK: FIK.
FI: IBAN or account number.
NL/BE: IBAN
Reference number Searched from a list by organisation number.
Not found the first time; automatic from the second time.
If the number cannot be interpreted, UNKNOWN is shown.
Not available
Line scanning
<!-- Icons: use $$$circle-check and $$$xmark for visual check/cross indicators -->
<!-- Popovers: use &&&trigger >>> content&&& for inline definitions -->
<!-- Line breaks in popovers: use \n for multi-line content inside tables -->

| Feature | Service A | Service B |
|---|---|---|
| Organisation number | $$$circle-check &&&Varies by country >>> NO: Organisation number.\nSE: Organisation number.\nDK: CVR number.\nFI: Business ID (y-tunnus)&&& | $$$circle-check |
| Account number | $$$circle-check &&&Format varies >>> NO: Account number.\nSE: BankGiro.\nDK: FIK&&& | $$$circle-check |
| Reference number | $$$circle-check &&&Details >>> Longer explanation here.\nSecond point.\nThird point.&&& | $$$xmark Not available |

Our own components

You can add our own custom components with special syntax right there in the Markdown file.

Badge

Badges can be created using three ! characters followed by the variant type. Close the badge with another three ! characters.

Available variants: brand, success, neutral, warning, danger

Brand badge
Brand Badge
Success badge
Success Badge
Neutral badge
Neutral Badge
Warning badge
Warning Badge
Danger badge
Danger Badge
Badge with animations
New Alert
Badge with appearance styles
Approved In Review
Pill badge
Status

Button

Buttons can be created using three % characters followed by the variant type and optional URL. Close the button with another three % characters.

Available variants: brand, success, neutral, warning, danger

Go to Google Submit
Different button variants
Neutral Button Warning Button Delete
Button with icons
Download File Confirm
Button with start and end icons
Settings Continue
Button with sizes and appearances
Review Changes Delete Item Rounded Button

Card

Cards can be created using three = characters to open and close the card content.

Header is the first bolded full line

This is a card component. Cards are great for grouping related content together and creating visual separation.

You can include:

  • Lists
  • Bold text
  • Links
  • And other markdown elements

Comparison (Before/After)

Comparison components can be created using three | characters optionally followed by a position value (0-100, default is 50).

Default comparison (50% position)
Before ImageAfter Image
Comparison with custom position (10%)
Before ImageAfter Image

Copy Button

Copy buttons can be created using three < characters. The content inside will be copied to the clipboard when clicked.

npm install @web-awesome/components

Tag

Tags can be created using three @ characters followed by the variant type. Close the tag with another three @ characters.

Available variants: brand, success, neutral, warning, danger

Brand tag
Brand Tag

brand

Success tag
Success Tag

success

Neutral tag
Neutral Tag

neutral

Warning tag
Warning Tag

warning

Danger tag
Danger Tag
Tag with icons
Featured Verified Pending
Tag with sizes and appearance
Small tag Large tag Filled tag
Removable tag
Remove me

Icons

Icons can be added inline using three $ characters followed by the icon name. You can use any Font Awesome icon — both free and pro icons are available.

Basic icons
$$$circle-check $$$circle-xmark $$$triangle-exclamation $$$circle-info $$$star $$$gear $$$rocket $$$shield
Icons inline with text

Status: Active — the service is running.

This feature is in beta and may change.

For more details, see the API reference.

Status: $$$circle-check Active — the service is running.

$$$triangle-exclamation This feature is in beta and may change.

$$$circle-info For more details, see the API reference.
Icons in tables

Icons work well in tables as status indicators — see the tables with popovers and icons example above.

| Feature | Status |
|---|---|
| Invoice sending | $$$circle-check Supported |
| Line scanning | $$$xmark Not available |

Callouts

Callouts can be done with the following syntax, using three : characters followed by the type of callout, and ending with again, three : characters. Like code blocks but with a different character.

info

This is an info callout

You can use bold text and other text decorations, for example to create a sort of “title” for the callout. And you can also:

success

This is a success callout and what is it used for

neutral

This is a neutral callout and what is it used for

warning

This is a warning callout and what is it used for

danger

This is a danger callout and what is it used for

With custom icon

This warning uses a custom shield icon instead of the default warning icon

This info callout uses a rocket icon to show something is launching

With sizes

A small success callout

A large warning callout with prominent text

With appearance styles

A danger callout with filled appearance

A neutral callout with outlined style

Dialogs

Dialogs (modals) can be created using three ? characters followed by optional parameters, then the button text, followed by three > characters to separate the dialog content. Close the dialog with another three ? characters.

Optional parameters:

Basic dialog
View API Documentation

The Maventa API uses REST architecture with JSON payloads. All requests require authentication using your API key.

Close
Dialog with light dismiss
Show Invoice Details

Click outside this dialog to close it.

Invoice Number: INV-2024-001

Amount: €1,234.56

Close
Dialog with custom width
View Integration Details

This dialog is 600 pixels wide and contains integration information.

Close
Dialog with all options combined
View Complete Example

This dialog has light dismiss enabled and is 800px wide. Click outside to close.

Close

Popovers

Popovers create floating content that appears on hover, attached to a trigger element. Use three & characters to open and close the popover. The trigger text and popover content are separated by three > characters.

Optional parameters:

Basic popover with button trigger
What is Peppol?

Peppol (Pan-European Public Procurement Online) is a set of standards for electronic procurement and invoicing. Maventa is a certified Peppol Access Point since 2012.

Use the link parameter to blend the trigger naturally into prose text. This is useful for inline definitions and contextual help.

Peppol is a standardized framework for cross-border electronic document exchange, widely used for e-invoicing in Europe.

Operator networks are national e-invoicing networks (e.g., Finnish operator network, Swedish operator network) that route invoices between service providers.

Popover placement options
Tooltip on top

This popover appears above the trigger element. This is the default placement.

Tooltip on bottom

This popover appears below the trigger element.

Tooltip on left

This popover appears to the left of the trigger element.

Tooltip on right

This popover appears to the right of the trigger element.

Popover without arrow
No arrow here

This popover has no arrow pointing to the trigger. Can look cleaner in some contexts.

Popover with custom distance
Distant popover

This popover is 20 pixels away from the trigger element, giving it more breathing room.

Popover with rich content
View API authentication details

Authentication methods:

  • OAuth 2.0 — Recommended for all new integrations
  • API Key — Available for server-to-server communication
  • Vendor API Key — For partner/reseller access

All API requests must include the Authorization header.

See the Authentication Guide for details.

Combined parameters

Pre-send validation checks your invoice XML against the target format schema before delivery. Use the Validator API to catch formatting issues early and avoid rejected invoices.

Inline popovers

Inline popovers can be used directly within a sentence. They always render as link-styled triggers (underlined text). The syntax is <button type='button' id='popover-58a22e77' class='ma-popover-trigger' style='background: none; border: none; padding: 0; color: inherit; text-decoration: underline; text-decoration-style: dotted; cursor: pointer; font: inherit;'>trigger text</button><wa-popover for='popover-58a22e77' placement='top'>popover content</wa-popover> on a single line.

Send invoices via Peppol is a standardized e-invoicing network used across Europe to your trading partners.

You can add placement parameters before the trigger text: learn about API keys are used to authenticate your requests to the Maventa API in our documentation.

Combine multiple parameters: check the Invoices are validated against Peppol business rules before being sent rules before submitting.

Multiple inline popovers on the same line: use Pan-European e-invoicing network or Secure file transfer protocol for batch processing for delivery.

Inline code works as trigger text too: use scheme Depends on which identifier was used to register the company account in Maventa for Dutch companies.

Image Dialogs (Auto-transformation)

When image_dialog: true is enabled in _config.yml, all markdown images automatically become clickable and open in full-size dialogs.

Standard images that open in dialogs

Click on these images to view them in full size:

Small preview image

Small preview image

Close
Large diagram

Large diagram

Close
Images with custom dialog width

Control the dialog width by adding a width parameter in the image title:

This image will open in a dialog that takes 50% of the viewport width:

API Flow Diagram

API Flow Diagram

Close

This image will open in a dialog with a fixed width of 800 pixels:

System Architecture

System Architecture

Close

This image will open in a dialog that takes 90% of the viewport width:

Wide Workflow Diagram

Wide Workflow Diagram

Close
Images that don’t open in dialogs

Add "nodialog" to the title to prevent the dialog transformation:

Cat pic but no dialog

This is useful for small icons, logos, or decorative images that don’t need to be viewed full-size.

Summary / Details

Collapsible summary/details component can be created by using three ^ characters followed by the type of the layout:

The summary and details are separated by three > characters and the whole component is closed by repeating the three starting characters: ^

When to use this element?
Summary ‘outlined’, default option

Summary where you can even use Markdown like bold or italic

Details with more text

  • and a list
  • for example

For this default option you can leave out the type “outlined”

Summary ‘plain’

Summary where you can even use Markdown like bold or italic

Details with more text

  • and a list
  • for example
Summary ‘filled’

Summary where you can even use Markdown like bold or italic

Details with more text

  • and a list
  • for example
Summary ‘filled-outlined’

Summary where you can even use Markdown like bold or italic

Details with more text

  • and a list
  • for example
Summary with icon on left

This is especially useful for plain type, looks better with icon on left

Details with more text

  • and a list
  • for example
Summary with custom expand/collapse icons

Click to expand with plus/minus icons

This details section uses custom icons for opening and closing instead of the default chevrons.

Summary initially open

This section starts expanded

Notice that this details section is already open when the page loads.

Accordion groups (only one open at a time)

First frequently asked question

This is the answer to the first question. The name:value syntax creates an accordion group where only one item can be open at a time.

Second frequently asked question

This is the answer to the second question. Opening this will automatically close the first item.

Third frequently asked question

This is the answer to the third question. It works just like accordion behavior in the old documentation but with cleaner syntax.

Tab groups

Tab groups can be created by using six + characters, followd by the positioning of the tabs:

Tabs inside tab groups are created with three + characters. Place multiple tabs inside the tab groups, and close both of them off by using the same amout of + characters they were started with.

When to use the tab group element?
Tabs aligned ‘top’ (default)
First tabSecond tabLast tab

Content for tab 1 goes here.

Content for tab 2 goes here.

Content for tab 3 goes here.

Tabs aligned ‘start’
First tabSecond tabLast tab

Content for tab 1 goes here.

Content for tab 2 goes here.

Content for tab 3 goes here.

Tabs aligned ‘end’
First tabSecond tabLast tab

Content for tab 1 goes here.

Content for tab 2 goes here.

Content for tab 3 goes here.

Tabs aligned ‘bottom’
First tabSecond tabLast tab

Content for tab 1 goes here.

Content for tab 2 goes here.

Content for tab 3 goes here.

Tabs with manual activation (click instead of hover)
DocumentationExamplesAPI Reference

Read the documentation here with detailed explanations and guides.

See practical code examples in different programming languages.

Browse the complete API reference with all endpoints and parameters.

Code blocks inside different custom components

Code blocks in Callouts

You can use code blocks inside callouts

This is an info callout with some Ruby code inside

class Maventa
  def greet
    puts "Hello from Maventa!"
  end
end

Maybe it does not look so good but it can be done anyway.

Code blocks in Summary/details

You can use code blocks inside summary/details component too

Open this to see some C# code

/// <summary>
/// Set credentials for future API calls
/// </summary>
/// <param name="userApiKey"></param>
/// <param name="companyUuid"></param>
/// <param name="vendorApiKey"></param>
public void SetCredentials(string userApiKey, string companyUuid, string? vendorApiKey = null)
{
    Config.SetConfig(new ConfigValues() { UserApiKey = userApiKey, CompanyUuid = companyUuid, VendorApiKey = vendorApiKey });
}

This might be useful, does not look as bad as the callout does.

Code blocks in Tab groups

You can use code blocks inside tab groups too

RubyJavaC#Python
class Maventa
  def greet
    puts "Hello from Maventa!"
  end
end

Maventa.new.greet
public class Maventa {
    public static void main(String[] args) {
        System.out.println("Hello from Maventa!");
    }
}
using System;

class Maventa {
    static void Main() {
        Console.WriteLine("Hello from Maventa!");
    }
}
class Maventa:
    def greet(self):
        print("Hello from Maventa!")
Maventa().greet()
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's reminder and collection service 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 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