> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bolta.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Recurring Payments (SaaS)

> A workflow for automatically issuing tax invoices on a recurring basis for SaaS subscription services.

A scenario for automatically issuing tax invoices when recurring payments occur, such as SaaS subscriptions or monthly services.

## Workflow

<Steps>
  <Step title="Register a certificate" icon="shield-check">
    Register your company's certificate for standard issuance. You can register it directly on the Bolta web, or obtain a registration URL via the [Retrieve Certificate Registration URL API](/api-reference/certificate/retrieve-certificate-registration-url).
  </Step>

  <Step title="Run recurring issuance" icon="code">
    When the payment scheduler is triggered, call the [Issue Tax Invoice API](/api-reference/tax-invoice/issue-tax-invoice) to issue a tax invoice. Using the `Client-Reference-Id` header helps prevent duplicate issuance. For details, see the [Authentication Guide](/en/api-introduction/authentication#client-reference-id).
  </Step>

  <Step title="Receive the issuance-complete webhook" icon="zap">
    Once issuance is complete, a notification containing `taxInvoiceUrl` is sent via [webhook](/en/api-introduction/webhook-events).
  </Step>

  <Step title="Issuance-complete email" icon="mail">
    An email notifying the subscriber that a tax invoice has been received is sent automatically.
  </Step>

  <Step title="Retrieve the tax invoice (optional)" icon="search">
    Check the issuance result with the [Retrieve Tax Invoice API](/api-reference/tax-invoice/retrieve-tax-invoice) or the [Retrieve Tax Invoice by Client Reference API](/api-reference/tax-invoice/retrieve-tax-invoice-by-client-reference).
  </Step>
</Steps>

## When It Fits

* When a SaaS subscription service bills automatically on a monthly/annual basis
* When recurring transactions occur, such as regular deliveries or maintenance contracts
* When scheduler-based automatic issuance is needed

## Implementation Tips

* Integrate with your payment system's scheduler to issue automatically when payment completes
* Using the payment ID as the `Client-Reference-Id` makes idempotency and tracking easier
* We recommend implementing retry logic when you receive an issuance-failure webhook
