Recurring PSP API changelog
note
This page covers Recurring API changes that are specific to PSP integrations. There may be additional changes that apply to all Recurring API integrations — see the Recurring API changelog.
July 2026​
- The v4 charge endpoint for reporting a payment outcome has been renamed from
POST:/recurring/v4/agreements/{agreementId}/charges/{chargeId}/finalizetoPOST:/recurring/v4/agreements/{agreementId}/charges/{chargeId}/result. The behavior is unchanged apart from theerrorobject below.- The
error.retryfield is now required when reporting aFAILEDresult — sendtrueif the payment may be retried,falseotherwise. - The
error.messagefield is now optional.
- The
DIRECT_CAPTUREis now supported for theinitialChargeon PSP agreement sign-up. The initial charge is captured for its full amount automatically once the sign-up CIT succeeds, going straight toCHARGED.- Only full capture is supported. If you need partial captures, use
RESERVE_CAPTUREand the Capture charge endpoint.
- Only full capture is supported. If you need partial captures, use
June 2026​
- The PSP-only Create PSP charges endpoint has the following changes:
- Returns retryable item-level failures in a separate
retryableChargesarray.- This applies to transient errors where the outcome is uncertain, such as
processing_timeoutandtechnical_error. - These charges can be retried with the same
agreementId+chargeIdpair.
- This applies to transient errors where the outcome is uncertain, such as
- Requires a
typefield on each charge, distinguishing unscheduled from scheduled charges:UNSCHEDULED:duemust be omitted, andcardInfois returned directly in the response.RECURRING:dueis required (at least one day in advance), andcardInfois not returned. Fetch it from Get payment info on theduedate (see the entry below).- The maximum number of charges per batch has been reduced from 100 to 50.
- Caps the
duedate of aRECURRINGcharge at 31 days from creation. Aduedate further out is rejected infailedChargeswithdue_date_too_far. - Accepts an optional
retryDaysfield onRECURRINGcharges.- For PSP charges,
retryDayssets how many days after theduedate the charge stays payable — i.e. how long payment info stays available from Get payment info so you can retry the payment — before the charge is automatically failed (0–14 days). - If omitted on a
RECURRINGcharge it defaults to14. ForUNSCHEDULEDcharges,retryDaysmust be omitted or0. - Two new item-level error codes can be returned in
failedCharges:retry_days_invalidandretry_days_not_allowed. - Added support for
DIRECT_CAPTUREcharges on the Create PSP charges endpoint. Previously onlyRESERVE_CAPTUREwas accepted.
- For PSP charges,
- A
DIRECT_CAPTUREcharge is captured for its full amount automatically once you finalize it withstatus: SUCCESS— it goes straight toCHARGEDwith no separate capture call. - Only full capture is supported for
DIRECT_CAPTURE. If you need partial captures, create the charge asRESERVE_CAPTUREand use the Capture charge endpoint.
- Returns retryable item-level failures in a separate
- Added a new PSP-only v4 endpoint, Get payment info, for fetching payment info for
DUEcharges. This is needed for scheduledRECURRINGcharges created above, where payment info is not returned in the initial Create PSP charges response.- Fetching payment info on demand avoids storing card data and ensures you always get the most up-to-date payment info for the agreement and charge.
- For unscheduled charges, payment info is still returned directly in the Create PSP charges response.
- Like the other v4 endpoints, this is PSP-only for now and enabled in the Merchant Test (MT) environment.
- The PSP-only Finalize charge endpoint now requires Get payment info to have been called first for a
RECURRINGcharge.- This ensures you perform the payment with the latest payment info rather than stale data.
- Unscheduled charges are unaffected — you already receive their card info in the Create PSP charges response.
- The PSP-only v4 charge endpoints now have rate limits, consistent with the rest of the Recurring API. See: Rate limits.
- Create PSP charges: 50 requests per minute per merchant.
- Finalize charge and Get payment info: 5 requests per minute per
agreementId+chargeId.
May 2026​
- Added initial support for Payment Service Providers (PSPs).
- This is only enabled in the Merchant Test (MT) environment for now; PROD will be enabled when the first PSPs have a validated and tested integration ready.
- PSPs are a new merchant type, separate from existing direct merchants. PSPs process payments on behalf of their onboarded merchants, whereas Vipps MobilePay processes payments for direct merchants (i.e., all current integrators).
- This change affects all payment flows in Recurring—three customer-initiated (CIT) and one merchant-initiated (MIT):
- Agreement sign-up with initial charge (CIT)
- Agreement sign-up without initial charge (CIT)
- Payment source updates (CIT)
- Charges on existing agreements (MIT)
- PSP merchants must include the new
cardPassthroughobject when creating an agreement. See Agreement sign-up for more information.- This is a PSP-only field—direct merchants will get a 400 error response if this is included in the request body.
- All affected v3 endpoints and their changes are listed below:
- Draft agreement: Added support for PSP-only cardPassthrough field
- Fetch agreement and List agreements: Added PSP-only cardPassthrough field to the response
- Update agreement: Added support for partial updates of the PSP-only cardPassthrough field
- Two new v4 endpoints have been added for PSP merchants:
- Create PSP charges: Batch create PSP charges. Each successful charge returns the card data (network token, optionally the encrypted PAN) needed to process a MIT payment.
- Finalize PSP charge: Report the outcome of a MIT payment, so it can be applied to the corresponding charge and shown to the user in the app.
- The v4 endpoints are PSP-only for now; they may be extended to direct merchants in the future.
- As part of this change, three new currencies have been added:
GBP,USD, andSEK.- PSP merchants can use all supported currencies:
NOK,DKK,EUR,GBP,USD, andSEK. - Direct merchants must continue to use
NOK,DKK, orEUR; attempting to use the new currencies will result in a 400 error response.
- PSP merchants can use all supported currencies: