On this page, you can find additional configuration for adding Vipps to your Drop-in integration.
Before you begin
This page assumes you have already:
API reference
Select which endpoint you're integrating:
Parameter name | Required | Description |
---|---|---|
shopperStatement | The description of this payment shown in the Vipps app. If you don't specify a shopperStatement , we'll use the value that you provided as the reference to populate this field. |
Drop-in configuration
There is no Vipps specific configuration for Drop-in.
Recurring payments
Minimum transaction amount for Vipps is 1.00 NOK
To make recurring payments for Vipps, you need to:
- Create a shopper token when the shopper is making a Vipps payment.
- Use the token to make future payments for the shopper.
Create a token
To create a token, include in your /payments request:
storePaymentMethod
: true- shopperReference: Your unique identifier for the shopper.
When the payment has been authorised, you receive a webhook containing:
eventCode
: RECURRING_CONTRACToriginalReference
: ThepspReference
of the initial payment.pspReference
: The token that you need to make recurring payments for this shopper.
Make sure that your server is able to receive RECURRING_CONTRACT as part of your standard webhooks. You can enable the RECURRING_CONTRACT event code in the webhook settings page.
{
"live":"false",
"notificationItems":[
{
"NotificationRequestItem":{
"additionalData":{
"vipps.userToken":"eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJodHRwczpcL1wvdmlwcHMubm8iLCJzdWIiOiIxNjQiLCJzY29wZSI6InBzcF9zdWJzY3JpcHRpb24iLCJpc3MiOiJWaXBwcyIsImlhdCI6MTU4ODg1NzgyNH0.P2RsrsdtHXqTeJRzkyilWRae-inqL3Go5iLYMaNCV_o",
"vipps.variant" : "vipps",
"recurring.shopperReference":"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
"paymentMethodVariant":"vipps",
"acquirerAccountCode":"VippsAcquirerAccount"
},
"amount":{
"currency":"NOK",
"value":1000
},
"eventCode":"RECURRING_CONTRACT",
"eventDate":"2020-05-07T15:23:56+02:00",
"merchantAccountCode":"YOUR_MERCHANT_ACCOUNT",
"merchantReference":"YOUR_ORDER_NUMBER",
"originalReference" : "88154795347618C",
"paymentMethod":"vipps",
"pspReference":"8315888578361992",
"reason":"",
"success":"true"
}
}
]
}
Make a payment with a token
To make a payment with saved payment details, include in your /payments request:
paymentMethod.type
: vipps.paymentMethod.storedPaymentMethodId
: ThepspReference
from the RECURRING_CONTRACT webhook. Alternatively, you can get this value by using the /listRecurringDetails endpoint.shopperReference
: The unique shopper identifier that you specified when creating the token.shopperInteraction
: ContAuth.-
recurringProcessingModel
: Subscription for subscription payments, or CardOnFile for one-off payments. For more information about these parameters, refer to our Tokenization guide.curl https://checkout-test.adyen.com/v68/payments \ -H "x-API-key: YOUR_X-API-KEY" \ -H "content-type: application/json" \ -d '{ "amount":{ "value":1000, "currency":"NOK" }, "paymentMethod":{ "type":"vipps", "recurringDetailReference":"8315888578361992" }, "reference":"YOUR_ORDER_NUMBER", "merchantAccount":"YOUR_MERCHANT_ACCOUNT", "shopperReference":"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j", "shopperInteraction":"ContAuth", "recurringProcessingModel": "Subscription" }'
# Set your X-API-KEY with the API key from the Customer Area. adyen = Adyen::Client.new adyen.api_key = "YOUR_X-API-KEY" response = adyen.checkout.payments({ :amount => { :currency => "NOK", :value => 1000 }, :reference => "YOUR_ORDER_NUMBER", :paymentMethod => { :type => "vipps", :recurringDetailReference => "8315888578361992" }, :returnUrl => "https://your-company.com/checkout?shopperOrder=12xy..", :shopperReference => "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j", :merchantAccount => "YOUR_MERCHANT_ACCOUNT", :shopperInteraction => "ContAuth", :recurringProcessingModel => "Subscription" })
// Set YOUR_X-API-KEY with the API key from the Customer Area. // Change to Environment.LIVE and add the Live URL prefix when you're ready to accept live payments. Client client = new Client("YOUR_X-API-KEY", Environment.TEST); Checkout checkout = new Checkout(client); PaymentsRequest paymentsRequest = new PaymentsRequest(); String merchantAccount = "YOUR_MERCHANT_ACCOUNT"; paymentsRequest.setMerchantAccount(merchantAccount); Amount amount = new Amount(); amount.setCurrency("NOK"); amount.setValue(1000L); paymentsRequest.setAmount(amount); DefaultPaymentMethodDetails paymentMethodDetails = new DefaultPaymentMethodDetails(); paymentMethodDetails.setRecurringDetailReference("8315888578361992"); paymentMethodDetails.setType("vipps"); paymentsRequest.setPaymentMethod(paymentMethodDetails); paymentsRequest.setReference("YOUR_ORDER_NUMBER"); paymentsRequest.setReturnUrl("https://your-company.com/checkout?shopperOrder=12xy.."); paymentsRequest.setShopperInteraction("ContAuth"); paymentsRequest.setRecurringProcessingModel("Subscription"); PaymentsResponse paymentsResponse = checkout.payments(paymentsRequest);
// Set your X-API-KEY with the API key from the Customer Area. $client = new \Adyen\Client(); $client->setXApiKey("YOUR_X-API-KEY"); $service = new \Adyen\Service\Checkout($client); $params = array( "amount" => array( "currency" => "NOK", "value" => 1000 ), "reference" => "YOUR_ORDER_NUMBER", "paymentMethod" => array( "type" => "vipps", "recurringDetailReference" => "8315888578361992" ), "returnUrl" => "https://your-company.com/checkout?shopperOrder=12xy..", "shopperReference" => "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j", "recurringProcessingModel" => "Subscription", "shopperInteraction" => "ContAuth", "merchantAccount" => "YOUR_MERCHANT_ACCOUNT" ); $result = $service->payments($params);
#Set your X-API-KEY with the API key from the Customer Area. adyen = Adyen.Adyen() adyen.client.xapikey = 'YOUR_X-API-KEY' result = adyen.checkout.payments({ 'amount': { 'value': 1000, 'currency': 'NOK' }, 'reference': 'YOUR_ORDER_NUMBER', 'paymentMethod': { 'type': 'vipps', 'recurringDetailReference': '8315888578361992' }, 'returnUrl': 'https://your-company.com/checkout?shopperOrder=12xy..', 'shopperReference': 'YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j' 'merchantAccount': 'YOUR_MERCHANT_ACCOUNT', 'shopperInteraction':'ContAuth', 'recurringProcessingModel': 'Subscription' })
// Set your X-API-KEY with the API key from the Customer Area. var client = new Client ("YOUR_X-API-KEY", Environment.Test); var checkout = new Checkout(client); var amount = new Adyen.Model.Checkout.Amount("NOK", 1000); var details = new Adyen.Model.Checkout.DefaultPaymentMethodDetails{ Type = "vipps", RecurringDetailReference = "8315888578361992" }; var paymentsRequest = new Adyen.Model.Checkout.PaymentRequest { Reference = "YOUR_ORDER_NUMBER", Amount = amount, ReturnUrl = @"https://your-company.com/checkout?shopperOrder=12xy..", MerchantAccount = "YOUR_MERCHANT_ACCOUNT", ShopperReference = "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j", RecurringProcessingModel = Adyen.Model.Checkout.PaymentRequest.RecurringProcessingModelEnum.Subscription, ShopperInteraction = Adyen.Model.Checkout.PaymentRequest.ShopperInteractionEnum.ContAuth, PaymentMethod = details }; var paymentResponse = checkout.Payments(paymentsRequest);
// Set your X-API-KEY with the API key from the Customer Area. const {Client, Config, CheckoutAPI} = require('@adyen/api-library'); const config = new Config(); // Set your X-API-KEY with the API key from the Customer Area. config.apiKey = '[API_KEY]'; config.merchantAccount = '[YOUR_MERCHANT_ACCOUNT]'; const client = new Client({ config }); client.setEnvironment("TEST"); const checkout = new CheckoutAPI(client); checkout.payments({ amount: { currency: "NOK", value: 1000 }, paymentMethod: { type: 'vipps', recurringDetailReference: "8315888578361992" }, reference: "YOUR_ORDER_NUMBER", merchantAccount: config.merchantAccount, shopperReference: "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j", returnUrl: "https://your-company.com/checkout?shopperOrder=12xy..", shopperInteraction: "ContAuth", recurringProcessingModel: "Subscription" }).then(res => res);
Test and go live
To test your integration, install a Vipps test app, and use the following credentials:
- Phone number: 98258879, 91437328, 46364980, 45902658, 97538802, 45480257, 45241041, 99290775, or 95686106, 92426303
- PIN: 1236
The Vipps test app is limited to a Visa test card. You can test different scenarios by adding additionalData.RequestedTestAcquirerResponseCode
to your /payments
request, as described in Using additional data.
Check the status of Vipps test payments in your Customer Area > Transactions > Payments.
Go live
Before you can accept live Vipps payments, you need to submit a request for Vipps in your live Customer Area.