1. Home
  2. Emergency Response: Customer Got Free Access

Emergency Response: Customer Got Free Access

Emergency Response: Customer Got Free Access

🔴 CRITICAL: If you’ve discovered that a customer gained access to your paid content without payment, follow this emergency response guide immediately. This represents a revenue security issue that needs urgent attention.

This guide walks you through the exact steps to take when you discover a customer has received full access to paid content despite a $0 or failed payment.

⏱️ Immediate Actions (First 30 Minutes)

Your first priority is to prevent further revenue loss while you investigate.

Step 1: Verify the Issue

  1. Check AccessAlly Orders
    • Go to AccessAlly → Orders in WordPress admin
    • Find the customer’s order
    • Note the Order Status and Total Amount
    • Note the Transaction ID
  2. Check Your Payment Processor
    • Log into Stripe/PayPal dashboard
    • Search for the customer’s email or transaction ID
    • Verify whether payment was actually processed
    • Note: If transaction ID shows “null-transaction”, no payment was processed
  3. Confirm They Have Access
    • Go to Users → All Users
    • Search for customer email
    • Check if purchase tags are applied
    • Verify if they can access protected content

Step 2: Document Everything

Before making any changes, create a record:

  • Screenshot the AccessAlly order showing $0 amount
  • Screenshot the order status and transaction ID
  • Screenshot their user tags
  • Screenshot Stripe/PayPal confirming no payment (or showing failed payment)
  • Note the date/time they gained access
  • Note the date/time you discovered the issue

💡 Why document? You may need this for accounting, customer communication, or support investigation.

Step 3: Temporarily Revoke Access

Remove access while you investigate – you can restore it later if needed.

  1. Remove Purchase Tags
    • Go to Users → All Users
    • Click “Edit” on the customer’s user account
    • Scroll to the tags section (CRM integration area)
    • Remove the product purchase tag(s)
    • Click “Update User”
  2. Verify Access is Removed
    • Log out of WordPress admin
    • Use an incognito browser window
    • Log in as the customer (or test with their email)
    • Confirm they can no longer access paid content

Alternative: Instead of removing tags, you can mark the order as “Failed” in AccessAlly, which should automatically revoke access depending on your settings.

Step 4: Check for Additional Affected Customers

This might not be the only one. Audit immediately:

  1. Filter for $0 Purchases
    • Go to AccessAlly → Orders
    • Look for orders with $0.00 total amount
    • Look for orders with status “Success” but low/no payment
    • Look for transaction IDs showing “null-transaction”
  2. Export Order Data
    • Export all orders to CSV for easier filtering
    • Sort by “Total” column to find $0 purchases
    • Sort by “Transaction ID” to find “null-transaction” entries
  3. Cross-Reference with Payment Processor
    • For each $0 “Success” order, check if Stripe/PayPal has a matching payment
    • If no payment exists, that’s another affected customer

🔍 Investigation (Next 2 Hours)

Now that immediate damage is contained, identify the root cause.

Possible Causes Checklist

Check each of these systematically:

1. Stripe Test Mode Enabled
  • Check: AccessAlly → Settings → Payment Settings
  • Look for: “Test Mode” or “Sandbox Mode” enabled
  • Fix: Switch to Live Mode with live API keys
  • Prevention: Disable test mode before going live
2. Webhook Processing Failures
  • Check: Stripe Dashboard → Developers → Webhooks
  • Look for: Failed webhook deliveries around the time of $0 purchase
  • Fix: Ensure webhook endpoint is active and receiving events
  • Prevention: Monitor webhook health regularly
3. Coupon Misconfiguration
  • Check: AccessAlly → Coupons
  • Look for: 100% discount coupons that bypass payment completely
  • Fix: Ensure coupons still require payment processing (even if $0)
  • Prevention: Test coupons thoroughly before making public
4. Race Condition from Double Submission
  • Check: Look for two orders from same customer at nearly the same time
  • Look for: One order “Started”, another order “Success” minutes later
  • Fix: Add form submission protection to prevent double-clicks
  • Prevention: Use “disable submit button after click” setting
5. Manual Admin Override
  • Check: Did you or a team member manually grant access?
  • Look for: WordPress user log showing manual tag additions
  • Fix: Document when manual access is granted and why
  • Prevention: Create a process for manual access grants
6. Custom Code or Plugin Conflicts
  • Check: Have you added custom code that modifies purchase flow?
  • Look for: Recent plugin installations or theme changes
  • Fix: Temporarily disable custom code to test
  • Prevention: Test all customizations on staging site first

💬 Customer Communication

How to handle this situation professionally:

Scenario A: Customer Paid (Just Not the Full Amount)

If customer paid something but got more access than they should:

Email Template:

Subject: Action Required: Payment Discrepancy on Your [Product Name] Purchase

Hi [Customer Name],

We’ve discovered a technical issue with your recent purchase of [Product Name]. Our records show you gained access on [Date], but the payment of $[Amount] didn’t process correctly.

Your current access has been temporarily paused while we resolve this. To restore your access, please complete payment using one of these options:

  1. [Payment Option 1 – e.g., Pay remaining balance]
  2. [Payment Option 2 – e.g., Contact us for payment plan]

We apologize for any inconvenience. This was a technical error on our end, and we’re working to prevent it from happening again.

Please reach out if you have any questions.

Best regards,
[Your Name]

Scenario B: Customer Paid $0 (Complete Free Access)

If customer paid nothing and got full access:

Email Template:

Subject: Technical Error: [Product Name] Access

Hi [Customer Name],

We’ve discovered a system error that granted you access to [Product Name] on [Date] without processing payment.

While we’re grateful you’ve been enjoying the content, we need to resolve this billing error. To continue your access, please complete payment of $[Amount] by [Date].

Payment options:
[Link to payment page]

We understand this is an unusual situation. If you’d like to discuss payment arrangements or have questions, please contact us directly at [Email].

Thank you for your understanding.

Best regards,
[Your Name]

If Customer Refuses to Pay

  • Option 1: Revoke access and document the loss
  • Option 2: Offer a payment plan to recover partial revenue
  • Option 3: Consult with legal counsel for larger amounts
  • Don’t: Be aggressive or accusatory – this was your system’s error, not theirs

🛡️ Prevention Checklist

After fixing the immediate issue, implement these safeguards:

  1. Verify Stripe is in Live Mode
    • Check AccessAlly payment settings
    • Ensure live API keys are being used
    • Disable any test mode settings
  2. Test Purchase Flow with Real Payment
    • Make a real purchase with a real credit card
    • Use a small amount ($1-5) for testing
    • Verify payment appears in Stripe before access is granted
    • Confirm transaction ID is valid (not “null-transaction”)
  3. Verify Webhooks are Active
    • Stripe Dashboard → Developers → Webhooks
    • Confirm webhook endpoint is receiving events
    • Check for any failed deliveries
    • Test webhook with Stripe’s testing tool
  4. Configure Purchase Tag Timing
    • Ensure purchase tags only apply AFTER payment confirmation
    • Don’t grant access on “Started” status – only “Success”
    • Verify webhook events trigger tag application correctly
  5. Add Form Submission Protection
    • Enable “disable submit button after click”
    • Add loading indicator during form processing
    • Prevent double-submissions that can cause race conditions
  6. Set Up Monthly Audits
    • Create calendar reminder to audit $0 purchases monthly
    • Check for any orders with “null-transaction”
    • Cross-reference AccessAlly orders with Stripe payments

📊 Monthly Security Audit Procedure

Perform this audit monthly to catch issues early:

  1. Export AccessAlly Orders
    • Go to AccessAlly → Orders
    • Export to CSV
    • Open in Excel/Google Sheets
  2. Filter for Red Flags
    • Sort by “Total” column – look for $0.00 with status “Success”
    • Filter for transaction IDs containing “null”
    • Look for orders with “Started” status older than 24 hours
  3. Cross-Reference with Stripe
    • Export Stripe payments for the same date range
    • Compare customer emails
    • Identify any AccessAlly “Success” orders without matching Stripe payments
  4. Investigate Discrepancies
    • For each mismatch, determine root cause
    • Fix the underlying issue
    • Contact customer if payment is needed
  5. Document Findings
    • Keep a log of audit results
    • Track trends (are $0 purchases increasing?)
    • Note any system changes that correlate with issues

🚨 Red Flags That Indicate a Problem

Watch for these warning signs:

  • ❌ Order status shows “Success” with $0.00 total
  • ❌ Transaction ID is “null-transaction” or blank
  • ❌ Order marked “Success” but no matching payment in Stripe
  • ❌ Customer has access tags but no payment record
  • ❌ Multiple orders from same customer within minutes (race condition)
  • ❌ Orders stuck in “Started” status for days/weeks
  • ❌ Revenue reports don’t match order totals

📞 When to Get Professional Help

Contact a WordPress developer or AccessAlly specialist if:

  • You’ve discovered multiple affected customers (10+)
  • You can’t identify the root cause after checking all items above
  • The revenue loss is significant (>$5,000)
  • You’ve made custom code changes to the purchase flow
  • Webhook issues persist despite troubleshooting
  • You need help with customer communication strategy

Support Policy: AccessAlly does not provide support for revenue reconciliation, customer payment disputes, or investigation of payment processing issues. These are considered business operations outside the scope of plugin support.

📝 Lessons Learned Checklist

After resolving the issue, document what happened:

  1. What was the root cause?
  2. How many customers were affected?
  3. What was the total revenue impact?
  4. How did we discover the issue?
  5. What systemic changes did we make to prevent recurrence?
  6. What early warning signs should we watch for?

💡 Pro Tip: Most payment security issues can be prevented by thorough testing before launch and regular monthly audits. Set up a recurring calendar reminder to audit your orders – it takes 15 minutes and could save thousands in revenue.

Updated on January 14, 2026
Was this article helpful?

NO QUESTION GOES UNANSWERED

Live Weekly Q&A

Join us for live Q&A. Learn the basics, discover what's possible, and connect with AccessAlly users.

Need Support?

Have questions? Get in touch. Our inbox support hours are 9am-5pm EST, Monday - Friday.

Laptop with the AccessAlly demo site

AccessAlly is the most flexible way to sell and elegantly deliver digital offerings. All in one place.

WATCH THE DEMO

You'll get follow-up emails about AccessAlly and new features. Opt out anytime. Full privacy policy here.