Skip to main content

Understanding Failed Stripe Payments

When a customer attempts to pay through Stripe, it’s important to understand the difference between:

  • A Stripe invoice being created

  • A Stripe payment being successfully completed

These are not the same thing.

A Stripe invoice can exist even if the payment fails.

This article explains how Stripe payments behave inside Hoops and how to correctly identify whether a customer has actually completed payment.


How the Stripe Payment Flow Works

When a customer:

  1. Opens the SalesDoc

  2. Clicks Accept & Pay

  3. Enters their card details

  4. Clicks Process Payment

Hoops sends the payment request to Stripe.

At this point:

  • Stripe immediately creates an invoice for the payment attempt

  • Hoops records the Stripe invoice reference

This happens before payment is fully confirmed.


What Happens If the Payment Fails?

If the card:

  • Has insufficient funds

  • Is declined

  • Fails fraud checks

  • Or cannot be processed

Stripe will display an error message to the customer.

For example:

  • “Insufficient funds”

  • “Please try another payment method”

The customer can then:

  • Retry payment

  • Use a different card

  • Transfer funds and try again later

Snapshot


Important: The Stripe Invoice Still Exists

Even when payment fails:

  • The Stripe invoice is still created

  • A View Invoice link still appears inside Hoops

This can sometimes confuse users because it may look like payment succeeded simply because a Stripe invoice exists.

A Stripe invoice existing does NOT mean payment was successful.


How to Tell If Payment Was Successful

There are three ways to confirm whether the payment actually succeeded.

1. Did the SalesDoc Status Change to Accepted?

This is the most important indicator.

If payment succeeds:

  • The SalesDoc status automatically updates to Accepted

If the status did NOT change:

  • The payment was not successfully completed

Even if:

  • A Stripe invoice exists

  • A View Invoice link appears

the customer may still not have paid successfully.

Snapshot

2. View the Invoice in Stripe

From the SalesBoard, click View Invoice.

This opens the invoice directly inside your Stripe dashboard.

Inside Stripe, check the invoice status:

  • Paid → payment succeeded

  • Open, Failed, or Unpaid → payment did not complete successfully

Snapshot

3. Check the Activity Feed

The Activity Feed inside the SalesDoc provides the clearest confirmation of a successful payment.

If payment succeeded, you’ll see activity similar to:

This confirms:

  • The customer completed payment successfully

  • The SalesDoc status updated correctly

  • Stripe processed the payment

Successful Payment:

Screenshot 2026-05-24 at 4.24.49 PM.png

Unsuccessful Payment:

Screenshot 2026-05-24 at 4.25.12 PM.png

Noting that the Made an online payment activity is missing.


Important

If this activity does NOT appear:

  • The Stripe invoice may still exist

  • But the payment was not successfully completed

In this situation:

  • No money has been received

  • The SalesDoc status will remain unchanged

  • The customer may still need to retry payment


Comparing the Two Scenarios

Failed Payment Example

Inside Hoops:

  • Stripe invoice exists

  • View Invoice link exists

  • SalesDoc status is NOT Accepted

  • No successful payment activity appears

Inside Stripe:

  • Invoice exists

  • Invoice status shows Failed, Open, or Unpaid

Result:

  • No money was received


Successful Payment Example

Inside Hoops:

  • Stripe invoice exists

  • SalesDoc status updates to Accepted

  • Successful payment activity appears

Inside Stripe:

  • Invoice status shows Paid

Result:

  • Payment was successfully collected


Summary

The key thing to remember is:

A Stripe invoice being created does NOT mean payment was successful.

A successful payment is confirmed when:

  • The SalesDoc status changes to Accepted

  • The Stripe invoice shows Paid

  • The Activity Feed records a successful online payment

If those things have not occurred, then the customer has not successfully completed payment.

Did this answer your question?