Vipps MobilePay
Vipps MobilePay is a leading mobile wallet and alternative payment method widely used across Norway, Denmark, and Finland. Customers can make secure payments using their mobile number and a simple app, without entering cards or bank details. When Customers select Vipps MobilePay, they enter their registered mobile number and receive a payment request in the app. They can check the details and approve or decline it using a PIN or biometric, making checkout quick and easy.
Vipps MobilePay uses two main ways for payments:
- Card-based payments: The payment is made using a debit or credit card linked to the wallet of the user. It works like a traditional card payment but is approved on the mobile, making it easy and secure.
- Account-to-Account (A2A) payments: In some places, especially Norway, users can pay directly from their linked bank account. Money gets transferred from the customer's bank account to your account without using cards, making it faster and cheaper.
Both payment options work in one simple app with just one step. Vipps MobilePay gives you a single, easy-to-use payment solution that customers trust.
In short, Vipps MobilePay makes payments quick, secure, and flexible by supporting both cards and direct bank transfers.
Prerequisites
To offer the Vipps MobilePay payment method through the Mastercard Gateway, you must:
- Be registered with your payment service provider. Contact your payment service provider for onboarding steps.
- Be registered as a merchant on Mastercard Gateway through your payment service provider.
- Be registered with Vipps MobilePay and have an active business account with them, Vipps MobilePay API credentials would be required for further configuration.
- Configure your profile on the Mastercard Gateway using the account details that your payment service provider has provided.
Vipps MobilePay payer journey flow
- The customer selects Vipps MobilePay at checkout.
- The customer is redirected to a page to enter their mobile number linked to their Vipps MobilePay account.
- A payment request is sent to the Vipps MobilePay app linked to that number.
- The customer reviews the request and approves or declines the payment in the app.
- If approved, the payment is completed using a saved card or linked bank account within the app.
- The customer is redirected back to the merchant site with a payment confirmation.
Vipps MobilePay payments integration
Vipps MobilePay payments through Direct Payment
- Direct Payment integration allows you to offer Vipps MobilePay payments on your own checkout page.
- Vipps MobilePay payments is supported from the WS-API version 81 for Direct API and 85 for HCO onwards, but usage of version 100 onwards is recommended for both Direct API and HCO for optimal user experience.
- Make an Initiate Browser Payment request where
sourceOfFunds.browserPayment.type = VIPPS_MOBILEPAY
VIPPS MobilePay Payments Transactions
| Transaction Details | Value |
|---|---|
| Payment type | A2A and Card Payments |
| Supported countries | Norway, Denmark, and Finland |
| Supported currencies | NOK, DKK, and EUR |
| Supported operations | Purchase (PAY), REFUND (PARTIAL and FULL), AUTHORIZE, VOID OF AUTH, CAPTURE (PARTIAL and FULL) |
| Minimum Transaction Amount | It depends on merchant configuration |
| Maximum Transaction Amount | It depends on merchant configuration |
| Refund Validity | Not applicable |
| Chargeback | Not applicable |
| Transaction validity period | 10 minutes. The customer has up to 10 minutes to confirm the payment in their banking app |
Payment Options Inquiry
You can use a Payment Option Inquiry (POI) request to retrieve the payment options available to them and their associated attributes. The POI response can contain information about mandatory and optional fields, in addition to standard fields, limits, and general payment plan offer information for BNPL payment methods.
POI request
curl --request POST \
--url https://{{remotehost}}.gateway.mastercard.com/api/rest/version/llaatteesstt/merchant/VIPPS_MTF_2/paymentOption...
--header 'Authorization: Basic bWVyY2hhbnQuSVJJU1BBWV9NVEY6OGE4NTc1NDA1ZThiMDI4MjRiNjc5MmJmYTM5MjlkMDA=' \
--header 'Content-Type: application/json'
POI response
{
"merchant": "VIPPS_MTF_2",
"paymentTypes": {
"browserPayment": [
{
"currencies": [
{
"currency": "EUR"
}
],
"description": "Vipps MobilePay is a Digital Wallet provider. It operates in Norway, Denmark and Finland",
"displayName": "Vipps MobilePay",
"logoUrl": "https://{{remotehost}}.gateway.mastercard.com/bpui/bp/logo/79bc4982-3897-492e-a503-020d6f6103ab_VIPPS_MOBILEPA...",
"maxAmount": 1000000000000,
"minAmount": 0,
"standardPayerData": [
{
"fieldName": "PHONE",
"presence": "MANDATORY"
},
{
"fieldName": "EMAIL",
"presence": "OPTIONAL"
},
{
"fieldName": "BILLING_ADDRESS",
"presence": "OPTIONAL"
},
{
"fieldName": "SHIPPING_ADDRESS",
"presence": "OPTIONAL"
},
{
"fieldName": "FIRST_NAME",
"presence": "OPTIONAL"
},
{
"fieldName": "LAST_NAME",
"presence": "OPTIONAL"
}
],
"supportedCountries": [
{
"country": "FIN"
}
],
"type": "VIPPS_MOBILEPAY"
}
]
},
"result": "SUCCESS",
"supportedPaymentOperations": [
{
"supportedPaymentOperation": "PURCHASE"
}
]
}
Specific parameter fields
Along with the standard fields that are required for a browser payment request, include the following parameter fields in the Initiate Browser Payment request for VIPPS MobilePay Payments.
| Parameters Name | Mandatory or Optional |
|---|---|
| customer.email | Optional |
| customer.firstName | Optional |
| customer.lastName | Optional |
| customer.phone | Mandatory |
| billing.address | Optional |
| shipping.address | Optional |
| order.amount | Mandatory |
| order.currency | Mandatory |
Initiate Vipps MobilePay browser payment request
curl --request PUT \
--url https://{{remotehost}}.gateway.mastercard.com/api/rest/version/llaatteesstt/merchant/VIPPS_MTF_2/order/6158717... \
--header 'Authorization: Basic bWVyY2hhbnQuVklQUFNfTVRGXzI6ZDlmMGUyNWZkMzU1ZmE4ZmQ0ZGVjNTY2ZDY0YzZkM2I=' \
--header 'Content-Type: application/json' \
--header 'User-Agent: insomnia/11.1.0' \
--data
{
"apiOperation": "INITIATE_BROWSER_PAYMENT",
"billing": {
"address": {
"city": "Edinburgh",
"company": "MPGS",
"country": "FIN",
"stateProvince": "Scotland",
"street": "OceanPoint",
"street2": "OceanDrive",
"postcodeZip": "00061"
}
},
"shipping": {
"address": {
"city": "Los Angeles",
"company": "mastercard",
"country": "FIN",
"postcodeZip": "90001",
"stateProvince": "CA",
"street": "2nd Main",
"street2": "lane 2"
}
},
"browserPayment": {
"operation": "PAY",
"returnUrl": "https://{{remotehost}}/apmDemoApp/complete.html"
},
"customer": {
"account": {
"id": "customerAccount"
},
"dateOfBirth": "1999-12-31",
"email": "akash.mali@mastercard.com",
"phone": "9876543210",
"firstName": "Akash",
"lastName": "Mali"
},
"order": {
"amount": "875",
"currency": "EUR"
},
"sourceOfFunds": {
"browserPayment": {
"type": "VIPPS_MOBILEPAY"
},
"type": "BROWSER_PAYMENT"
}
}
Initiate Vipps MobilePay browser payment response
{
"billing": {
"address": {
"city": "Edinburgh",
"company": "MPGS",
"country": "FIN",
"postcodeZip": "00061",
"stateProvince": "Scotland",
"street": "OceanPoint",
"street2": "OceanDrive"
}
},
"browserPayment": {
"interaction": {
"status": "INITIATED",
"timeInitiated": "2026-02-19T10:02:24.796Z"
},
"operation": "PAY",
"redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='https://pay-mt.mobilepay.fi/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI5ODUxYzU3NS0yZjMzLTQ4M2MtOTY3NS01OGVlOGU2ODc2YmMiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwNyIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJGSSIsImV4cCI6MTc3MTY2ODE0NSwiaWF0IjoxNzcxNDk1MzQ2LCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.IOiBTa8PFqPvqq9ZeTyS0QdMqrhpsgkKxq_QX0XiaQdp7Hzhdi_eDkZQSVL-0x4zgoWaRw3SPj5CS5ykZ26aPsfGjkgQ4VQusTrnh7kJqTAdHFdRvC0RvvDsLjwYLoIKC5FnpNdWV_r9C8-Il7uXRufb1NiKaW-XsPXsKfq-BXO15Lk093d5aI5HCSGrtQiyRz9oL3jxGYTimlBOpHZWRvfAZuruXvduHMcOEM3sq8ahj_Pby2uei7VNGXiecRkef_2Dm16Tbfon1peqtJm18ryfNxdAjw3M9ijkKOGc7HAuucATiE4wVxvO3Cbdh5afzrrvREPSMgQd2M16xT9BoQ'>window.top.location.href='https://pay-mt.mobilepay.fi/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI5ODUxYzU3NS0yZjMzLTQ4M2MtOTY3NS01OGVlOGU2ODc2YmMiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwNyIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJGSSIsImV4cCI6MTc3MTY2ODE0NSwiaWF0IjoxNzcxNDk1MzQ2LCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.IOiBTa8PFqPvqq9ZeTyS0QdMqrhpsgkKxq_QX0XiaQdp7Hzhdi_eDkZQSVL-0x4zgoWaRw3SPj5CS5ykZ26aPsfGjkgQ4VQusTrnh7kJqTAdHFdRvC0RvvDsLjwYLoIKC5FnpNdWV_r9C8-Il7uXRufb1NiKaW-XsPXsKfq-BXO15Lk093d5aI5HCSGrtQiyRz9oL3jxGYTimlBOpHZWRvfAZuruXvduHMcOEM3sq8ahj_Pby2uei7VNGXiecRkef_2Dm16Tbfon1peqtJm18ryfNxdAjw3M9ijkKOGc7HAuucATiE4wVxvO3Cbdh5afzrrvREPSMgQd2M16xT9BoQ';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
"returnUrl": "https://{{remotehost}}/apmDemoApp/complete.html"
},
"customer": {
"account": {
"id": "customerAccount"
},
"email": "akash.mali@mastercard.com",
"firstName": "Akash",
"lastName": "Mali",
"phone": "9876543210"
},
"gatewayEntryPoint": "WEB_SERVICES_API",
"merchant": "VIPPS_MTF_2",
"order": {
"amount": 875,
"chargeback": {
"amount": 0,
"currency": "EUR"
},
"creationTime": "2026-02-19T10:02:24.768Z",
"currency": "EUR",
"id": "615871768",
"lastUpdatedTime": "2026-02-19T10:02:26.336Z",
"merchantAmount": 875,
"merchantCurrency": "EUR",
"status": "INITIATED",
"totalAuthorizedAmount": 0,
"totalCapturedAmount": 0,
"totalDisbursedAmount": 0,
"totalRefundedAmount": 0
},
"response": {
"acquirerCode": "ACCEPTED",
"gatewayCode": "SUBMITTED",
"gatewayRecommendation": "NO_ACTION"
},
"result": "SUCCESS",
"shipping": {
"address": {
"city": "Los Angeles",
"company": "mastercard",
"country": "FIN",
"postcodeZip": "90001",
"stateProvince": "CA",
"street": "2nd Main",
"street2": "lane 2"
}
},
"sourceOfFunds": {
"browserPayment": {
"type": "VIPPS_MOBILEPAY"
},
"type": "BROWSER_PAYMENT"
},
"timeOfLastUpdate": "2026-02-19T10:02:26.336Z",
"timeOfRecord": "2026-02-19T10:02:24.794Z",
"transaction": {
"acquirer": {
"id": "OPTTY_MTF_TESTACQ1",
"merchantId": "6ucZGXNMaLbChely"
},
"amount": 875,
"currency": "EUR",
"id": "450395139",
"source": "INTERNET",
"stan": "0",
"type": "PAYMENT"
},
"version": "100"
}
Retrieve order request
curl --request GET \
--url https://{{remotehost}}.gateway.mastercard.com/api/rest/version/llaatteesstt/merchant/VIPPS_MTF_1/order/18519464 \
--header 'Authorization: Basic bWVyY2hhbnQuVklQUFNfTVRGXzE6MjAzZWE5MDBlNWY0YTY5NzI1YTZmMGM2ODJlMjdjZmI=' \
--header 'User-Agent: insomnia/11.1.0'
Retreive order response
{
"amount": 602,
"billing": {
"address": {
"city": "Edinburgh",
"company": "MPGS",
"country": "DNK",
"postcodeZip": "00061",
"stateProvince": "Scotland",
"street": "OceanPoint",
"street2": "OceanDrive"
}
},
"chargeback": {
"amount": 0,
"currency": "DKK"
},
"creationTime": "2026-04-23T11:31:58.764Z",
"currency": "DKK",
"customer": {
"account": {
"id": "customerAccount"
},
"phone": "9876543210"
},
"id": "18519464",
"lastUpdatedTime": "2026-04-23T11:32:39.525Z",
"merchant": "VIPPS_MTF_1",
"merchantAmount": 602,
"merchantCurrency": "DKK",
"result": "SUCCESS",
"shipping": {
"address": {
"city": "Los Angeles",
"company": "mastercard",
"country": "DNK",
"postcodeZip": "90001",
"stateProvince": "CA",
"street": "2nd Main",
"street2": "lane 2"
}
},
"sourceOfFunds": {
"browserPayment": {
"type": "VIPPS_MOBILEPAY"
},
"type": "BROWSER_PAYMENT"
},
"status": "AUTHORIZED",
"totalAuthorizedAmount": 602,
"totalCapturedAmount": 0,
"totalDisbursedAmount": 0,
"totalRefundedAmount": 0,
"transaction": [
{
"billing": {
"address": {
"city": "Edinburgh",
"company": "MPGS",
"country": "DNK",
"postcodeZip": "00061",
"stateProvince": "Scotland",
"street": "OceanPoint",
"street2": "OceanDrive"
}
},
"browserPayment": {
"interaction": {
"status": "COMPLETED",
"timeCompleted": "2026-04-23T11:32:39.515Z",
"timeInitiated": "2026-04-23T11:31:58.798Z"
},
"operation": "AUTHORIZE",
"redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg'>window.top.location.href='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
"returnUrl": "https://{{remotehost}}/apmDemoApp/complete.html"
},
"customer": {
"account": {
"id": "customerAccount"
},
"phone": "9876543210"
},
"gatewayEntryPoint": "WEB_SERVICES_API",
"merchant": "VIPPS_MTF_1",
"order": {
"amount": 602,
"chargeback": {
"amount": 0,
"currency": "DKK"
},
"creationTime": "2026-04-23T11:31:58.764Z",
"currency": "DKK",
"id": "18519464",
"lastUpdatedTime": "2026-04-23T11:32:39.525Z",
"merchantAmount": 602,
"merchantCurrency": "DKK",
"status": "AUTHORIZED",
"totalAuthorizedAmount": 602,
"totalCapturedAmount": 0,
"totalDisbursedAmount": 0,
"totalRefundedAmount": 0
},
"response": {
"acquirerCode": "PENDING CAPTURE",
"acquirerMessage": "Authorization Approved, Pending Capture",
"gatewayCode": "APPROVED",
"gatewayRecommendation": "NO_ACTION"
},
"result": "SUCCESS",
"shipping": {
"address": {
"city": "Los Angeles",
"company": "mastercard",
"country": "DNK",
"postcodeZip": "90001",
"stateProvince": "CA",
"street": "2nd Main",
"street2": "lane 2"
}
},
"sourceOfFunds": {
"browserPayment": {
"type": "VIPPS_MOBILEPAY"
},
"type": "BROWSER_PAYMENT"
},
"timeOfLastUpdate": "2026-04-23T11:32:39.525Z",
"timeOfRecord": "2026-04-23T11:31:58.795Z",
"transaction": {
"acquirer": {
"id": "OPTTY_MTF_TESTACQ1",
"merchantId": "6ucZGXNMaLbChely"
},
"amount": 602,
"currency": "DKK",
"id": "624511957",
"source": "INTERNET",
"stan": "0",
"type": "AUTHORIZATION"
},
"version": "100"
}
]
}
Capture request
curl --request PUT \
--url https://{{remotehost}}.gateway.mastercard.com/api/rest/version/llaatteesstt/merchant/VIPPS_MTF_1/order/18519464/transaction/6105110913 \
--header 'Authorization: Basic bWVyY2hhbnQuVklQUFNfTVRGXzE6MjAzZWE5MDBlNWY0YTY5NzI1YTZmMGM2ODJlMjdjZmI=' \
--header 'Content-Type: application/json' \
--header 'User-Agent: insomnia/11.1.0' \
--data
{
"apiOperation": "CAPTURE",
"transaction": {
"amount": "602",
"currency": "DKK"
}
}
Capture response
{
"browserPayment": {
"interaction": {
"status": "COMPLETED",
"timeCompleted": "2026-04-23T11:32:39.515Z",
"timeInitiated": "2026-04-23T11:31:58.798Z"
},
"operation": "AUTHORIZE",
"redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg'>window.top.location.href='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
"returnUrl": "https://{{remotehost}}/apmDemoApp/complete.html"
},
"customer": {
"account": {
"id": "customerAccount"
}
},
"gatewayEntryPoint": "WEB_SERVICES_API",
"merchant": "VIPPS_MTF_1",
"order": {
"amount": 602,
"chargeback": {
"amount": 0,
"currency": "DKK"
},
"creationTime": "2026-04-23T11:31:58.764Z",
"currency": "DKK",
"id": "18519464",
"lastUpdatedTime": "2026-04-23T11:34:38.206Z",
"merchantAmount": 602,
"merchantCurrency": "DKK",
"status": "CAPTURED",
"totalAuthorizedAmount": 602,
"totalCapturedAmount": 602,
"totalDisbursedAmount": 0,
"totalRefundedAmount": 0
},
"response": {
"acquirerCode": "APPROVED",
"gatewayCode": "APPROVED"
},
"result": "SUCCESS",
"sourceOfFunds": {
"browserPayment": {
"type": "VIPPS_MOBILEPAY"
},
"type": "BROWSER_PAYMENT"
},
"timeOfLastUpdate": "2026-04-23T11:34:38.206Z",
"timeOfRecord": "2026-04-23T11:34:36.389Z",
"transaction": {
"acquirer": {
"id": "OPTTY_MTF_TESTACQ1",
"merchantId": "6ucZGXNMaLbChely"
},
"amount": 602,
"currency": "DKK",
"id": "2251609133",
"source": "INTERNET",
"stan": "0",
"type": "CAPTURE"
},
"version": "100"
}
Refund request
curl --request PUT \
--url https://{{remotehost}}.gateway.mastercard.com/api/rest/version/llaatteesstt/merchant/VIPPS_MTF_1/order/18519464/transaction/6105110913 \
--header 'Authorization: Basic bWVyY2hhbnQuVklQUFNfTVRGXzE6MjAzZWE5MDBlNWY0YTY5NzI1YTZmMGM2ODJlMjdjZmI=' \
--header 'Content-Type: application/json' \
--header 'User-Agent: insomnia/11.1.0' \
--data
{
"apiOperation": "REFUND",
"transaction": {
"amount": "602",
"currency": "DKK"
}
}
Refund response
{
"browserPayment": {
"interaction": {
"status": "COMPLETED",
"timeCompleted": "2026-04-23T11:32:39.515Z",
"timeInitiated": "2026-04-23T11:31:58.798Z"
},
"operation": "AUTHORIZE",
"redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg'>window.top.location.href='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
"returnUrl": "https://{{remotehost}}/apmDemoApp/complete.html"
},
"customer": {
"account": {
"id": "customerAccount"
}
},
"gatewayEntryPoint": "WEB_SERVICES_API",
"merchant": "VIPPS_MTF_1",
"order": {
"amount": 602,
"chargeback": {
"amount": 0,
"currency": "DKK"
},
"creationTime": "2026-04-23T11:31:58.764Z",
"currency": "DKK",
"id": "18519464",
"lastUpdatedTime": "2026-04-23T11:35:46.469Z",
"merchantAmount": 602,
"merchantCurrency": "DKK",
"status": "REFUNDED",
"totalAuthorizedAmount": 602,
"totalCapturedAmount": 602,
"totalDisbursedAmount": 0,
"totalRefundedAmount": 602
},
"response": {
"acquirerCode": "APPROVED",
"gatewayCode": "APPROVED"
},
"result": "SUCCESS",
"sourceOfFunds": {
"browserPayment": {
"type": "VIPPS_MOBILEPAY"
},
"type": "BROWSER_PAYMENT"
},
"timeOfLastUpdate": "2026-04-23T11:35:46.469Z",
"timeOfRecord": "2026-04-23T11:35:45.821Z",
"transaction": {
"acquirer": {
"id": "OPTTY_MTF_TESTACQ1",
"merchantId": "6ucZGXNMaLbChely"
},
"amount": 602,
"currency": "DKK",
"id": "6105110913",
"source": "INTERNET",
"stan": "0",
"type": "REFUND"
},
"version": "100"
}
Interpretation of the transaction result
This table shows the transaction response codes for the possible scenarios that you may encounter after initiating the Vipps MobilePay payments.
| Initiate browser payment response | What this means |
|---|---|
response.gatewayCode=SUBMITTEDresult=SUCCESS |
Redirect the payer using the URL provided in the response. |
| Retrieve transaction or Retrieve order response | What this means |
|---|---|
response.gatewayCode=APPROVEDresult=SUCCESS |
The payment is successful. |
response.gatewayCode=PENDINGresult=SUCCESS |
Mastercard Gateway is waiting for a notification from the acquirer about the payment result. Try RETRIEVE_TRANSACTION again later or listen for notifications from Mastercard Gateway. |
response.gatewayCode=CANCELLEDresult=FAILURE |
The payer has cancelled the interaction for this payment. Offer the payer the option to try another payment method. |
response.gatewayCode = DECLINED or ACQUIRER_SYSTEM_ERROR result=FAILURE |
The payment was declined. Offer the payer to try another payment method. If the response is ACQUIRER_SYSTEM_ERROR, contact the acquirer for the reason or try RETRIEVE_TRANSACTION again. |
response.gatewayCode = TIMED_OUT result=FAILURE |
Treat this as a declined payment. Mastercard Gateway ensures the transaction is not successful or will revert it. |
Vipps MobilePay payments through Hosted Checkout
Hosted Checkout integration allows you to collect payment details from your payer through an interaction that the gateway hosts and displays. From the API version 85 and later, VIPPS MobilePay payments is automatically available as a payment method once your payment service provider enables and configures you for this payment method. For more information, see Browser Payments through Hosted Checkout integration.
Webhook notifications
If you have subscribed to Mastercard Gateway webhook notifications, you will receive additional notifications on the paymentStatus.