--- title: "Recurring payments" description: "Learn how to use recurring payments with PaySafeCard." url: "https://docs.adyen.com/payment-methods/paysafecard/recurring" source_url: "https://docs.adyen.com/payment-methods/paysafecard/recurring.md" canonical: "https://docs.adyen.com/payment-methods/paysafecard/recurring" last_modified: "2025-08-07T14:27:00+02:00" language: "en" --- # Recurring payments Learn how to use recurring payments with PaySafeCard. [View source](/payment-methods/paysafecard/recurring.md) ## Country availability PaySafeCard supports [tokenization](/online-payments/tokenization) for recurring payments in the following countries:\ Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lichtenstein, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, United Kingdom. ## Prepare for tokenization PaySafeCard has no setup requirements. Your existing PaySafeCard account will immediately work for recurring payments. We strongly recommend that you ask explicit permission from the shopper if you intend to make future recurring payments. Being transparent about the payment schedule and the charged amount reduces the risk of complaints. ## Set parameters to flag transactions When you make a [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request to [create a token](/online-payments/tokenization/create-tokens), or [pay with a token](/online-payments/tokenization/make-token-payments) you must include: | Parameter | Description | | ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [recurringProcessingModel](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-recurringProcessingModel) | When you first create a token, `recurringProcessingModel` indicates what type of recurring payment the token is intended for. For subsequent payments, it indicates the type of recurring payment. Possible values: - **[CardOnFile](/online-payments/tokenization/create-and-use-tokens/?tab=one_off_payments_1)**: A transaction where shopper's myPaysafeCard account details are stored to enable one-click or omnichannel journeys, or to offer a faster checkout later. - **[UnscheduledCardOnFile](/online-payments/tokenization/create-and-use-tokens/?tab=automatic_top_ups_3)**: A transaction that occurs on a non-fixed schedule and/or have variable amounts. - **[Subscription](/online-payments/tokenization/create-and-use-tokens/?tab=subscriptions_2)**: A transaction for a fixed or variable amount, which follows a fixed schedule. Adyen propagates these parameters to PaysafeCard. Ensure you choose the most fitting model to ensure maximum conversion. | | [shopperInteraction](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-shopperInteraction) | Indicates the sales channel through which the shopper gives their account details. For online transactions, this is Ecommerce. For subsequent payments, indicates whether the shopper is a returning customer (**ContAuth**). | | [shopperReference](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-shopperReference) | Your unique reference for the shopper. Minimum length: three characters. Note that the value is case-sensitive. Do not include personally identifiable information (PII), such as name or email address. | | [storePaymentMethod](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-storePaymentMethod) | When you first create a token, set to true to store the shopper's payment details. For subsequent payments, this parameter is not required. | Even though the `recurringProcessingModel` contains the term **card**, recurring payments for PaySafeCard is only supported whenever the shopper authorizes with a myPaysafecard account (wallet) and not a PaysafeCard PIN/card. ## Create PaySafeCard tokens When shoppers pay with PaySafeCard they can use one of two funding sources: Wallet or Voucher/PIN cards. **Only Wallet payments are eligible for tokenization.** If a tokenization request is made for a Voucher/PIN card payment, the transaction will still be processed, but no token will be generated. Note that you cannot control which funding source shoppers use, and PaySafeCard does not indicate this information in the payment response. When the [preparation](/payment-methods/paypal/web-drop-in/?tab=using_the_amount_object_1_2#prepare-recurring) is completed, creating and using tokens for PaySafeCard payments is the same as described for tokenization in general: 1. To create a token through a zero-value authorization request, in your initial [/sessions](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions) or [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request include: | Parameter | Description | | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | | [value](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-amount-value) | Set to 0 when making a zero-value authorization request. For with-purchase tokenization, simply provide the correct amount and include the below parameters. | | [recurringProcessingModel](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-recurringProcessingModel) | The type of transactions you can use the stored details for. | | [shopperReference](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-shopperReference) | Your unique reference for the shopper. | | [storePaymentMethod](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-storePaymentMethod) | The setting for storing the shopper's payment details. | Example [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request (creating token): **Example /payments request to create a token** ```bash curl https://checkout-test.adyen.com/v72/payments \ -H 'x-API-key: ADYEN_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "amount":{ "value":0, "currency":"EUR" }, "paymentMethod":{ "type":"paysafecard" }, "reference":"YOUR_ORDER_NUMBER", "merchantAccount":"YOUR_MERCHANT_ACCOUNT", "returnUrl":"...", "shopperReference":"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j", "shopperInteraction":"Ecommerce", "recurringProcessingModel":"Subscription", "storePaymentMethod": true }' ``` 2. Proceed as described for tokenization in general: get the shopper reference and the token by listening to webhooks, and use this data in future payments for the shopper. For instructions on obtaining the token and enabling webhooks for recurring payments, see [Create tokens](/online-payments/tokenization/create-tokens). ## Make payment with existing tokens In subsequent transactions, use `storedPaymentMethodId` to provide the token value obtained from the webhook. This is Adyen's reference to the token / myPaysafeCard account. The `recurringProcessingModel` and `shopperInteraction` indicate a type of recurring processing is taking place (`shopperInteraction` = **contAuth**) and the type of recurring model that is applicable (for example **Subscription**). **Example /payments request to create a token** ```bash curl https://checkout-test.adyen.com/v72/payments \ -H 'x-API-key: ADYEN_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "amount":{ "value": 2000, "currency":"EUR" }, "paymentMethod":{ "type":"paysafecard", "storedPaymentMethodId":"8415718415172204" }, "reference":"YOUR_ORDER_NUMBER", "merchantAccount":"YOUR_MERCHANT_ACCOUNT", "returnUrl":"...", "shopperReference":"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j", "shopperInteraction":"ContAuth", "recurringProcessingModel":"Subscription" }' ``` ## Customer data exchange When the shopper confirms the payment and a myPaysafeCard wallet was used, you will be able to retrieve the customer’s data via [Customer Data Exchange](/payment-methods/paysafecard/customer-data-exchange/). For any zero-amount transactions used to create a recurring relationship, this data will not be returned. For any (subsequent) payments of an amount greater than zero, customer data exchange works as described. ## Testing Before testing recurring payments, create a myPaysafeCard test account (wallet). To request a test account, contact the [Paysafe technical support team](https://developer.paysafe.com/en/support/) with the following details: * The country for the test account * A date of birth for the test user When the test account is created, test the following scenarios in your Adyen test environment: * Initiate a payment to [create a token](#create-token) * Receive the webhook that confirms tokenization * Process the [different recurring models](#make-payment) * Handle [errors](#error) Perform the same scenarios in your live environment. ### Error handling For refusals the two main errors are: | Error message | PaySafeCard error code | How to proceed | | --------------------------------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Insufficient funds on customer PaysafeCard account. | 2004 | There is not enough balance on the myPaysafeCard account. You can do either of the following:- Retry with a lower amount. - Ask the shopper to top up their myPaysafeCard account, and retry. | | Token not valid. | 10033 | The token is no longer valid. This can happen when the token expires if there is more than a year of lack of activity. It is also possible that the token was never (properly) created. Ask the shopper again to approve recurring payments with a new zero-value authorization request. |