Laravel use cases

Track Failed Payments in Laravel

Never miss a failed charge again

View this guide for other frameworks

The problem

Failed payments are silent killers of SaaS revenue. A credit card expires. A bank declines a charge. A subscription renewal fails. And unless you have built elaborate alerting into your Laravel app, you might not know until the customer churns.

The typical flow is terrible: payment fails, retry fails a few days later, customer gets a dunning email they ignore, subscription cancels, customer leaves. By the time you notice, they have already found an alternative.

Most failed payments are recoverable. The customer wants to stay. They just need to update their payment method. But you need to know about the failure quickly to have a chance at saving them.

The solution

Quicklog alerts you the moment a payment fails. With a simple HTTP call and a tracking call in your controllers, you see which customer, the failure reason, and how much revenue is at risk. You can reach out immediately while the customer still remembers why they signed up.

Set up a dedicated channel for payment failures. Get notified via Slack, Discord, or email. Assign someone to follow up within hours, not days.

Track the pattern of failures too. If you see a spike in declines from a particular card type or region, you can investigate before it becomes a bigger problem in your Laravel app.

Why track this?

  • Instant alerts on payment failures
  • See the failure reason and amount at risk
  • Reduce involuntary churn significantly

Quick setup

Add tracking to your Laravel app:

PHP
<?php
// Using Quicklog REST API

use Illuminate\Support\Facades\Http;

// Track Failed Payments
Http::withToken(env('QUICKLOG_API_KEY'))
    ->post('https://api.quicklog.io/v1/events', [
        'channel' => 'payments',
        'event' => 'payment.failed',
        'description' => 'Describe what happened',
        'user' => [
            'id' => $user->id,
            'email' => $user->email,
            'name' => $user->name,
        ],
        'metadata' => [
            // Add relevant context here
        ],
    ]);

Laravel tips

  • Listen to Cashier PaymentFailed and SubscriptionPaymentFailed events
  • Use Laravel Notifications to alert your team alongside Quicklog tracking
  • Include the Cashier subscription and customer details in failure metadata

Ready to track failed payments?

Set up in under 5 minutes. See events in your dashboard instantly.