Skip to main content

Recurring PSP API checklist

View as Markdown (opens in a new tab)
Install AI tools

Give your assistant up-to-date guidance for our APIs, with our plugin or without it.

The plugin is still under development. See the AI tools page for details.

Run both commands, in order.

claude plugin marketplace add vippsas/agent-toolkit
claude plugin install vipps-developer@agent-toolkit

For troubleshooting, see the full instructions.

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.

Once you have completed your integration, you must use the checklist to ensure that you have covered all areas of the integration.

Brand compliance for Vipps MobilePay at checkout

Merchants and partners must follow our brand guidelines wherever they offer Vipps MobilePay. Use only the approved buttons, and don't change their design.

For logos, buttons, and checkout texts, see the brand guidelines.

From test to production​

  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. Use this editable PDF to fill out and submit. 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 video of your payment flow and a short description of your solution.

  3. We will verify your integration and get back to you as soon as possible, so you can continue with the process to go live.

Download the editable Recurring PSP checklist

Download the PDF — an editable PDF you can fill out and track your progress.

Recurring PSP checklist​

Endpoints to integrate​

Integrate the following Recurring API endpoints.

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

Merchant​

PurposeEndpoint
Create merchantPOST /merchant-management/psp/v1/merchants
Delete merchantPATCH /merchant-management/psp/v1/merchants/{merchantSerialNumber}

Agreement​

PurposeEndpoint
Create an agreementPOST /recurring/v3/agreements
Create an agreement
with initial charge
POST /recurring/v3/agreements
Create an agreement
with price campaign
Optional feature
POST /recurring/v3/agreements
Create an agreement
with period campaign
Optional feature
POST /recurring/v3/agreements
Create an agreement
with event campaign
Optional feature
POST /recurring/v3/agreements
Retrieve an agreementGET /recurring/v3/agreements/{agreementId}
Update an agreementPATCH /recurring/v3/agreements/{agreementId}
Stop an agreementPATCH /recurring/v3/agreements/{agreementId}
List chargesGET /recurring/v3/agreements/{agreementId}/charges

Charges​

PurposeEndpoint
Create Recurring charge (batch)POST /recurring/v4/agreements/charges
Get payment infoGET /recurring/v4/agreements/{agreementId}/charges/{chargeId}/payment-info
Report a charge resultPOST /recurring/v4/agreements/{agreementId}/charges/{chargeId}/result
Retrieve a chargeGET /recurring/v3/agreements/{agreementId}/charges/{chargeId}
Cancel a chargeDELETE /recurring/v3/agreements/{agreementId}/charges/{chargeId}
Refund a chargePOST /recurring/v3/agreements/{agreementId}/charges/{chargeId}/refund
Capture a reserved chargePOST /recurring/v3/agreements/{agreementId}/charges/{chargeId}/capture

Brand compliance​

Following the terms and conditions for Vipps MobilePay Business Solutions:

Equal visibility​

Make Vipps MobilePay just as visible and easy to access as other payment methods, including digital wallets and payment apps.

Direct access​

Make Vipps MobilePay directly accessible, with no secondary menus or extra steps.

Same level as comparable methods​

Show Vipps MobilePay at the same level as comparable payment methods.

No lower priority​

Avoid consistently giving Vipps MobilePay a lower priority in the display or checkout flow.

Fair checkout​

Present Vipps MobilePay in a way that keeps checkout fair, easy to understand and quick to use.

Quality assurance​

Ensure that your implementation complies with our requirements and recommendations.

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 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).

Handle redirects​

The merchant must not rely on Redirect from Vipps MobilePay app alone, but must rely on either webhook or poll GET:/recurring/v3/agreements/{agreementId} to check the status of the agreement. The merchant must handle that the returnUrl URL is opened in the default browser on the phone, and not in a specific browser, in a specific tab, in an embedded browser, requiring a session token, etc. Follow our recommendations regarding handling redirects.

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.

Charge status​

All charges must be updated with capture or cancel status, as well as refund if this is performed.

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.

Track status with webhooks and polling​

The merchant must not rely on Redirect alone, but must always poll GET:/recurring/v3/agreements/{agreementId} 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.

Use at least two retryDays​

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

Merchant onboarding​

All merchants must be onboarded as individual merchants and not super merchants. All merchants must be onboarded with valid MCC. All merchants must use their own merchant/webshop name and logo. See PSP Merchant for more details.

Sign up for operational updates​

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