Digital Agency Tools Docs

Payments are not showing as paid

The money is in Stripe, but the booking or invoice still says unpaid. That almost always means Stripe's message about the payment did not reach the platform.

How payments are confirmed

When a customer pays by card, Stripe takes the money, then sends the platform a short message, a webhook, saying so. That message is what marks the booking or invoice as paid.

If the webhook is missing, switched off, or pointing at the wrong address, Stripe still takes the payment, but nothing here changes.

The chain

customer pays
  → Stripe takes the money
  → Stripe calls the webhook
  → booking / invoice marked paid

Likely causes

  • No webhook was created, or it was deleted in Stripe.
  • Stripe switched the webhook off after it failed too often.
  • The webhook points at an old or different web address.
  • Your keys were changed in Stripe and the saved secret key no longer works.
  • The payment was a bank transfer, which is never confirmed by Stripe.
The Webhook status section on Settings → Payments, with status, last verified time, endpoint, events, and the Verify connection and Recreate webhook buttons
Settings → Payments → Webhook status.

Checks, in order

  1. Open Settings → Payments and look at Webhook status. If it says No webhook configured, go to step 5.
  2. Check the Status. It should be Active. Pending, Error or Disabled all need fixing. If there is an error message, read it.
  3. Check the Endpoint address. It should be the address you use for the panel, ending in /api/stripe.
  4. Click Verify connection. You should see Webhook connection verified and the status turn Active. If it fails, the message says why.
  5. Still wrong? Click Recreate webhook and confirm. This replaces the webhook in your Stripe account with a fresh one.
  6. In your Stripe Dashboard, open Developers → Webhooks, find the endpoint and resend any failed events from its delivery log.

Recreate from the right address

A recreated webhook points at the address you are using the panel on at that moment. Sign in on your normal panel address before you click Recreate webhook, not a preview or staging link.

If Verify connection says Stripe is not configured, your keys are missing. Click Edit API keys (or Manual API key setup) and paste them again. Saving keys also recreates the webhook.

Status meanings

Active     working, verified
Pending    created, not yet verified
Error      last check failed
Disabled   switched off

Test or live?

Payments taken with test keys appear only in Stripe's test mode. If you are looking at live mode in Stripe and cannot see the payment, switch the Dashboard to test mode. Do not mix a test publishable key with a live secret key.

Bank transfers are not confirmed automatically. When a client reports a transfer, you confirm it when the money arrives. See Bank transfer claims and Record a payment.

Still stuck?

Can't find what you're looking for? Send us a message and we'll reply by email.