Payments
Payment Issues and Refunds
Last updated 8 July 2026
Payment Issues and Refunds
Payment issues let you review and record money movement after a payment has gone wrong or needs adjustment. Use them for refunds, manual reversals, forfeits, store credit, and Stripe disputes that need an auditable trail.
TL;DR
- The web Payments page is Owner-only and supports payment issues from Paid order, Booking deposit, and Customer/manual sources.
- Stripe refund execution and Stripe dispute reconciliation are web-first.
- Mobile can create booking-deposit issue requests and approve record-only outcomes where eligible.
- If automatic refund processing fails, the issue moves to manual reconciliation so the operator can review Stripe and ledger state.
What is a payment issue?
A payment issue is a venue-scoped record that stores the source payment, requested amount, reason, allocation outcome, status, and timeline. The web Payment issues panel describes the surface as "Refunds, manual reversals, forfeits, store credit, and Stripe disputes."
Each issue has:
| Field | What it records |
|---|---|
| Status | Draft, needs approval, approved, processing, manual reconciliation needed, recorded, credited, forfeited, disputed, won, lost, closed, or cancelled |
| Type | Refund, deposit refund, manual reversal, dispute, or void review |
| Amount | The requested amount in the venue currency |
| Reason | Client request, service issue, booking cancelled, duplicate charge, wrong amount, payment error, fraud or dispute, goodwill, policy forfeit, staff error, or other |
| Allocations | The outcome, tender, status, and amount for each money movement |
| Timeline | Created, approved, refund, credit, forfeit, dispute, reconciliation, and closed events |
How to create a payment issue on web
Owners create a payment issue from the Payment issues panel on the web Payments page.
- Go to Payments.
- Find Payment issues.
- Click New issue.
- Choose a Source: Paid order, Booking deposit, or Customer/manual.
- Enter the source ID: Order ID, Booking ID, or Customer ID.
- For a paid order, click Load tenders and select the Original tender.
- For a booking deposit, click Load deposit and review the Booking deposit amount remaining.
- Choose a Reason.
- Choose an Outcome.
- Enter the Amount.
- Add an External reference when recording an external card refund.
- Add a Note if the approval trail needs more context.
- Click Create issue.
The amount must be greater than zero. For paid orders and booking deposits, the amount cannot exceed the remaining refundable amount for the selected tender or deposit.
Outcomes
Payment issue outcomes define what OpenChair does when the issue is approved.
| Outcome | What happens |
|---|---|
| Refund through Stripe | OpenChair creates a Stripe refund against the original Stripe PaymentIntent when the venue has a connected Stripe account and the source payment can be refunded by OpenChair. |
| External card refund recorded | OpenChair records that the refund was handled by another card provider. It does not move money through Stripe. |
| Cash returned | OpenChair records a cash refund in the ledger. |
| Store credit issued | OpenChair creates store credit for the linked customer. Store credit needs a customer email, phone, or customer record. |
| Forfeit/write-off | OpenChair records that the amount was kept or written off without a refund. |
Note
Gift card refund recorded, Order void, Dispute lost, Dispute won, and No money movement exist as payment issue outcomes, but the web create dialog only offers Stripe refund, external card refund, cash returned, store credit, and forfeit/write-off.
Approving and executing
Approving a payment issue runs the selected allocation outcome and updates the timeline.
On web, Owners open the issue and click Approve and execute. The detail view shows Status, Amount, Reason, Allocations, and Timeline before approval.
On mobile, open the issue from Activity or the payment issue screen. If the issue is eligible, tap Approve and record. Mobile only approves record-only outcomes: Cash returned, External card refund recorded, Store credit issued, and Forfeit/write-off.
If automatic processing fails, OpenChair marks the issue as manual reconciliation needed and sends a Refund needs reconciliation Activity alert. Review the original provider, Stripe, and ledger rows before retrying or closing the case.
Stripe disputes
Stripe disputes are recorded as payment issues when Stripe sends dispute webhooks for a connected venue account. OpenChair stores the Stripe dispute ID, charge ID, PaymentIntent ID, status, reason, amount, and evidence deadline when those fields are available.
Dispute alerts are operational review records. OpenChair sends Dispute opened and dispute outcome alerts, links them to the payment issue, and updates the issue when Stripe reports won or lost. OpenChair does not submit chargeback evidence automatically.
Accounting exports
Payment issue outcomes are included in the accounting export. The export contains refunds_voids_forfeits.csv, and Stripe settlement evidence can include charges, refunds, adjustments, disputes, fees, and payout movement where Stripe exposes that data.
Use the accounting export when your accountant needs a period-level record of refunds, voids, forfeits, dispute movement, and payment clearing.
Who can use this
| Role | Access |
|---|---|
| Owner | Can create, view, approve, and execute payment issues on the web Payments page and can approve eligible record-only outcomes on mobile. |
| Manager | Cannot open the owner-only web Payments page. Can view mobile issue detail and approve eligible record-only outcomes on mobile. |
| Team | Cannot approve or execute payment issues. May only see payment issue detail where a venue flow exposes it. |
Platform differences
| Feature | Web | Mobile |
|---|---|---|
| View issue list | Owner-only Payment issues panel on Payments | Issue detail opens from Activity or payment issue routes |
| Create from paid order | Yes | No |
| Create from booking deposit | Yes | Yes |
| Create customer/manual reversal | Yes | No |
| Execute Stripe refund | Yes | No |
| Record cash or external refund | Yes | Yes, where eligible |
| Issue store credit | Yes | Yes, where eligible |
| Inspect Stripe disputes | Yes | Review-only |
Common mistakes
Payment issues fail most often when the source or outcome does not match the payment that was originally taken.
| Mistake | What to do instead |
|---|---|
| Trying to refund more than the remaining tender amount | Load the order tenders and use the amount shown as remaining for that original tender. |
| Choosing Refund through Stripe for a payment OpenChair cannot refund | Use External card refund recorded if the refund is handled outside OpenChair. |
| Creating store credit without a linked customer | Link the issue to a booking, order, or customer record with an email, phone, or customer ID. |
| Trying to handle a Stripe dispute on mobile | Open the payment issue on web and review the related Stripe dispute details there. |
Troubleshooting
| Issue | Solution |
|---|---|
| Create issue is disabled | Enter an amount greater than zero and load the required paid order tender or booking deposit first. |
| Stripe refund cannot be selected or submitted | Confirm the original payment was taken through OpenChair Stripe payments and the venue still has an active connected Stripe account. |
| Issue says manual reconciliation is needed | Review Stripe and the ledger before retrying. The automatic refund path failed and OpenChair has preserved the issue for operator review. |
| Mobile shows the issue as review-only | Use web for Stripe refunds and dispute reconciliation. Mobile only records eligible non-Stripe outcomes. |
FAQ
What is a payment issue?
A payment issue is a review record for a refund, reversal, forfeit, store credit outcome, or Stripe dispute. It keeps the reason, amount, allocation outcome, ledger movement, and timeline together.
Who can approve a payment issue?
Owners can approve and execute payment issues on web. Owners and Managers can approve eligible record-only outcomes on mobile.
Can I process Stripe refunds on mobile?
No. Mobile can create booking-deposit issue requests and approve record-only outcomes where eligible, but Stripe refunds and dispute reconciliation must be handled on web.
What happens when a Stripe dispute opens?
OpenChair records the dispute as a payment issue, sends owner and manager Activity alerts, and stores the Stripe dispute status, reason, amount, and evidence deadline when Stripe provides them. Use Stripe Dashboard for dispute evidence submission.