Refund Policy

Product: SanadiqCloud
Effective date: 14 August 2026
Status: Pre-production draft. This Policy matches billing code, not a hoped-for refund desk.

SanadiqCloud subscription billing is implemented in billing-service with Stripe Hosted Checkout. There is no customer-facing refund API and no tenant “request a refund” screen.

Contact: support@sanadiqcloud.com.


1. What you purchase

Organizations pay for months, seats (employees), and storage GB at the published plan rates. Card data is entered on Stripe, not in SanadiqCloud.

A welcome subscription (typically 1 month, 1 seat, $0, no auto-renew) may be granted once per account when the first organization is created. It is not a Stripe trial and is not refundable because it is not charged.

2. Default rule: paid amounts are not refunded in-app

Unless Section 4 applies, SanadiqCloud does not automatically refund:

  • Unused time after cancel or expiration
  • Seat or storage decreases (scheduled for period end, $0, no credit; current paid limits stay until then)
  • Organization deletion (Stripe subscription is cancelled immediately; paid invoices are not refunded)
  • Plan or quantity changes that you later regret

Cancel: there is no merchant cancel page. Ask support. Cancel APIs may end the Stripe subscription immediately or at period end. Neither path refunds already-paid invoices.

3. Failed payments and past due

If Checkout is not completed, the subscription is not activated. Abandoned Checkout does not create a charge to refund.

If a renewal invoice fails, Billing can mark the local invoice failed and the subscription past_due. Entitlement can remain until expire/cancel. There is no coded dunning length. “Update your payment method” copy may appear even though the app has no saved-card vault — payment is via Checkout again.

4. Automatic refunds that the system can execute

The only automated Stripe refund in the product is duplicate organization-checkout recovery: if two paid Checkout sessions would create two organizations for the same intent, the extra (orphan) Stripe subscription is cancelled and the duplicate charge is refunded with reason duplicate. The surviving organization and its payment are not refunded.

Invoice status refunded exists in the UI filter; no use case currently marks invoices refunded except this operational recovery path at Stripe.

5. Taxes

Generated invoices currently use zero tax unless patched on an unpaid invoice. Refunds of tax are not a separate automated flow.

6. Disputes and unauthorized charges

If you do not recognize a charge:

  1. Check Billing → subscription invoices in the app.
  2. Email support@sanadiqcloud.com with the organization name, approximate time, and amount.
  3. You may also contact your card issuer. Chargebacks are handled through Stripe. We may suspend the organization if a dispute is opened.

Unauthorized-charge handling is manual. There is no in-app dispute form.

7. Goodwill, partial, or prorated refunds

Not implemented as self-serve. Any exception is a manual Stripe refund by an operator, not a product guarantee. Do not assume a 14-day money-back period; the code does not provide one.

8. How to ask

Email support@sanadiqcloud.com. Include organization slug/name, invoice or Checkout time, and reason. Processing time depends on Stripe and on operator review — not coded.

  • Increases: unpaid invoice, apply after payment (prorated remaining period for seats/storage; added months charged in full).
  • Decreases: no refund (see Section 2).
  • Receipts: Stripe hosted receipt if Stripe has a payer email; SanadiqCloud does not generate PDFs.

Still required before live payments: whether goodwill refunds will ever be offered; who may approve them; target response time; tax-inclusive treatment; whether cancel-at-period-end should appear in the tenant UI.