ARTICLE CONTENT:
Understanding Order Statuses in AccessAlly
AccessAlly orders can have different statuses that indicate where the purchase is in the payment process. Understanding these statuses is critical for troubleshooting payment issues and ensuring your customers are charged correctly.
Order Status Definitions
Started
What it means: Customer initiated the purchase process but payment has not completed yet.
Common reasons:
- Customer filled out the form but didn’t submit payment
- Payment is being processed by Stripe/PayPal (usually completes within seconds)
- Customer encountered an error during payment
- Customer abandoned checkout before completing
- Payment declined by card issuer
Expected behavior:
- Access should NOT be granted with “Started” status
- Purchase tags should NOT be applied
- Order should transition to “Success” or “Failed” within minutes
Troubleshooting: If orders remain in “Started” status for more than 24 hours, check your payment gateway connection and webhook configuration.
Success
What it means: Payment has been completed and verified by your payment processor.
Expected behavior:
- Payment confirmed in Stripe/PayPal dashboard
- Valid transaction ID (not “null-transaction”)
- Customer charged the full amount shown in order
- Purchase tags automatically applied
- Access to paid content granted
How to verify a “Success” order:
- Note the Transaction ID from the order
- Log into your Stripe/PayPal dashboard
- Search for the transaction ID or customer email
- Confirm payment amount matches the order total
- If transaction ID shows “null-transaction” or you can’t find the payment, investigate immediately
Failed
What it means: Payment was attempted but rejected by the payment processor.
Common reasons:
- Insufficient funds in customer’s account
- Card declined by issuing bank
- Incorrect card details entered
- Card expired
- Billing address mismatch
- Fraud detection triggered
Expected behavior:
- No payment charged
- No access granted
- No purchase tags applied
- Customer can retry purchase with different payment method
Troubleshooting: Failed orders are normal – customers often retry with a different card. Set up automated emails to help customers complete their purchase.
Pending
What it means: Payment is awaiting confirmation from the payment processor.
Common with:
- Bank transfers
- ACH payments
- Some international payment methods
- Manual review required by fraud detection
Expected behavior:
- Access typically NOT granted until payment confirms
- May take 1-5 business days to complete
- Should transition to “Success” when payment clears
Cancelled
What it means: Order was cancelled either by the customer or by an administrator.
Common reasons:
- Customer requested cancellation
- Administrator manually cancelled order
- Subscription cancelled before first payment
- Payment plan cancelled mid-term
Expected behavior:
- No payment charged (if cancelled before payment)
- Access revoked if previously granted
- Purchase tags removed
Refunded
What it means: Payment was initially successful but has been refunded.
Common reasons:
- Customer requested refund
- Chargeback issued
- Administrator manually refunded
- Product satisfaction guarantee invoked
Expected behavior:
- Payment returned to customer
- Access should be revoked (depending on settings)
- Purchase tags may be removed (depending on configuration)
- Refund visible in Stripe/PayPal dashboard
Order Status Transitions
Understanding how orders move between statuses:
Normal Successful Purchase Flow
Started → Success ↓ Customer fills form → Payment processes → Tags applied → Access granted
Timeline: Usually completes in 5-30 seconds
Failed Purchase Flow
Started → Failed ↓ Customer fills form → Payment declined → No access → Customer can retry
Timeline: Usually fails within 5-10 seconds
Refund Flow
Success → Refunded ↓ Payment completed → Refund issued → Access revoked (optional)
Timeline: Immediate status change, 5-10 days for funds to return
Pending Payment Flow
Started → Pending → Success ↓ Payment initiated → Awaiting clearance → Payment confirms → Access granted
Timeline: 1-5 business days depending on payment method
What Triggers Status Changes?
Understanding the mechanics:
Started Status Triggered By:
- Customer submits order form
- AccessAlly creates order record
- Payment processor begins processing
Success Status Triggered By:
- Stripe/PayPal sends successful payment webhook
- AccessAlly receives webhook confirmation
- Transaction ID saved to order record
- Purchase tags applied via CRM integration
Failed Status Triggered By:
- Stripe/PayPal sends failed payment webhook
- Card declined message received
- Error code returned from payment processor
Refunded Status Triggered By:
- Administrator issues refund in Stripe/PayPal
- Refund webhook sent to AccessAlly
- Order status updated automatically
Troubleshooting by Status
Issue: Orders Stuck in “Started” Status
Possible causes:
- Webhook not configured
- Check: Stripe Dashboard → Developers → Webhooks
- Fix: Ensure webhook endpoint is active
- Verify: Test webhook delivery
- Payment processor disconnected
- Check: AccessAlly → Settings → Payment Settings
- Fix: Reconnect Stripe/PayPal account
- Test: Submit test purchase
- Customer abandoned checkout
- Normal: Some “Started” orders never complete
- Expected: 10-30% abandonment rate is typical
- Action: Set up abandoned cart recovery emails
Issue: “Success” Status But Customer Wasn’t Charged
🔴 This is a critical security issue – see our Emergency Response Guide immediately.
Quick verification steps:
- Check order Transaction ID – if it shows “null-transaction”, no payment occurred
- Search for payment in Stripe/PayPal using customer email
- If payment doesn’t exist, revoke access and investigate root cause
- Audit all recent orders for similar issues
Issue: “Failed” Status But Customer Was Charged
Possible causes:
- Webhook timing issue
- Payment succeeded but webhook arrived late
- Check Stripe for actual payment status
- Manually update order status if payment confirmed
- Double charge scenario
- Customer submitted form twice
- First charge failed, second succeeded
- Check for two orders from same customer
- Test mode confusion
- Test charge in Stripe, but live mode expected in AccessAlly
- Verify API keys match environment (test vs live)
Issue: “Refunded” Status But Access Still Granted
Configuration issue:
- Check: AccessAlly → Settings → Access Control
- Look for: “Revoke access on refund” setting
- Enable: Auto-remove tags on refund if desired
- Manual fix: Remove purchase tags from refunded customer
How to Clean Up Abandoned “Started” Orders
Old “Started” orders clutter your database. Here’s how to manage them:
- Identify abandoned orders
- Filter for “Started” status
- Look for orders older than 7 days
- Cross-check: No matching “Success” order for same customer
- Decide on cleanup approach
- Option A: Leave them (no harm, just clutters list)
- Option B: Mark as “Failed” for record-keeping
- Option C: Delete entirely (not recommended – loses audit trail)
- Set up automated cleanup
- Some e-commerce plugins auto-expire “Started” orders after X days
- Check if AccessAlly has this feature in settings
- Consider monthly manual cleanup if not
Order Status Best Practices
- ✅ Monitor order statuses weekly
- Check for unusual patterns
- Look for stuck “Started” orders
- Verify “Success” orders have matching payments
- ✅ Set up status-based automations
- Send “Success” receipt emails
- Send “Failed” retry prompts
- Send “Started” abandoned cart reminders
- ✅ Document your process
- When do you manually change statuses?
- How do you handle refund requests?
- What’s your policy for failed payments?
- ✅ Test status transitions
- Submit test purchase → verify it goes to “Success”
- Test failed payment → verify it goes to “Failed”
- Test refund → verify status and access changes
- ✅ Audit monthly for discrepancies
- Export orders and payment processor reports
- Compare totals
- Investigate any mismatches
Common Questions
Can I manually change an order status?
Yes, but be cautious:
- Changing “Started” to “Success” will grant access but won’t charge customer
- Changing “Failed” to “Success” won’t charge customer retroactively
- Always verify payment in Stripe/PayPal before changing to “Success”
- Document why you manually changed status for audit purposes
How long does it take for status to update?
Typically:
- Started → Success: 5-30 seconds (via webhook)
- Started → Failed: 5-10 seconds (immediate)
- Success → Refunded: Instant (when refund issued)
- Pending → Success: 1-5 business days (depending on payment method)
What if webhook fails – does status update?
No – if webhooks fail:
- Order stays in “Started” status indefinitely
- Payment may process but access won’t be granted
- Customer will contact support confused
- You’ll need to manually verify payment and grant access
- Solution: Monitor webhook health in Stripe dashboard
Can an order have multiple statuses?
No – each order has one current status, but you can see status history in some setups:
- Started (initial)
- Success (payment completed)
- Refunded (later refunded)
The current status would be “Refunded” but the history shows it was previously “Success”.
Related Articles
- Emergency Response: Customer Got Free Access
- Test Your Setup Before Going Live
- Stripe Integration Setup
- Managing Failed Payments
💡 Pro Tip: The best way to understand order statuses is to test them yourself. Submit a test purchase, test a failed payment (with an expired test card), and test a refund. Watching the status transitions in real-time will help you understand how the system works.