Skip to main content

Recurring Billing API Reference

Version: 1.0.0

The Paysera Recurring Billing API enables automated recurring payments using saved payment tokens. Create payment requests, authorize payments, and manage notifications programmatically.

Base URLs

  • Checkout API: https://checkout-eu-a.paysera.com/checkout/rest/v1
  • Notification API: https://checkout-eu-a.paysera.com/notification/rest/v1
Production Only

Recurring billing is available only in the Production environment. There is no separate test environment.

Authentication

Most endpoints require MAC (Message Authentication Code) authentication. Some public endpoints do not require authentication.

Authorization Header Format:

Authorization: MAC id="CLIENT_ID", ts="TIMESTAMP", nonce="RANDOM_STRING", mac="MAC_HASH", ext="body_hash=BODY_HASH"

Example:

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

MAC Parameters:

  • 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)

For more details, please refer to the Recurring Billing Authentication Documentation.

Available Endpoints

Payment Request API

EndpointMethodAuth RequiredDescription
/payment-requestsPOST✓ YesCreate a new payment request
/payment-requests/{id}GET✓ YesGet payment request details
/payment-requests/{id}/public-infoGET❌ NoGet public payment information
/payment-requests/{id}/set-emailPUT✓ YesUpdate payer email address
/payment-requests/{id}/set-missing-emailPUT❌ NoSet missing email (public)
/payment-requests/{id}/methodsGET❌ NoGet available payment methods
/payment-requests/{id}/authorizePUT✓ YesAuthorize payment with token

Notification Event API

EndpointMethodAuth RequiredDescription
/notificationsGET✓ YesGet all notifications with filtering
/notifications/{id}GET✓ YesGet single notification details
/notifications/{id}/readPUT✓ YesMark notification as read

Key Concepts

Initial Payments

For the first payment in a recurring series:

  • Provide accept_url, cancel_url, and callback_url (all required)
  • Set token_strategy: "required" to obtain a payment token
  • Customer completes payment with user interaction
  • After successful capture, you receive an issued_token on the Payment Request, delivered via the callback notification at data.payment_request.issued_token

Recurring Payments

For subsequent payments in a series:

  • Create a new payment request the same way (accept_url, cancel_url, and callback_url are still required by the API)
  • Authorize the payment with the stored token via PUT /payment-requests/{id}/authorize
  • No user interaction required - payment is automatically captured during authorisation

Payment Statuses

Payment requests transition through the following statuses:

  • new - Payment request created, awaiting customer payment
  • processing - Payment is being processed
  • authorized - Payment authorized, ready for capture
  • captured - Payment successfully completed and funds captured
  • canceled - Payment was canceled or refunded
  • instantly_refunded - Payment was immediately refunded

Notification Statuses

Notifications have their own status lifecycle:

  • new - Notification created, not yet processed
  • read - Notification has been marked as processed

HTTP Status Codes

CodeMeaningDescription
200OKRequest succeeded
201CreatedResource created successfully
400Bad RequestInvalid request parameters or malformed JSON
401UnauthorizedAuthentication failed or missing credentials
403ForbiddenValid credentials but insufficient permissions
404Not FoundResource doesn't exist
500Internal Server ErrorServer-side error

Rate Limits

The API implements rate limiting to ensure service stability. If you exceed the rate limit, you will receive a 429 Too Many Requests response.

Contact

Paysera Support: tech_support@paysera.com Website: https://www.paysera.com