Specify customer present
When using the ePayment API to process payments in a physical setting (e.g., from a Point of Sale
device or in a restaurant), you must specify "customerInteraction": "CUSTOMER_PRESENT"
create payment endpoint,
POST:/epayment/v1/payments
.
The CUSTOMER_PRESENT
parameter is required for compliance and reporting reasons, as
the risk is lower when the customer is physically present than when the customer is
paying remotely over the net.
Scenario
Payment request sent directly to the app
If you have the customer's phone number and their consent to send payment requests through Vipps MobilePay, you can send payment requests directly to their app.
- Vipps
- MobilePay
- Since you have the customer's phone number, send the create payment request where
customer.phoneNumber
is set. - The customer will receive a push notification in their Vipps
or MobilePay
app.
- When the customer selects
Show details
in the payment confirmation screen, they are presented with the order information provided by the merchant without leaving the Vipps or MobilePay app. - The customer approves, rejects, or postpones the payment.
- The user will be able to retrieve the order details in the app under Activities.
Example
Specify "customerInteraction": "CUSTOMER_PRESENT"
in the POST:/epayment/v1/payments
request.
For example:
curl -X POST https://apitest.vipps.no/epayment/v1/payments \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR-ACCESS-TOKEN" \
-H "Ocp-Apim-Subscription-Key: YOUR-SUBSCRIPTION-KEY" \
-H "Merchant-Serial-Number: YOUR-MSN" \
-H 'Idempotency-Key: YOUR-IDEMPOTENCY-KEY' \
-H "Vipps-System-Name: acme" \
-H "Vipps-System-Version: 3.1.2" \
-H "Vipps-System-Plugin-Name: acme-webshop" \
-H "Vipps-System-Plugin-Version: 4.5.6" \
-d '{
"customerInteraction": "CUSTOMER_PRESENT",
"amount": {
"currency": "EUR",
"value": 12900
},
"customer":{
"phoneNumber":3589123456
},
"paymentMethod": {
"type": "CARD"
},
"receipt":{
"orderLines": [
{
"name": "Service or product name",
"id": "line_item_1",
"totalAmount": 12900,
"totalAmountExcludingTax": 10320,
"totalTaxAmount": 2580,
"taxRate": 2500
}
],
"bottomLine": {
"currency": "EUR",
"receiptNumber": "20250514-00123"
}
},
"reference": "acme-shop-123-order123abc",
"userFlow": "WEB_REDIRECT",
"paymentDescription": "Consultation",
"returnUrl": "https://example.com/redirect?reference=acme-shop-123-order123abc"
}'
Note that you can specify orderlines or a receipt URL, as described in the Order details section.