Skip to main content
All CollectionsIntegrationsKlaviyo
Understanding Failed Billing Metrics - Klaviyo
Understanding Failed Billing Metrics - Klaviyo
Cecilia Wilbur avatar
Written by Cecilia Wilbur
Updated this week

To master Klaviyo metrics for failed billing, it’s essential to understand the different types of declines: hard and soft.

  • Hard Declines indicate that a card needs to be updated.

  • Soft Declines suggest the card may be recoverable with retries.

The key to setting up Klaviyo metrics for failed billing is to use trigger splits.

Error Codes

rtx_error_code

You could use error codes, but these tend to be generic and may include both soft and hard declines. For example, payment_method_declined includes messages that indicate both types of errors, though it often points to soft errors.

We’ve determined the following error codes are usually, or most likely to be, soft declines:

  • payment_method_declined

  • paypal_error_general

  • transient_error

  • Unexpected_error

  • insufficient_funds

If you’d like to create a more generic flow, you can use the above error codes to email customers that you’re retrying their card and will likely capture their payment. Encourage them to update their card if possible.

For other error codes (hard decline likely), you can notify customers that, without updating their card, their subscription will likely be canceled.

Insufficient_funds

While insufficient_funds can be resolved with future retries, this may not be the case depending on the funds available to the card on subsequent retries. You may want to create separate messaging for this error. However, it is essential to be sensitive to this specific error message.

Number of Failed Attempts

rtx_failed_billing_attempts

Failure Attempt Segmentation

By sending different messages for each retry, you can tailor content based on where customers are in the dunning process. Smart Dunning uses seven retries following the initial billing failure over approximately 30 days, where:

  • rtx_failed_billing_attempts = 1 signals the initial failure.

  • rtx_failed_billing_attempts = 2 signals the first retry

  • rtx_failed_billing_attempts = 8 signals subscription cancellation at the end of the smart dunning process (if you are using manual settings, this may vary)

These attempts reset when a subscription is recovered or canceled.

Silent Retries

It’s advisable to implement silent retries. For soft declines, you may choose not to send an email with each failure. By segmenting on rtx_failed_billing_attempts, you can decide to send failed billing messages only after the first retry fails and space out additional messages to avoid overwhelming the customer.

Silent retries can help recover additional subscriptions manually before customers cancel and reduce the number of emails sent during the dunning process for soft declines.

Error Messages

rtx_error_message

To create the most robust dunning email flow, using error messages is preferable as they provide more explicit indicators of hard or soft declines.

Examples include:

  • “Your card was declined.”

  • “Your card has insufficient funds.”

  • credit_card_not_found

  • “This transaction has been declined.”

  • “Your card number is incorrect.”

  • “Agreement was canceled.”

  • “Your card does not support this type of purchase.”

  • Field: api_errors Error: credit_card_is_expired

In some cases, you can customize your flow to send specific messages about the exact reason for failure, such as an expired card or incorrect card number. For generic declines, you can use broader messaging.

Did this answer your question?