Flexible price payment agreement
Install AI tools
Our plugin gives your assistant up-to-date guidance for payments and login. Full instructions
- Claude Code
- Cursor
- Codex
- Any editor
Run both commands, in order.
claude plugin marketplace add vippsas/agent-toolkit
claude plugin install vipps@agent-toolkit
Open Settings, then Plugins.
Add vippsas/agent-toolkit as a plugin marketplace, then install the "vipps" plugin.
See the Codex plugin docs at developers.openai.com/codex.
Add vippsas/agent-toolkit as a plugin marketplace, then install the "vipps" plugin.
No plugin needed. Paste this into your assistant.
Read https://developer.vippsmobilepay.com/llms.txt for the Vipps MobilePay developer documentation.
A flexible price agreement gives the merchant full flexibility to charge the user any amount, at any time, and at any frequency. Unlike other agreement types, there is no maximum amount set or approved in advance by the user. This is ideal for services where both the amount and charging interval are unpredictable.
Example industries/use-cases
Similar use-cases as that of variable price payment agreements.
Utilities: Power, water, telecom bills where the amount depends on usage
Food Delivery & Groceries: Weekly meal delivery with changing order totals
Mobility & Transport: Car sharing or bike rental subscriptions with variable monthly charges
Parking & Charging: Parking apps or parking aggregators, EV charging
On-demand services: Home repairs and cleaning
Entertainment: Lottery and other entertainment subscriptions where the amount varies depending on user's purchases
How it looks in the app
Screenshot: Two-screen flexible price payment agreement sign-up flow in the app (Vipps or MobilePay) — the overview step shows Price and Frequency both labeled "Variable" with annotations noting the amount and timing can vary per payment and that no user-set maximum applies; the approval step shows a "Confirm payment method" prompt with a payment card and a Pay/Confirm button.
API request snippet
"pricing": {
"type": "FLEXIBLE",
"currency": "NOK"
}
Interval can be optional.
"interval": {
"unit": "MONTH",
"count": 1
}

