Failed payment flow not working

  • 7 July 2021
  • 2 replies

Badge +2


I am creating a Failed Payment flow using the Failed Payment metric from the Stripe integration.

According to the Integrations tab, there is a green border around the Stripe integration box. So this means that it has been fully synced and integrated.

The webhooks between Stripe and Klaviyo are successfully set up. There are successful calls recorded by Stripe when I make a test order. Using the test order codes that would trigger a failed order, Stripe records these payments as failed. However, it is not showing up in Klaviyo. I have made a few failed test orders and none of these times does it show up on Klaviyo. It only shows that I have started checkout (Woocommerce). Hence my failed order flow is not triggered and no email has been sent.

I found this in the Klaviyo documentation: How to integrate with Stripe on a failed payments flow and I was wondering what the flow trigger was as highlighted in the snapshot below.

So I’m wondering why failed payments are not being recorded and also why the flow is not being triggered.

This is my flow at the moment for staging purposes.

Also to note that when I used the test mode signing key for Stripe, Klaviyo was stuck for at long time at 99.5%. When I changed it to the live signing key, it completed integrating. However, as I check now, there are event attempts to contact the Klaviyo endpoint for the test endpoint (which was a result from my test failed orders). On the other hand, the live endpoints has no attempts made to send an event to the Klaviyo endpoint.


Hope this helps.

Thanks in advance.


Best answer by David To 7 July 2021, 19:35

View original

2 replies

Badge +2

Hi David,

Thanks for your solutions and I will try to reintegrate Stripe with Klaviyo again.

In response to your question about the email address, yes, we require an email address during the checkout process so I do not think this is the problem?

A possible reason, after further troubleshooting yesterday, as to why my flow is not triggering and that Stripe information is not being passed onto Klaviyo for Failed Payments could be that I am using test order which logs the TEST data onto Stripe. My Klaviyo was synced with the TEST mode signing keys instead of the LIVE one. Therefore, only when a customer makes a LIVE payment and failed the payment will this event gets logged to Klaviyo.

Just some thoughts to consider.


Thanks again for your help :)



Userlevel 7
Badge +60

Hello @Chrystal,

Thanks for sharing your question with the Klaviyo Community!

The flow filter highlighted in an example Stripe Failed Payments Flow within Klaviyo’s How to Integrate with Stripe article is the rule “What someone has done, Placed Order zero times since starting this flow”. This is to ensure that customers who has been queued up for the flow will be removed from the flow once they have triggered a successful payment. 

When attempting to test this Stripe Failed Payment event, can you confirm if you are also passing an email address when going through your checkout page? As detailed in the Stripe Integration Troubleshooting subsection of the How to Integrate with Stripe  article, a common reason why events aren’t syncing to Klaviyo would be the lack of an email address which Klaviyo uses to identify your customers:

I am not seeing all activity in Stripe sync to Klaviyo.

The most common reason why a Stripe event won't sync to Klaviyo is because there is no email address associated with the event. Klaviyo uses an email address to uniquely identify a person. Because of this, Klaviyo can’t create a profile for someone who is not associated with an email address. Likewise, Klaviyo can’t link an event to a profile if it is not associated with an email address.

Keep in mind that first name/last name inputs are not necessarily consistent or unique, so we don’t create profiles based on this information alone. Doing so would lead to duplicates and inaccurate tracking.

Alternatively, since it also sounds like you may have had some integration issues, I would also recommend first attempting to re-import your historical data. You can perform this action by navigating to Integrations > Stripe > Re-Import Historic Data which would push a historic sync between Stripe and Klaviyo to push any missed data. Keep in mind that this process can take some time depending on a number of factors and after doing so to not make any changes with the Stripe integration or Stripe’s backend settings while this is occurring else it may cause a sync error. You will know when this sync is complete when Stripe displays a green border next to it in your Klaviyo account's Integration tab. 

If re-importing your historic data did not bring over those events, then I would advise fully removing the Stripe integration and re-integrating while fully waiting for it to complete. Once again, any changes during the syncing process may case sync errors and cause a discrepancy in how Klaviyo is connected to Stripe. I would recommend taking the following steps to remove and fully re-integrate Stripe:

  1. Completely remove (not Disable) the Stripe integration in Klaviyo:
  2. Log out of Klaviyo
  3. Fully clear the cache on your browser and fully close out of all browsers
  4. Log back into Klaviyo via an incognito window
  5. Re-add Stripe from the All Integrations tab


After taking those steps, I would also recommend attempting to trigger these Stripe events and reviewing them within the Analytics > Metrics tab. Also keeping in mind that Stripe has a periodic sync time every hour. This means that although data is typically relayed to Klaviyo almost instantly, if there were any delays from Stripe’s end in sending Klaviyo this data that it may take upwards of an hour to register in Klaviyo. 

I hope this helps!