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