Skip to main content

ePayment API checklist

Did you try out the ePayment API? Use this checklist as your integration requirement specification to ensure your ePayment API implementation is complete and production-ready.

It covers the key endpoints, quality assurance steps and pitfalls โ€” from payments to captures, refunds, and error handling. Once you have completed your integration you must use the checklist to ensure that you have covered all areas of the integration.

Flow to go live for direct integrationsโ€‹

  1. Order Payment Integration.
  2. We will complete customer control (KYC, PEP, AML, etc.). As soon as the customer control is completed, independently of this checklist, we will make the production API keys available on portal.vippsmobilepay.com and notify you that you can retrieve your keys.
  3. Retrieve your API keys.
  4. Complete all the checklist items in the checklist below to ensure your integration is ready for production.
  5. Verify the integration in the production environment:
    • A complete order ending in AUTHORIZED, CAPTURED, REFUNDED and CANCELLED request.
    • We recommend checking this using the API.
  6. Go live

ePayment checklistโ€‹

Endpoints to integrateโ€‹

It is important that you integrate all the API endpoints. For quick examples, see the quick start guide.

PurposeEndpoint
Create a payment
Fetch current status of a payment.
POST /epayment/v1/payments
Get payment statusGET /epayment/v1/payments/{reference}
Fetch payment event log
Fetch the history of a payment. Often used in support cases to see all events for a specific payment.
GET /epayment/v1/payments/{reference}/events
Cancel payment
Used to cancel pending payments or cancel reserved amounts.
POST /epayment/v1/payments/{reference}/cancel
Full & partial capture
All payments are reserve-capture and must therefore be captured in order to withdraw the funds. If payments are not captured the money will not be paid to the merchant. Read about capture deadlines.
POST /epayment/v1/payments/{reference}/capture
Full & partial refundPOST /epayment/v1/payments/{reference}/refund

Quality assuranceโ€‹

Ensure that your implementation complies with our requirements and recommendations.

Implement both webhooks and pollingโ€‹

Use both webhooks and polling to ensure that the user gets the correct status as soon as possible. Set up polling as fallback in case of delayed webhooks.

To minimize polling, you must also implement the Webhooks API to receive real-time updates on payment status changes. The merchant must also always poll GET:/epayment/v1/payments/{reference} to check the status of the payment.

Handle payment states and eventsโ€‹

Make sure to handle all responses for the payment:

Payment states:

  • CREATED
  • AUTHORIZED
  • ABORTED
  • EXPIRED
  • TERMINATED

Event statuses:

  • CANCELLED
  • CAPTURED
  • REFUNDED

Handle errorsโ€‹

Make sure to handle all errors. All integrations should display errors in a way that the users (customers and merchant employees/administrators) can see and understand them.

Proper loggingโ€‹

All integrations should log error responses to be used for later reference in troubleshooting. Logs must include endpoint, headers, request body, error code and message.

Include HTTP headersโ€‹

Send the HTTP headers in all API requests for better tracking and troubleshooting (mandatory for partners and platforms).

Add information to the payment historyโ€‹

We recommend adding order details to the payment. This is a great benefit for the end user experience. It is also mandatory for merchants using Content monitoring.

Specify customer interactionโ€‹

For instore solutions it is required to specify the customer interaction by setting "customerInteraction": "CUSTOMER_PRESENT" on payment initiation. This is to determine that the customer is present at the time of purchase.

Sign up for operational updatesโ€‹

Subscribe to the Vipps MobilePay Operational Status Page for real-time updates on service availability, incidents, and maintenance.

Avoid integration pitfallsโ€‹

These are the most common pitfalls to avoid to ensure best user experience.

Send a useful reference IDโ€‹

Follow our reference recommendations to ensure that each transaction is uniquely and reliably identified across all Vipps MobilePay APIs

Handle redirectsโ€‹

For mobile flows the implementation must handle that the returnUrl URL is opened in the default browser on the phone. And not rely on the use of a specific browser, a specific tab, an embedded browser, requiring a session token, etc. Follow our recommendations regarding handling redirects.

Complete capture before expiration dateโ€‹

All payments are reserve capture payments, therefore the implementation must ensure to complete captures before the reservations expire. Once a reservation is expired it is no longer possible to capture.

Cancel authorized payments that will not be capturedโ€‹

Authorized payments that will not be captured must be cancelled to ensure that the amount is not unnecessarily reserved on the users bank account.

It is the merchant/partners responsibility to cancel the authorized payments using POST:/epayment/v1/payments/{reference}/cancel

Handle cross-border paymentsโ€‹

Vipps MobilePay is available to users across the Nordic countries and offers cross-border payments. Merchants must be able to handle customers from outside their country.

Follow design guidelinesโ€‹

The Vipps MobilePay branding must be according to the design guidelines.

Educate customer supportโ€‹

Make sure your customer support has all the tools and information they need available in your system, through the API endpoints. Our portal portal.vippsmobilepay.com for customer support work and therefore it must be handled in your own system.

High five