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.
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​
- Initial Payment with User Interaction - Create a Payment Request and obtain a token after successful user payment
- Automated Recurring Charges - Use the stored token to authorize subsequent payments automatically without user interaction
Requirements​
- 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 timestampnonce- Randomly generated unique stringmac- Calculated MAC hash value using mac_key and mac_algorithmext- 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_keymust remain confidential and never be shared - Each request must include a unique
noncevalue - 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:
- Receive the
notification_id - Retrieve notification details via API
- Mark the notification as read to prevent repeated callbacks
Next Steps
- Follow the Getting Started guide to set up your integration
- Review API Fundamentals for implementation details
- Check Examples for code samples
- Visit FAQ for common questions
Support​
Need help with complex integrations?
Contact: tech_support@paysera.com