Smart retries

Smart retries
Use Solidgate smart retries to automatically recover failed subscription payments with intelligent, data-driven retry scheduling

Smart retries provide an intelligent, data-driven approach to recovering failed subscription payments by choosing when to retry each payment based on its decline reason and payment history.

You do not need to build or maintain a fixed retry schedule. Smart retries adjust the timing for each payment to recover more eligible failures while limiting unnecessary retry attempts.

How smart retries work

Smart retries use an intelligent algorithm that adapts retry timing based on payment history, decline patterns, and other related details.

  • Payments to retry - temporary issues like insufficient funds or card activity limits.
  • Payments not to retry - permanent issues like expired cards, closed accounts, or fraud.

The process unfolds as follows:


  1. When a payment fails due to a transaction decline, the subscription goes into the redemption state.
    • If it is a decline that can be retried, the system schedules a retry based on an intelligent algorithm.
    • If it is a decline that should not be retried, no retry is made.
  2. The set number of retries is attempted within a defined period.
    • If the retry is successful, the payment is recovered, and the subscription becomes active.
    • If all retries fail, the Guide
      Learn about invoice statuses and how they change throughout the invoice lifecycle.
      invoice status
      depends on the configured setting: it is marked as not paid, or it is voided and the subscription is cancelled.

You can decide whether to grant access during the retry period. Solidgate provides a subscription status that indicates when the subscription is in redemption. If you choose to allow access, include the retry period in the next billing cycle.

The timing and frequency of these retries are automatically optimized to align with the subscription billing cycle and business preferences. This approach ensures that subscriptions are not retried too often or too infrequently.

Configure smart retries

Smart retries are enabled by default with four retries within four weeks. These settings can be modified based on your business requirements. Your changes are saved and applied automatically.

To configure smart retries

  1. Go to Billing > select the version > Settings.
  2. Navigate to the Smart retries tab.
  3. For the Retry frequency, set:
    • number of retry attempts
    • timeframe for processing retries
  4. Depending on the Billing version:
    • In Billing 1.0, optionally click on Discounts to add discounts to retry attempts.
    • In Billing 2.0, set whether the Guide
      Learn about invoice statuses and how they change throughout the invoice lifecycle.
      invoice status
      becomes unpaid or voided once all retries fail. Voiding the invoice also cancels the subscription. Marking it as unpaid does not cancel the subscription.
A discounted retry runs only after a regular retry fails with error 3.02 (insufficient funds) and is processed 30 minutes after that failed attempt.

Discounted retries count toward the total retry limit, which cannot exceed 14 attempts due to limits set by card networks.

Discounted retries

Discounted retries give customers a chance to complete a failed payment at a temporarily reduced amount. This can help merchants recover revenue and retain subscriptions that might otherwise become unpaid, while giving customers a chance to keep access to your product.

Use discounted retries to:

  • reduce subscription churn caused by failed payments due to insufficient funds
  • recover some revenue instead of losing the payment entirely
  • offer a temporary discount without changing the regular plan price

Billing 1.0 and Billing 2.0 both support discounted retries, but they apply the discount differently.

Discounted retries in Billing 1.0

The discounted retry charges a reduced amount directly on the existing invoice.

Example: retry attempt flow

Plan price: $100
Retry frequency: 3 regular attempts
Discounts: Attempts 2 and 3 (on error 3.02)
Max attempts: 5 (3 regular and 2 discounted)
AttemptRetry typeInvoice transitionAmountResult
1stRegular retry fails (non-3.02)Charges an existing invoice$100Payment fails
2ndRegular retry fails with error 3.02Charges an existing invoice$100Payment fails, triggers discounted retry
3rdDiscounted retry in 30 min with 10% offCharges a reduced amount on the same invoice$90Payment fails
4thRegular retry (no discount)Charges an existing invoice$100Paid $100

In total, 4 out of 5 possible attempts are used.


Discounted retries in Billing 2.0

In Billing 2.0, the amount of a finalized invoice cannot change. When a retry discount applies, the current unpaid invoice is voided and a new invoice is issued for the same billing period with the discount applied.

If the retry for a new invoice succeeds, it becomes paid. If the retry fails, the invoice is re-issued whenever the amount needs to change, either because a new discount applies or because the price reverts to the regular amount.

If all retries fail, the final invoice in the chain follows the configured Guide
Learn about invoice statuses and how they change throughout the invoice lifecycle.
invoice status
setting: unpaid or voided.


Example 1: Retry discounts without tax

Plan price: $100 (no tax)
Retry frequency: 3 regular attempts
Discounts: Attempts 2 and 3 (on error 3.02)
Max attempts: 5 (3 regular and 2 discounted)
AttemptRetry typeInvoice transitionAmountResult
1stRegular retry fails (non-3.02)Invoice #1 OPEN $100Payment fails, no re-issue
2ndRegular retry fails with error 3.02Invoice #1 OPEN $100Payment fails, triggers discounted retry
3rdDiscounted retry in 30 min with 10% offInvoice #1 VOIDED →
Invoice #2 OPEN
$90Invoice re-issued, payment fails
4thRegular retry (no discount)Invoice #2 VOIDED →
Invoice #3 OPEN
$100Invoice re-issued,
paid $100

Invoice #3 is paid in full ($100).

If attempt 4 also fails with error 3.02 instead of succeeding:

AttemptRetry typeInvoice transitionAmountResult
4thRegular retry fails with error 3.02Invoice #3 OPEN $100Payment fails, triggers discounted retry
5thDiscounted retry in 30 min with 25% offInvoice #3 VOIDED →
Invoice #4 OPEN
$75Invoice re-issued,
paid $75

Same attempt shape as Billing 1.0 (3 regular retries, discounts on attempts 2 and 3), only the discount moves through a new invoice instead of a reduced charge on the original one.


Example 2: Retry discounts with tax

Plan price: $100 (exclusive 19% tax)
Retry frequency: 3 regular attempts
Discounts: Attempts 2 and 3 (on error 3.02)
Max attempts: 5 (3 regular and 2 discounted)
AttemptRetry typeInvoice transitionSubtotalTax (19%)TotalResult
1stRegular retry fails (non-3.02)Invoice #1 OPEN $100.00$19.00$119.00Payment fails, no re-issue
2ndRegular retry fails with error 3.02Invoice #1 OPEN $100.00$19.00$119.00Payment fails, triggers discounted retry
3rdDiscounted retry in 30 min with 10% offInvoice #1 VOIDED → Invoice #2 OPEN $90.00$17.10$107.10Invoice re-issued, payment fails
4thRegular retry (no discount)Invoice #2 VOIDED → Invoice #3 OPEN $100.00$19.00$119.00Invoice re-issued,
paid $119.00

Invoice #3 is paid in full ($119.00).

If attempt 4 also fails with error 3.02 instead of succeeding:

AttemptRetry typeInvoice transitionSubtotalTax (19%)TotalResult
4thRegular retry fails with error 3.02Invoice #3 OPEN $100.00$19.00$119.00Payment fails, triggers discounted retry
5thDiscounted retry in 30 min with 25% offInvoice #3 VOIDED → Invoice #4 OPEN $75.00$14.25$89.25Invoice re-issued,
paid $89.25

Tax is recalculated on the discounted amount, the same way it would be for an invoice with a coupon applied. Coupons on the original invoice remain in place, and the retry discount stacks on top of them.


Apply smart retries to product

Based on your preferred flow, you can apply smart retries to products via API or the Solidgate Hub.

Use the create product API v1 and update product API v1 endpoints to add or modify the retry settings for your offers. These endpoints let you set a retry approach that aligns with your business goals and supports payment recovery. To enable smart retries, set the retry_mode field to smart in your request.

When smart retries are configured for a product, the webhook payload may temporarily lack the next_charge_at value if it is unavailable in real time. In this case, you need to request the subscription status API v1 after 5–15 seconds of receiving the webhook to retrieve the next_charge_at information. In some cases, it may take up to 15 minutes, so retrying requests is recommended.

This logic is being improved, and changes are coming soon.
To apply smart retries to a product

  1. Go to Billing > select the version > Products.
  2. Find the product and click on it.
  3. In the Product section, click on Edit.
  4. Next to Retry mode, select Smart retries.
  5. Click on Save changes.

Once you start using smart retries with your products, all new subscriptions created with such products use the intelligent retry approach automatically. This method increases the chances of recovering failed payments, helping businesses reduce revenue loss and improve customer retention.


Looking for help? Contact us
Stay informed with Changelog