Help
Selling

Invoice sent but never marked paid

Troubleshoot the case where you've sent an invoice to a buyer but the sell order still shows Payment Status "Invoice Sent" instead of "Confirmed".

Symptom

A sell order sits in Payment Status: Invoice Sent for more than a few hours after the buyer says they've paid. The expected next state is Confirmed, which unlocks the shipping step.

Cause

Worldwatch flips payment status to Confirmed when the payment provider (Stripe, or the bank for manual transfers) webhooks a successful-charge event. The status sits on Invoice Sent in three cases:

  1. Manual bank transfer, and the buyer hasn't actually paid yet. Most common. The invoice email was opened but the transfer hasn't landed in the linked account.
  2. Stripe payment succeeded but the webhook didn't reach Worldwatch. Rare — usually a transient network issue or a mis-configured webhook signature.
  3. Buyer paid via a method Worldwatch doesn't auto-reconcile (e.g. PayPal outside the Stripe flow, cash at pickup).

Fix

Run these checks in order.

  1. Check the buyer actually paid.

    • For manual transfers: open your bank or Stripe dashboard and look for the transfer with the invoice reference in the memo. No transfer = they haven't paid. Follow up with them directly.
    • For Stripe: go to your Stripe dashboard → Payments, filter by the sell order's invoice number. If you see a successful charge, move to step 2. If not, the buyer hasn't paid.
  2. If Stripe shows paid but Worldwatch doesn't, re-trigger the reconciliation. In the sell order detail, click Actions → Reconcile payment. This re-fetches the Stripe status on-demand and flips the payment state if a matching successful charge exists.

  3. If reconciliation didn't move it, manually mark it paid. Click Mark as paid in the sell order actions. Include the Stripe charge ID or bank reference in the note field — this is what the audit trail records for later reconciliation.

  4. If none of the above apply (buyer paid via PayPal, cash, or another out-of-band method): mark the order manually paid per step 3, but add a clear note. These won't auto-reconcile, so the note is your only audit trail.

If it doesn't work

If the payment status won't update even after Mark as paid — i.e. the action appears to succeed but the status reverts on refresh — capture:

  • Sell order ID (the URL contains it).
  • Stripe charge ID (if applicable).
  • Timestamp of when you clicked "Mark as paid".
  • A screen recording of the reversion.

Open a support ticket with those four items. The most common cause at this point is a concurrent webhook rewriting the state — the engineering team can trace it in under an hour given the timestamp.

On this page