Skip to main content

Recurring PSP API checklist

Coming soon

This checklist is under development.

Use this checklist to ensure your Recurring PSP 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.

Flow to go live​

  1. Complete your testing of the Recurring PSP API. Use the list below to ensure you cover all areas of the integration before you submit the checklist.

  2. Send your filled out checklist to us at developer@vippsmobilepay.com. Request examples in the checklist must be no more than 1 month old at the time you submit the checklist. Together with the checklist, please include a short description of your solution.

  3. We will verify your integration and get back to you as soon as possible. After the checklist is approved, we'll send you the information you need to go live.

Endpoints to integrate​

Integrate the following Recurring API endpoints.

For examples of requests and responses, see the Recurring API quick start guide.

PurposeEndpoint
Agreement: Create an agreementPOST /recurring/v3/agreements
Agreement: Retrieve an agreementGET /recurring/v3/agreements/{agreementId}
Agreement: Update an agreementPATCH /recurring/v3/agreements/{agreementId}
Agreement: List chargesGET /recurring/v3/agreements/{agreementId}/charges
Charge: Create charges (batch)POST /recurring/v4/agreements/charges
Charge: Get payment infoGET /recurring/v4/agreements/{agreementId}/charges/{chargeId}/payment-info
Charge: Report a charge resultPOST /recurring/v4/agreements/{agreementId}/charges/{chargeId}/result
Charge: Retrieve a chargeGET /recurring/v3/agreements/{agreementId}/charges/{chargeId}
Charge: Cancel a chargeDELETE /recurring/v3/agreements/{agreementId}/charges/{chargeId}
Charge: Refund a chargePOST /recurring/v3/agreements/{agreementId}/charges/{chargeId}/refund
Charge: Capture a reserved chargePOST /recurring/v3/agreements/{agreementId}/charges/{chargeId}/capture

Quality assurance​

Ensure that your implementation complies with our requirements and recommendations.

Handle errors​

Monitor the error messages Vipps MobilePay returns from the APIs and correct problems as quickly as possible. It's recommended to log errors emitted by our APIs. This makes it easier to pinpoint what has gone wrong. If you're new to handling errors, see HTTP Responses.

Include standard HTTP headers​

Send the HTTP headers in all API requests for better tracking and troubleshooting (mandatory for partners and platforms, who must send these headers as part of the checklist approval).

Avoid integration pitfalls​

Avoid these common mistakes to ensure the best user experience.

Track status with webhooks and polling​

The merchant must not rely on Redirect alone, but must always poll [GET:/recurring/v3/agreements/{agreementId}][fetch-agreement-endpoint] to check the status of the agreement. However, to minimize polling, you must also implement the Webhooks API to receive real-time updates on agreement or charge status changes. Polling can be used as a fallback for verification.

Provide subscription tools​

The merchant must have a way for the user to manage and stop their subscription in merchantAgreementUrl in their agreement. This should result in a timely update of the Vipps MobilePay agreement.

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 APIs listed in the first item in this checklist, and that they do not need to visit the business portal for normal work.

Use at least two retryDays​

The success rate of charges increases significantly when retryDays is set to two or more.

Monitor agreement and charge statuses​

Merchants must listen to Webhooks to track critical events such as:

  • Agreement cancellations
  • Activation of agreements
  • Charge-related updates (e.g., successful or failed charges)

This ensures merchants do not request payments on canceled agreements and avoid errors caused by outdated agreement statuses.

Webhooks provide real-time updates. Use polling as a fallback mechanism to verify agreement and payment statuses if webhook delivery fails.