Vipps MobilePay Management API (2.0.0)
Download OpenAPI specification:Download
The Management API enables partners and merchants to manage their sales units and get information about partners and product orders. See the API Guide for more details.
Please note: The Management API documentation contains both available functionality, and functionality in the idea stage. See each endpoint and the API guide for details.
Functionality for managing merchants. Merchants can do this on portal.vippsmobilepay.com.
Get a merchant by business identifier
Get basic information about a merchant. Please note: There are strict rules for what information Vipps MobilePay is allowed to share. See the API guide for more details.
Authorizations:
path Parameters
scheme required | string Example: business:NO:ORG The type of organization identifier, typically |
id required | string Example: 9876543221 The ID used for identifying a merchant. For Norwegian companies this is the organization number. |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- default
{- "businessIdentifier": {
- "scheme": "business:NO:ORG",
- "id": "9876543221"
}, - "name": "ACME Fantastic Fitness",
- "status": "ACTIVE",
- "createdAt": "2023-31-12T06:45:25.921251Z",
- "updatedAt": "2023-31-12T06:45:25.921251Z",
- "countryCode": "NO",
- "businessAddress": {
- "lines": [
- "Robert Levins gate 5"
], - "postCode": "0154",
- "city": "Oslo",
- "countryCode": "NO"
}, - "businessPostAddress": {
- "lines": [
- "Robert Levins gate 5"
], - "postCode": "0154",
- "city": "Oslo",
- "countryCode": "NO"
}
}
Get sales units for a merchant by business identifier
Get a list of sales units (MSNs) for the merchant. When used by a partner: Only returns sales units connected to the partner.
Authorizations:
path Parameters
scheme required | string Example: business:NO:ORG The type of organization identifier, typically |
id required | string Example: 9876543221 The ID used for identifying a merchant. For Norwegian companies this is the organization number. |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- default
[- {
- "msn": 123456,
- "name": "ACME Fantastic Fitness"
}
]
Functionality for managing sales units. Merchants can do this on portal.vippsmobilepay.com.
Get a list of sales units that a merchant or partner can access
For partners using partner keys: Get a (long) list of all sales units registered with the partner making the API call.
Authorizations:
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- default
[- {
- "msn": 123456,
- "name": "ACME Fantastic Fitness"
}
]
Get sales unit details based on MSN
Eliminates the need to contact the merchant or Vipps MobilePay to get information about the sales units.
Authorizations:
path Parameters
msn required | string^\d{3,}$ The Vipps MSN (merchant serial number) for the sales unit. |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- default
{- "msn": 123456,
- "name": "ACME Fantastic Fitness",
- "businessIdentifier": {
- "scheme": "business:NO:ORG",
- "id": "9876543221"
}, - "configuration": {
- "paymentAllowed": false,
- "captureType": "ReserveCapture",
- "skipLandingPageAllowed": false,
- "recurringAllowed": false,
- "partialCaptureAllowed": true,
- "lateCaptureAllowed": false,
- "landingPagePhoneNumberLocked": false,
- "longLivingPaymentAllowed": false,
- "creditCardPaymentAllowed": true
}
}
Functionality for managing product orders. Merchants can do this on portal.vippsmobilepay.com.
Prefill a product order on behalf of a merchant
Submit data that prefills the order form on https://portal.vippsmobilepay.com, so the merchant can review the information and submit the product order.
Please note that complianceData
and website
are required for the PAYMENT_INTEGRATION
product type.
Partners can still submit the product orders without it, but the merchant will have to fill
in compliance data and website information manually in the merchant portal product order form and submit,
and this is a common source of problems.
We have made as many of the fields as possible optional, but please try to send as much as you can, to make it easy for the merchant and make the processing as fast as possible.
IMPORTANT: Please provide all the necessary details, so it will not be necessary for us to request more details. This is the most common reason for delays. See: Typical reasons for delays.
Authorizations:
path Parameters
productOrderId required | string <uuid> Example: 8a11afb7-c223-48ed-8ca6-4722b97261aa The ID of the prefilled product order |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Idempotency-Key required | string <= 50 characters ^[a-zA-Z0-9-]{1,50}$ Example: kRk3uEeiogxLu1yGSZRlNgsIv3TuNS An Idempotency key must be provided to ensure idempotent requests. |
Request Body schema: application/jsonrequired
Product order for a merchant request body
required | object (businessIdentifier) Business registration number of the merchant for whom the partner is submitting the product order.
Format: |
salesUnitName | string or null [ 1 .. 30 ] characters ^[\p{L}\p{M}\d\\(\)-_\+\s\.`]+$ The name of the point of sale that will be shown to the users in the Vipps app and on the Vipps landing page. The sales unit name can be edited later on portal.vippsmobilepay.com. |
salesUnitLogo | string or null <byte> A base64 encoded string of the logo of the merchant. The logo will be displayed in the Vipps app, both when paying and on receipts and also in Vipps landing page. The logo must be in PNG (Portable Network Graphics) format. Square images are recommended. The longest side can not be more than 1000 pixels. The minimum size is 100 x 100 pixels. Images not matching the above criteria will not be shown to the merchant in the merchant portal. The logo can be edited later on portal.vippsmobilepay.com. |
object or null (Bank account for the given entity.) | |
pricePackageId | string or null <uuid> This is the ID for one of the price packages that are available for the partner to use.
The partner's price packages are retrieved with |
productType required | string Enum: "PAYMENT_INTEGRATION" "CASHIER" "CHECKOUT" "LOGIN" The type of product ordered for the merchant. |
productUseCase | string or null (ProductUseCase) Enum: "Website" "WebsiteWithTest" "App" "Unknown" Where will sales take place?
A website?
A website that is not yet launched, so a test website must be used?
A native app?
Something else?
If you are offering a Point of Sales (POS) integration, you should specify For all alternatives: Make sure to provide enough details in |
annualTurnover | integer or null <int64> [ 0 .. 999999999 ] Annual turnover for the merchant in their local currency without minor currency units. |
intendedPurpose | string or null Description (explanation) of the product or products that will be sold.
Include all information relevant to processing the product order, so the
processing of the application can be as efficient as possible.
This can include hints such as specifying "POS integration in physical store"
to indicate that the sales unit needs |
object or null Properties for use with 'productUseCase: App' | |
object or null | |
object or null Deprecated | |
merchantCategoryCode | string or null <^[0-9]{4}$> The merchant category code (MCC) is a four-digit number used to classify the merchant by the type of goods or services it provides. The MCC is used by Vipps MobilePay to determine the risk level of the merchant. Our product order form contains a user-friendly MCC selector, which contains a subset of all MCCs. If the MCC specified with the API matches one of the user-selectable ones, that MCC will be pre-selected in the form. If the MCC does not match, or no MCC is specified, no MCC will be pre-selected. |
Responses
Request samples
- Payload
{- "businessIdentifier": {
- "scheme": "business:NO:ORG",
- "id": "9876543221"
}, - "salesUnitName": "ACME Fantastic Fitness",
- "salesUnitLogo": "VGhlIGltYWdlIGdvZXMgaGVyZQ==",
- "settlementBankAccount": {
- "scheme": "BBAN:NO",
- "id": "86011117947"
}, - "pricePackageId": "8a11afb7-c223-48ed-8ca6-4722b97261aa",
- "productType": "PAYMENT_INTEGRATION",
- "productUseCase": "WebsiteWithTest",
- "annualTurnover": 100000,
- "intendedPurpose": "Gym membership for accessing the gym's facilities.\nGuest will be not physically present when buying the subscription,\nas that is done on the gym's website.",
- "app": {
- "appName": "string"
}, - "website": {
- "testWebsiteUrl": "https://example.com/test ",
- "testWebsiteUsername": "test-user",
- "testWebsitePassword": "test-password"
}, - "complianceData": {
- "giftCard": {
- "isSalesPercentageLessThanTen": false,
- "validityDuration": "3 years",
- "giftCardTurnoverShare": "about 25%"
}, - "membership": {
- "turnoverShare": "about 25%",
- "membershipValidity": "CurrentCalendarYear",
- "periodDistribution": "50% yearly 20% monthly"
}, - "subscription": {
- "turnoverShare": "about 25%",
- "periodDistribution": "50% yearly 20% monthly"
}, - "course": {
- "turnoverShare": "about 25%",
- "timeBeforeOrder": "10 days",
- "period": "once every 6. week",
- "isOnlineCourseOffered": false,
- "onlineAccessibleTime": "for 3 months"
}, - "ticket": {
- "turnoverShare": "about 25%",
- "prepurchaseTime": "10 weeks"
}, - "rent": {
- "turnoverShare": "about 25%",
- "prepurchaseTime": "15 days",
- "averageRentalDuration": "3 weeks"
}, - "prepaidServices": {
- "turnoverShare": "about 25%",
- "prepurchaseTime": "10 weeks"
}, - "donation": {
- "acceptsDonation": false
}
}, - "merchantCategoryCode": 5942
}
Response samples
- 201
- default
{- "prefilledOrderId": "81b83246-5c19-7b94-875b-ea6d1114f099",
}
Delete a prefilled product order
Delete a product order that has not been submitted by the merchant.
Authorizations:
path Parameters
productOrderId required | string <uuid> Example: 8a11afb7-c223-48ed-8ca6-4722b97261aa The ID of the prefilled product order |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 400
- 401
- 403
- 404
- 500
- default
{- "title": "Not authorized to create a product order",
- "status": 401,
- "detail": "Not authorized to create a product order. Check whether Authorization token and Ocp-Apim-Subscription-Key are correct.",
- "instance": "urn:uuid:123e4567-e89b-12d3-a456-426655440000",
- "extraDetails": [
- {
- "key": "CustomErrorCode",
- "value": "9000"
}
]
}
Get information about a product order
Status: Available (very, very soon). Information about a product order
Authorizations:
path Parameters
productOrderId required | string <uuid> Example: 8a11afb7-c223-48ed-8ca6-4722b97261aa The ID of the product order |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
- default
{- "productOrderType": "PREFILL",
- "productOrderId": "81b83246-5c19-7b94-875b-ea6d1114f099",
- "status": "COMPLETED",
- "businessIdentifier": {
- "scheme": "business:NO:ORG",
- "id": "9876543221"
}, - "salesUnit": {
- "msn": 123456,
- "name": "ACME Fantastic Fitness"
}
}
Get a list of product orders
Information about product orders:
- Product orders made with
POST:/management/v1/product-orders
. - Product orders made with Product order templates (the links we create for you).
- Product orders made by a merchant on portal.vippsmobilepay.com without prefill or template.
Authorizations:
query Parameters
includeExpired | boolean This endpoint normally returns product orders for the last 90 days. To retrieve older product orders, set this parameter to `true``. We may not return very old product orders. Default is false. |
Responses
Response samples
- 200
- 500
[- {
- "productOrderType": "PREFILL",
- "productOrderId": "81b83246-5c19-7b94-875b-ea6d1114f099",
- "status": "COMPLETED",
- "businessIdentifier": {
- "scheme": "business:NO:ORG",
- "id": "9876543221"
}, - "salesUnit": {
- "msn": 123456,
- "name": "ACME Fantastic Fitness"
}
}
]
Get a list of prefilled product orders Deprecated
Information about prefilled product orders you have created.
Authorizations:
Responses
Response samples
- 200
- 500
[- {
- "productOrderId": "81b83246-5c19-7b94-875b-ea6d1114f099",
- "status": "COMPLETED",
- "businessIdentifier": {
- "scheme": "business:NO:ORG",
- "id": "9876543221"
}, - "salesUnit": {
- "msn": 123456,
- "name": "ACME Fantastic Fitness"
}
}
]
Get information about a prefilled product order: v1 Deprecated
Status: Deprecated. Information about a prefilled product order
Authorizations:
path Parameters
prefilledProductOrderId required | string <uuid> Example: 8a11afb7-c223-48ed-8ca6-4722b97261aa The ID of the prefilled product order |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
- default
{- "productOrderId": "81b83246-5c19-7b94-875b-ea6d1114f099",
- "status": "COMPLETED",
- "businessIdentifier": {
- "scheme": "business:NO:ORG",
- "id": "9876543221"
}, - "salesUnit": {
- "msn": 123456,
- "name": "ACME Fantastic Fitness"
}
}
Functionality relating to Partners.
Get price packages for a partner
The price packages can have different names and percentages.
Each price packages has a unique ID: pricePackageId
.
This endpoint gives partners an overview of their price packages.
The pricePackageId
is also used for the prefill endpoint:
POST:/product-orders
.
Authorizations:
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- default
[- {
- "pricePackageId": "8a11afb7-c223-48ed-8ca6-4722b97261aa",
- "name": "POS standard",
- "description": "2.99%",
- "visibleInSignupForm": true,
- "productType": "PAYMENT_INTEGRATION",
- "market": "NO",
- "commission": "30 %"
}
]
Proposals and ideas for future functionality. Please give us your feedback if you are interested in these.
Partners - Get information about a partner.
Status: Idea/proposal.
For partners using partner keys: Get details for the partner that is making the request. An endpoint where a partner can fetch the information stored about them.
Authorizations:
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- default
{- "partnerId": "123456",
- "name": "ACME Partner Inc",
- "level": "Vipps Partner Premium",
- "partnerContactName": "firstName lastName",
- "partnerContactEmail": "firstname.lastname@vippsmobilepay.com",
- "status": "ACTIVE"
}
Merchants - Get all merchants
Status: Idea/proposal.
For partners. Get a (long) list of all merchants that have one or more sale units registered with the partner making the API call.
Authorizations:
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- default
{- "merchants": [
- {
- "businessIdentifier": {
- "scheme": "business:NO:ORG",
- "id": "9876543221"
}, - "name": "ACME Fantastic Fitness",
- "status": "ACTIVE",
- "createdAt": "2023-31-12T06:45:25.921251Z",
- "updatedAt": "2023-31-12T06:45:25.921251Z",
- "countryCode": "NO",
- "businessAddress": {
- "lines": [
- "Robert Levins gate 5"
], - "postCode": "0154",
- "city": "Oslo",
- "countryCode": "NO"
}, - "businessPostAddress": {
- "lines": [
- "Robert Levins gate 5"
], - "postCode": "0154",
- "city": "Oslo",
- "countryCode": "NO"
}
}
]
}
Merchants - Get a merchant's contract(s)
Status: Idea/proposal.
May return a (link to a) PDF.
Authorizations:
path Parameters
scheme required | string Example: business:NO:ORG The type of organization identifier, typically |
id required | string Example: 9876543221 The ID used for identifying a merchant. For Norwegian companies this is the organization number. |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- default
{
}
Sales units - Update sales unit
Status: Idea/proposal.
Change the sales unit's name, logo, possibly more.
Authorizations:
path Parameters
msn required | string [ 5 .. 6 ] characters ^\d{5,6}$ The Vipps MSN (merchant serial number) for the sales unit. |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Request Body schema: application/jsonrequired
What to patch
name | string <= 50 characters Name of the sales unit. |
salesUnitLogo | string <byte> Base64 encoded string of the logo of the merchant. The logo will be displayed in the Vipps app, both when paying and on receipts and also in Vipps landing page. The logo must be in PNG (Portable Network Graphics) format. Square images are recommended. The longest side can not be more than 1000 pixels. The minimum size is 100 x 100 pixels. Images not matching the above criteria will not be shown to the merchant in the merchant portal. The logo can be edited later on portal.vippsmobilepay.com. |
status | string Default: "ACTIVE" Enum: "ACTIVE" "DEACTIVATED" Status of the sales unit. This may be used to activate and deactivate a sales unit. |
Responses
Request samples
- Payload
{- "name": "ACME Fantastic Fitness Deluxe",
- "salesUnitLogo": "VGhlIGltYWdlIGdvZXMgaGVyZQ==",
- "status": "ACTIVE"
}
Response samples
- default
{- "title": "Not authorized to create a product order",
- "status": 401,
- "detail": "Not authorized to create a product order. Check whether Authorization token and Ocp-Apim-Subscription-Key are correct.",
- "instance": "urn:uuid:123e4567-e89b-12d3-a456-426655440000",
- "extraDetails": [
- {
- "key": "CustomErrorCode",
- "value": "9000"
}
]
}
API quality - Get API quality info.
Status: Idea/proposal.
Provide success and failure rates for all API requests. This is to help you keep you API integrations free from errors. Partners are contractually required to monitor for errors (and correct problems quickly), and this endpoint makes that work much easier.
Authorizations:
path Parameters
msn required | string [ 5 .. 6 ] characters ^\d{5,6}$ The Vipps MSN (merchant serial number) for the sales unit. |
header Parameters
Vipps-System-Name | string <= 30 characters Example: WooCommerce The name of the solution. One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Version | |
Vipps-System-Plugin-Name | string <= 30 characters Example: woocommerce-payment The name of the plugin (if applicable). One word in lowercase letters is good. See HTTP headers. |
Vipps-System-Plugin-Version | string <= 30 characters Example: 1.2.1 The version number of the plugin (if applicable). See HTTP headers. |
Responses
Response samples
- 200
- default
{- "ApiQualityItems": [
- {
- "endpoint": "POST:/epayment/v1/payments",
- "total Requests": 1000,
- "successRate": 95,
- "status200": 950,
- "status400": 10,
- "status401": 10,
- "status403": 10,
- "status404": 10,
- "status429": 10,
- "status500": 0
}
]
}