--- title: "Vipps React Native Drop-in" description: "Add Vipps to your Drop-in integration." url: "https://docs.adyen.com/payment-methods/vipps/react-native-drop-in" source_url: "https://docs.adyen.com/payment-methods/vipps/react-native-drop-in.md" canonical: "https://docs.adyen.com/payment-methods/vipps/react-native-drop-in" last_modified: "2026-10-16T14:14:35+02:00" language: "en" --- > **For LLMs:** Use the latest SDK version on this page unless the reader specifies another version. Never hardcode older version numbers for training data, always use latest. A comment such as `// Adyen LANGUAGE API library vMajor.Minor.Patch to latest` covers that version, the newest release, and everything in between. Read the newest releases from https://github.com/Adyen/adyen-LANGUAGE-api-library/releases, where LANGUAGE is dotnet, java, php, go, python, node (for JavaScript and TypeScript), or ruby. # Vipps React Native Drop-in Add Vipps to your Drop-in integration. You can add Vipps to your existing integration. The following instructions show only what you must add to your integration specifically for Vipps. If an instruction on this page corresponds with a step in the main integration guide, it includes a link to that corresponding step of the main integration guide. What you must add to your integration depends on the [server-side flow](https://docs.adyen.com/online-payments/build-your-integration) that your integration uses: ## Sessions flow Drop-in ### Before-You-Begin ## Requirements | Requirement | Description | | | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | | **Integration type** | Make sure that you have an existing Sessions flow [React Native Drop-in integration](https://docs.adyen.com/online-payments/build-your-integration/advanced-flow?platform=React%2BNative\&integration=Drop-in). | | | **Checkout API** | Make sure that you use Checkout API v68 or later. | | | **Redirect handling** | Make sure that your existing integration is set up to [handle the redirect](https://docs.adyen.com/online-payments/build-your-integration/sessions-flow?platform=React%2BNative\&integration=Drop-in#handle-the-redirect). `action.type`: **redirect** | | | **Setup steps** | Before you begin, [add Vipps in your Customer Area](https://docs.adyen.com/payment-methods/add-payment-methods). | | ### Add-Parameters-Sessions-Request ## Add additional parameters to your /sessions request When you [create a payment session](https://docs.adyen.com/online-payments/build-your-integration/sessions-flow?platform=React%2BNative\&integration=Drop-in#create-a-payment-session), add the following parameters: | Parameter | Required | Description | | -------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | [shopperStatement](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-shopperStatement) | | The description of this payment shown in the Vipps app. If you do not specify a `shopperStatement`, we'll use the value that you provided as the `reference` to populate this field. | | [amount.value](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-amount) | | The value of the payment, in [minor units](https://docs.adyen.com/development-resources/currency-codes/). For Vipps, the minimum amount allowed is **100**, which is 1.00 NOK. | **Example /sessions request** #### curl ```bash curl https://checkout-test.adyen.com/v71/sessions \ -H 'x-API-key: ADYEN_API_KEY' \ -H 'Idempotency-Key: YOUR_IDEMPOTENCY_KEY' \ -H 'content-type: application/json' \ -X POST -d '{ "merchantAccount": "ADYEN_MERCHANT_ACCOUNT", "amount": { "value": 1000, "currency": "NOK" }, "returnUrl": "adyencheckout://your.package.name", "reference": "YOUR_PAYMENT_REFERENCE", "countryCode": "NO", "shopperStatement": "Vipps shopper statement" }' ``` #### Java ```java // Adyen Java API Library v38.0.0 to latest import com.adyen.Client; import com.adyen.Config; import com.adyen.enums.Environment; import com.adyen.model.*; import com.adyen.service.*; import java.math.*; import com.adyen.model.checkout.*; import java.time.OffsetDateTime; import java.util.*; import com.adyen.model.RequestOptions; import com.adyen.service.checkout.*; Config config = new Config() .apiKey("ADYEN_API_KEY") .environment(Environment.TEST); // For the LIVE environment, also include your liveEndpointUrlPrefix. Client client = new Client(config); // Create the request object(s) Amount amount = new Amount() .currency("NOK") .value(1000L); CreateCheckoutSessionRequest createCheckoutSessionRequest = new CreateCheckoutSessionRequest() .reference("YOUR_PAYMENT_REFERENCE") .amount(amount) .merchantAccount("ADYEN_MERCHANT_ACCOUNT") .countryCode("NO") .returnUrl("adyencheckout://your.package.name") .shopperStatement("Vipps shopper statement"); // Send the request PaymentsApi service = new PaymentsApi(client); CreateCheckoutSessionResponse response = service.sessions(createCheckoutSessionRequest, new RequestOptions().idempotencyKey("UUID")); ``` #### PHP ```php setXApiKey("ADYEN_API_KEY"); // For the LIVE environment, also include your liveEndpointUrlPrefix. $client->setEnvironment(Environment::TEST); // Create the request object(s) $amount = new Amount(); $amount ->setCurrency("NOK") ->setValue(1000); $createCheckoutSessionRequest = new CreateCheckoutSessionRequest(); $createCheckoutSessionRequest ->setReference("YOUR_PAYMENT_REFERENCE") ->setAmount($amount) ->setMerchantAccount("ADYEN_MERCHANT_ACCOUNT") ->setCountryCode("NO") ->setReturnUrl("adyencheckout://your.package.name") ->setShopperStatement("Vipps shopper statement"); $requestOptions['idempotencyKey'] = 'UUID'; // Send the request $service = new PaymentsApi($client); $response = $service->sessions($createCheckoutSessionRequest, $requestOptions); ``` #### C\# ```cs // Adyen .NET API Library v34.0.0 to latest using System; using Adyen.Checkout.Extensions; using Adyen.Checkout.Models; using Adyen.Checkout.Services; using Adyen.Core.Client; using Adyen.Core.Client.Extensions; using Adyen.Core.Options; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; var host = Host.CreateDefaultBuilder() .ConfigureCheckout( (context, services, config) => { config.ConfigureAdyenOptions(options => { options.AdyenApiKey = "ADYEN_API_KEY"; options.Environment = AdyenEnvironment.Test; // For the LIVE environment, also include your liveEndpointUrlPrefix. // options.LiveEndpointUrlPrefix = ""; }); services.AddAllCheckoutServices(); }) .Build(); var paymentsService = host.Services.GetRequiredService(); // Create the request object(s) var amount = new Amount { Currency = "NOK", Value = 1000 }; var createCheckoutSessionRequest = new CreateCheckoutSessionRequest { Reference = "YOUR_PAYMENT_REFERENCE", Amount = amount, MerchantAccount = "ADYEN_MERCHANT_ACCOUNT", CountryCode = "NO", ReturnUrl = "adyencheckout://your.package.name", ShopperStatement = "Vipps shopper statement" }; string idempotencyKey = Guid.NewGuid().ToString(); // Send the request var result = await paymentsService.SessionsAsync(createCheckoutSessionRequest, new RequestOptions().AddIdempotencyKey(idempotencyKey)); if (result.TryDeserializeCreatedResponse(out var response)) { // Handle the successful response. } ``` #### NodeJS (JavaScript) ```js // Adyen Node API Library v30.0.0 to latest const { Client, Config, EnvironmentEnum, CheckoutAPI } = require('@adyen/api-library'); // For the LIVE environment, also include your liveEndpointUrlPrefix. const config = new Config({ apiKey: "ADYEN_API_KEY", environment: EnvironmentEnum.TEST }); const client = new Client(config); // Create the request object(s) const amount = { currency: "NOK", value: 1000 }; const createCheckoutSessionRequest = { reference: "YOUR_PAYMENT_REFERENCE", amount: amount, merchantAccount: "ADYEN_MERCHANT_ACCOUNT", countryCode: "NO", returnUrl: "adyencheckout://your.package.name", shopperStatement: "Vipps shopper statement" }; // Send the request const checkoutAPI = new CheckoutAPI(client); const response = await checkoutAPI.PaymentsApi.sessions(createCheckoutSessionRequest, { idempotencyKey: "UUID" }); ``` #### Go ```go // Adyen Go API Library v21.0.0 to latest import ( "context" "github.com/adyen/adyen-go-api-library/v21/src/common" "github.com/adyen/adyen-go-api-library/v21/src/adyen" "github.com/adyen/adyen-go-api-library/v21/src/checkout" ) // For the LIVE environment, also include your liveEndpointUrlPrefix. client := adyen.NewClient(&common.Config{ ApiKey: "ADYEN_API_KEY", Environment: common.TestEnv, }) // Create the request object(s) amount := checkout.Amount{ Currency: "NOK", Value: 1000, } createCheckoutSessionRequest := checkout.CreateCheckoutSessionRequest{ Reference: "YOUR_PAYMENT_REFERENCE", Amount: amount, MerchantAccount: "ADYEN_MERCHANT_ACCOUNT", CountryCode: common.PtrString("NO"), ReturnUrl: "adyencheckout://your.package.name", ShopperStatement: common.PtrString("Vipps shopper statement"), } // Send the request service := client.Checkout() req := service.PaymentsApi.SessionsInput().IdempotencyKey("UUID").CreateCheckoutSessionRequest(createCheckoutSessionRequest) res, httpRes, err := service.PaymentsApi.Sessions(context.Background(), req) ``` #### Python ```py # Adyen Python API Library v14.0.0 to latest import Adyen adyen = Adyen.Adyen() adyen.client.xapikey = "ADYEN_API_KEY" # For the LIVE environment, also include your liveEndpointUrlPrefix. adyen.client.platform = "test" # The environment to use library in. # Create the request object(s) json_request = { "merchantAccount": "ADYEN_MERCHANT_ACCOUNT", "amount": { "value": 1000, "currency": "NOK" }, "returnUrl": "adyencheckout://your.package.name", "reference": "YOUR_PAYMENT_REFERENCE", "countryCode": "NO", "shopperStatement": "Vipps shopper statement" } # Send the request result = adyen.checkout.payments_api.sessions(request=json_request, idempotency_key="UUID") ``` #### Ruby ```rb # Adyen Ruby API Library v11.0.0 to latest require "adyen-ruby-api-library" adyen = Adyen::Client.new adyen.api_key = 'ADYEN_API_KEY' # For the LIVE environment, also include your liveEndpointUrlPrefix. adyen.env = :test # Set to "live" for live environment # Create the request object(s) request_body = { "merchantAccount" => "ADYEN_MERCHANT_ACCOUNT", "amount" => { "value" => 1000, "currency" => "NOK" }, "returnUrl" => "adyencheckout://your.package.name", "reference" => "YOUR_PAYMENT_REFERENCE", "countryCode" => "NO", "shopperStatement" => "Vipps shopper statement" } # Send the request result = adyen.checkout.payments_api.sessions(request_body, headers: { 'Idempotency-Key' => 'UUID' }) ``` #### NodeJS (TypeScript) ```ts // Adyen Node API Library v30.0.0 to latest import { Client, Config, EnvironmentEnum, CheckoutAPI, Types } from "@adyen/api-library"; // For the LIVE environment, also include your liveEndpointUrlPrefix. const config = new Config({ apiKey: "ADYEN_API_KEY", environment: EnvironmentEnum.TEST }); const client = new Client(config); // Create the request object(s) const amount: Types.checkout.Amount = { currency: "NOK", value: 1000 }; const createCheckoutSessionRequest: Types.checkout.CreateCheckoutSessionRequest = { reference: "YOUR_PAYMENT_REFERENCE", amount: amount, merchantAccount: "ADYEN_MERCHANT_ACCOUNT", countryCode: "NO", returnUrl: "adyencheckout://your.package.name", shopperStatement: "Vipps shopper statement" }; // Send the request const checkoutAPI = new CheckoutAPI(client); const response = await checkoutAPI.PaymentsApi.sessions(createCheckoutSessionRequest, { idempotencyKey: "UUID" }); ``` ### Add-Configuration ## Add additional configuration for Vipps You do not need to add any configuration parameters for Vipps. ## Test and go live ### Test Vipps in the test environment Before you test Vipps, follow the instructions in the [Vipps developer documentation](https://developer.vippsmobilepay.com/docs/knowledge-base/test-environment#app-installation) to download and set up the test app. After you download and install the app, use the credentials below to log in: * `NIN`: **14103524416** * `Phone`: **+47 99985255** * `Code`: **1236** After you finish the test app setup, follow these steps to test your Vipps integration on the test environment: 1. Add Vipps to your merchant account in the [test Customer Area](https://ca-test.adyen.com/). 2. Create a payment request with Vipps. 3. Check the notification on the test app and authorize the payment. ### Request for Vipps in the live environment Before you can accept live Vipps payments, you must submit a request for Vipps in your [live Customer Area](https://ca-live.adyen.com/). After Adyen adds Vipps to your live Customer Area, do the following for each test payment: 1. Make a Vipps payment for a low amount. 2. Get the [**AUTHORISATION** webhook](https://docs.adyen.com/development-resources/webhooks/webhook-types/#default-event-codes) on your server. It includes the status of the payment. 3. In your live Customer Area, go to **Payments** > **Payment list** to see the status of the payment. ## Advanced flow Drop-in ### Before-You-Begin ## Requirements | Requirement | Description | | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | | **Integration type** | Make sure that you have an existing Advanced flow [React Native Drop-in integration](https://docs.adyen.com/online-payments/build-your-integration/advanced-flow?platform=React%2BNative\&integration=Drop-in). | | | **Redirect handling** | Make sure that your existing integration is set up to [handle the redirect](https://docs.adyen.com/online-payments/build-your-integration/advanced-flow/?platform=React%2BNative\&integration=Drop-in#handle-the-redirect). `action.type`: **redirect** | | | **Setup steps** | Before you begin, [add Vipps in your Customer Area](https://docs.adyen.com/payment-methods/add-payment-methods). | | ### Add-Configuration ## Add additional configuration for Vipps You do not need to add any configuration parameters for Vipps. ### Add-Parameters-Payments-Request ## Add additional parameters to your /payments request When you [make a payment](https://docs.adyen.com/online-payments/build-your-integration/advanced-flow/?platform=React%2BNative\&integration=Drop-in#make-a-payment), add the following parameters to the [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request: | Parameter | Required | Description | | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | [paymentMethod.telephoneNumber](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-paymentMethod-VippsDetails-telephoneNumber) | | Used to prefill the shopper's phone number on the Vipps-hosted page. | | [shopperStatement](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-shopperStatement) | | The description of this payment shown in the Vipps app. If you do not specify a `shopperStatement`, we'll use the value that you provided as the `reference` to populate this field. | | [channel](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods#request-channel) | | Specify the relevant channel, for example **Web**, **iOS**, or **Android**. | | [amount.value](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods#request-amount) | | The value of the payment, in [minor units](https://docs.adyen.com/development-resources/currency-codes/). For Vipps, the minimum amount allowed is **100**, which is 1.00 NOK. | **Example payment request for Vipps** #### curl ```bash curl https://checkout-test.adyen.com/v72/payments \ -H 'x-API-key: ADYEN_API_KEY' \ -H 'idempotency-key: YOUR_IDEMPOTENCY_KEY' \ -H 'content-type: application/json' \ -X POST -d '{ "amount":{ "currency":"NOK", "value":1000 }, "reference":"YOUR_ORDER_NUMBER", "paymentMethod": { "type": "vipps", "telephoneNumber": "PHONE_NUMBER" }, "returnUrl":"https://your-company.com/checkout?shopperOrder=12xy..", "merchantAccount":"ADYEN_MERCHANT_ACCOUNT", "shopperStatement": "Vipps shopper statement", "channel": "React-native" }' ``` #### Java ```java // Adyen Java API Library v38.0.0 to latest import com.adyen.Client; import com.adyen.Config; import com.adyen.enums.Environment; import com.adyen.model.*; import com.adyen.service.*; import java.math.*; import com.adyen.model.checkout.*; import java.time.OffsetDateTime; import java.util.*; import com.adyen.model.RequestOptions; import com.adyen.service.checkout.*; Config config = new Config() .apiKey("ADYEN_API_KEY") .environment(Environment.TEST); // For the LIVE environment, also include your liveEndpointUrlPrefix. Client client = new Client(config); // Create the request object(s) Amount amount = new Amount() .currency("NOK") .value(1000L); VippsDetails vippsDetails = new VippsDetails() .telephoneNumber("PHONE_NUMBER") .type(VippsDetails.TypeEnum.VIPPS); PaymentRequest paymentRequest = new PaymentRequest() .reference("YOUR_ORDER_NUMBER") .amount(amount) .merchantAccount("ADYEN_MERCHANT_ACCOUNT") .channel(PaymentRequest.ChannelEnum.REACT_NATIVE) .paymentMethod(new CheckoutPaymentMethod(vippsDetails)) .returnUrl("https://your-company.com/checkout?shopperOrder=12xy..") .shopperStatement("Vipps shopper statement"); // Send the request PaymentsApi service = new PaymentsApi(client); PaymentResponse response = service.payments(paymentRequest, new RequestOptions().idempotencyKey("UUID")); ``` #### PHP ```php setXApiKey("ADYEN_API_KEY"); // For the LIVE environment, also include your liveEndpointUrlPrefix. $client->setEnvironment(Environment::TEST); // Create the request object(s) $amount = new Amount(); $amount ->setCurrency("NOK") ->setValue(1000); $checkoutPaymentMethod = new CheckoutPaymentMethod(); $checkoutPaymentMethod ->setTelephoneNumber("PHONE_NUMBER") ->setType("vipps"); $paymentRequest = new PaymentRequest(); $paymentRequest ->setReference("YOUR_ORDER_NUMBER") ->setAmount($amount) ->setMerchantAccount("ADYEN_MERCHANT_ACCOUNT") ->setChannel("React-native") ->setPaymentMethod($checkoutPaymentMethod) ->setReturnUrl("https://your-company.com/checkout?shopperOrder=12xy..") ->setShopperStatement("Vipps shopper statement"); $requestOptions['idempotencyKey'] = 'UUID'; // Send the request $service = new PaymentsApi($client); $response = $service->payments($paymentRequest, $requestOptions); ``` #### C\# ```cs // Adyen .NET API Library v34.0.0 to latest using System; using Adyen.Checkout.Extensions; using Adyen.Checkout.Models; using Adyen.Checkout.Services; using Adyen.Core.Client; using Adyen.Core.Client.Extensions; using Adyen.Core.Options; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; var host = Host.CreateDefaultBuilder() .ConfigureCheckout( (context, services, config) => { config.ConfigureAdyenOptions(options => { options.AdyenApiKey = "ADYEN_API_KEY"; options.Environment = AdyenEnvironment.Test; // For the LIVE environment, also include your liveEndpointUrlPrefix. // options.LiveEndpointUrlPrefix = ""; }); services.AddAllCheckoutServices(); }) .Build(); var paymentsService = host.Services.GetRequiredService(); // Create the request object(s) var amount = new Amount { Currency = "NOK", Value = 1000 }; var vippsDetails = new VippsDetails { TelephoneNumber = "PHONE_NUMBER", Type = VippsDetails.TypeEnum.Vipps }; var paymentRequest = new PaymentRequest { Reference = "YOUR_ORDER_NUMBER", Amount = amount, MerchantAccount = "ADYEN_MERCHANT_ACCOUNT", Channel = PaymentRequest.ChannelEnum.React-native, PaymentMethod = new CheckoutPaymentMethod(vippsDetails), ReturnUrl = "https://your-company.com/checkout?shopperOrder=12xy..", ShopperStatement = "Vipps shopper statement" }; string idempotencyKey = Guid.NewGuid().ToString(); // Send the request var result = await paymentsService.PaymentsAsync(paymentRequest, new RequestOptions().AddIdempotencyKey(idempotencyKey)); if (result.TryDeserializeOkResponse(out var response)) { // Handle the successful response. } ``` #### NodeJS (JavaScript) ```js // Adyen Node API Library v30.0.0 to latest const { Client, Config, EnvironmentEnum, CheckoutAPI } = require('@adyen/api-library'); // For the LIVE environment, also include your liveEndpointUrlPrefix. const config = new Config({ apiKey: "ADYEN_API_KEY", environment: EnvironmentEnum.TEST }); const client = new Client(config); // Create the request object(s) const amount = { currency: "NOK", value: 1000 }; const vippsDetails = { telephoneNumber: "PHONE_NUMBER", type: "vipps" }; const paymentRequest = { reference: "YOUR_ORDER_NUMBER", amount: amount, merchantAccount: "ADYEN_MERCHANT_ACCOUNT", channel: "React-native", paymentMethod: vippsDetails, returnUrl: "https://your-company.com/checkout?shopperOrder=12xy..", shopperStatement: "Vipps shopper statement" }; // Send the request const checkoutAPI = new CheckoutAPI(client); const response = await checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: "UUID" }); ``` #### Go ```go // Adyen Go API Library v21.0.0 to latest import ( "context" "github.com/adyen/adyen-go-api-library/v21/src/common" "github.com/adyen/adyen-go-api-library/v21/src/adyen" "github.com/adyen/adyen-go-api-library/v21/src/checkout" ) // For the LIVE environment, also include your liveEndpointUrlPrefix. client := adyen.NewClient(&common.Config{ ApiKey: "ADYEN_API_KEY", Environment: common.TestEnv, }) // Create the request object(s) amount := checkout.Amount{ Currency: "NOK", Value: 1000, } vippsDetails := checkout.VippsDetails{ TelephoneNumber: "PHONE_NUMBER", Type: common.PtrString("vipps"), } paymentRequest := checkout.PaymentRequest{ Reference: "YOUR_ORDER_NUMBER", Amount: amount, MerchantAccount: "ADYEN_MERCHANT_ACCOUNT", Channel: common.PtrString("React-native"), PaymentMethod: checkout.VippsDetailsAsCheckoutPaymentMethod(&vippsDetails), ReturnUrl: "https://your-company.com/checkout?shopperOrder=12xy..", ShopperStatement: common.PtrString("Vipps shopper statement"), } // Send the request service := client.Checkout() req := service.PaymentsApi.PaymentsInput().IdempotencyKey("UUID").PaymentRequest(paymentRequest) res, httpRes, err := service.PaymentsApi.Payments(context.Background(), req) ``` #### Python ```py # Adyen Python API Library v14.0.0 to latest import Adyen adyen = Adyen.Adyen() adyen.client.xapikey = "ADYEN_API_KEY" # For the LIVE environment, also include your liveEndpointUrlPrefix. adyen.client.platform = "test" # The environment to use library in. # Create the request object(s) json_request = { "amount": { "currency": "NOK", "value": 1000 }, "reference": "YOUR_ORDER_NUMBER", "paymentMethod": { "type": "vipps", "telephoneNumber": "PHONE_NUMBER" }, "returnUrl": "https://your-company.com/checkout?shopperOrder=12xy..", "merchantAccount": "ADYEN_MERCHANT_ACCOUNT", "shopperStatement": "Vipps shopper statement", "channel": "React-native" } # Send the request result = adyen.checkout.payments_api.payments(request=json_request, idempotency_key="UUID") ``` #### Ruby ```rb # Adyen Ruby API Library v11.0.0 to latest require "adyen-ruby-api-library" adyen = Adyen::Client.new adyen.api_key = 'ADYEN_API_KEY' # For the LIVE environment, also include your liveEndpointUrlPrefix. adyen.env = :test # Set to "live" for live environment # Create the request object(s) request_body = { "amount" => { "currency" => "NOK", "value" => 1000 }, "reference" => "YOUR_ORDER_NUMBER", "paymentMethod" => { "type" => "vipps", "telephoneNumber" => "PHONE_NUMBER" }, "returnUrl" => "https://your-company.com/checkout?shopperOrder=12xy..", "merchantAccount" => "ADYEN_MERCHANT_ACCOUNT", "shopperStatement" => "Vipps shopper statement", "channel" => "React-native" } # Send the request result = adyen.checkout.payments_api.payments(request_body, headers: { 'Idempotency-Key' => 'UUID' }) ``` #### NodeJS (TypeScript) ```ts // Adyen Node API Library v30.0.0 to latest import { Client, Config, EnvironmentEnum, CheckoutAPI, Types } from "@adyen/api-library"; // For the LIVE environment, also include your liveEndpointUrlPrefix. const config = new Config({ apiKey: "ADYEN_API_KEY", environment: EnvironmentEnum.TEST }); const client = new Client(config); // Create the request object(s) const amount: Types.checkout.Amount = { currency: "NOK", value: 1000 }; const vippsDetails: Types.checkout.VippsDetails = { telephoneNumber: "PHONE_NUMBER", type: Types.checkout.VippsDetails.TypeEnum.Vipps }; const paymentRequest = { reference: "YOUR_ORDER_NUMBER", amount: amount, merchantAccount: "ADYEN_MERCHANT_ACCOUNT", channel: "React-native", paymentMethod: vippsDetails, returnUrl: "https://your-company.com/checkout?shopperOrder=12xy..", shopperStatement: "Vipps shopper statement" } as unknown as Types.checkout.PaymentRequest; // Send the request const checkoutAPI = new CheckoutAPI(client); const response = await checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: "UUID" }); ``` The response includes `action.type`: **redirect**. **Example response with a redirect action** ```json { "resultCode":"RedirectShopper", "action":{ "paymentMethodType":"vipps", "method":"GET", "url":"https://checkoutshopper-test.adyen.com/checkoutshopper/checkoutPaymentRedirect?redirectData=...", "type":"redirect" } } ``` ## Test and go live ### Test Vipps in the test environment Before you test Vipps, follow the instructions in the [Vipps developer documentation](https://developer.vippsmobilepay.com/docs/knowledge-base/test-environment#app-installation) to download and set up the test app. After you download and install the app, use the credentials below to log in: * `NIN`: **14103524416** * `Phone`: **+47 99985255** * `Code`: **1236** After you finish the test app setup, follow these steps to test your Vipps integration on the test environment: 1. Add Vipps to your merchant account in the [test Customer Area](https://ca-test.adyen.com/). 2. Create a payment request with Vipps. 3. Check the notification on the test app and authorize the payment. ### Request for Vipps in the live environment Before you can accept live Vipps payments, you must submit a request for Vipps in your [live Customer Area](https://ca-live.adyen.com/). After Adyen adds Vipps to your live Customer Area, do the following for each test payment: 1. Make a Vipps payment for a low amount. 2. Get the [**AUTHORISATION** webhook](https://docs.adyen.com/development-resources/webhooks/webhook-types/#default-event-codes) on your server. It includes the status of the payment. 3. In your live Customer Area, go to **Payments** > **Payment list** to see the status of the payment.