Skip to main content

Recurring Billing API Overview

Recurring billing is when a merchant automatically charges a cardholder for specified goods or services on a prearranged schedule. The merchant must obtain cardholder permission upfront before implementing this payment method.

Overview​

Recurring billing allows you to charge money without user interaction. For example, to charge subsequent amounts from a user's credit card for monthly subscriptions.

Supported payment methods

Only cards (Visa and Mastercard) entered in the card form can be tokenised. Apple Pay, Google Pay and bank payments are not supported, so the first payment must be made by card for a token to be issued.

How It Works​

Recurring billing requires a prior completed payment with user interaction to obtain a token. The first Payment Request must be completed with user interaction before subsequent automated charges can occur.

Two-Step Process​

  1. Initial Payment with User Interaction - Create a Payment Request and obtain a token after successful user payment
  2. Automated Recurring Charges - Use the stored token to authorize subsequent payments automatically without user interaction

Requirements​

Important
  • You must obtain explicit cardholder permission before implementing recurring billing
  • The first payment must be completed with user interaction to obtain a token
  • Customers must be clearly informed about the recurring nature of the charges
  • The billing schedule and amount must be communicated upfront

Getting Started​

Ready to implement recurring billing? Follow our Getting Started Guide for step-by-step instructions.

Authentication​

All API requests require HTTPS protocol and use MAC (Message Authentication Code) access authentication based on the OAuth 2.0 specification.

Required Authentication Headers​

All API requests must include the following in the Authorization header:

  • id - Your MAC ID (mac_id credential)
  • ts - Current UNIX timestamp
  • nonce - Randomly generated unique string
  • mac - Calculated MAC hash value using mac_key and mac_algorithm
  • ext - Extension field (URL-encoded, contains optional body_hash, project_id, location_id)

Example Authorization Header​

Authorization: MAC id="wkVd93h2uS",
ts="1343811600",
nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN",
mac="B3iRmOP5pZCTt5AdhJDnOj9O1F3U/oZ5z7Z6WgbG6h4="

Security Requirements​

  • All requests must use HTTPS protocol on port 443
  • The mac_key must remain confidential and never be shared
  • Each request must include a unique nonce value
  • Timestamps should be current to prevent replay attacks

API Details​

  • Host: checkout-eu-a.paysera.com
  • Protocol: HTTPS
  • Port: 443
  • Base Path: /checkout/rest/v1/
  • Format: JSON (UTF-8 encoded)

Key Concepts​

Payment Request​

The entry point for any payment flow. A Payment Request can be processed through:

  • User interaction (standard payment flow)
  • Automated recurring billing (using a stored token)

Token​

After the first successful payment with user interaction, you receive a recurring billing token. This token allows you to:

  • Authorize subsequent payments automatically
  • Charge without user interaction
  • Reuse the same token for future charges (a token has no expiry date; it works until a charge with it is refused)

Notification​

After each payment, Paysera sends a notification to your specified callback_url. You must:

  1. Receive the notification_id
  2. Retrieve notification details via API
  3. Mark the notification as read to prevent repeated callbacks
Next Steps

Support​

Need help with complex integrations?

Contact: tech_support@paysera.com