# Stripe Billing & Subscriptions – Ops Team Guide This guide is for non-technical operations and support staff. It explains how to use ALwrity’s internal Stripe tools to review payments, handle disputes, and respond to early fraud warnings. You do **not** need to use the Stripe Dashboard for day-to-day work; use the internal tools described here. --- ## 1. Where to go in the app - Sign in to ALwrity with your admin account. - Open the internal Stripe dashboard: - URL: `/stripe-disputes` - You will see two tabs: - **Disputes** – for chargebacks / disputes raised by card issuers. - **Fraud Warnings** – for early fraud warnings (EFWs) where issuers suspect fraud before a dispute is filed. If you cannot access this page: - Your account might not be whitelisted as an admin. Contact the engineering team to check your email and role. --- ## 2. Disputes Tab – Handling Chargebacks When a customer disputes a payment with their bank, Stripe creates a **Dispute**. The Disputes tab helps you: - See all disputes. - Review details (amount, reason, charge ID). - Submit evidence. - Close disputes when needed. ### 2.1 Disputes List The table shows: - **ID** – Stripe’s dispute ID (useful if support needs to talk to Stripe). - **Amount** – Disputed amount. - **Status** – Current status (e.g. `needs_response`, `under_review`, `won`, `lost`). - **Reason** – Bank’s reason (e.g. `fraudulent`, `product_not_received`). - **Charge** – The related Stripe charge ID. - **Created** – When the dispute was created. Actions: - **Refresh disputes** – Reloads the list from Stripe. - **Details** – Opens the dispute details dialog. - **Close** – Shortcut to close the dispute (same as “Close Dispute” inside the dialog). ### 2.2 Dispute Details & Evidence When you click **Details**, you see: - **ID / Amount / Status / Reason / Charge / Created** – Basic information summarizing the case. - **Fraud Type** – A dropdown where you classify the dispute: - `Card testing` – many small rapid attempts, usually bots testing cards. - `Stolen card` – customer’s card was used without permission. - `Overpayment fraud` – customer overpays and asks for a refund via another method. - `Alternative refund` – customer tries to get a payout via cash/crypto/bank transfer instead of back to card. - `Other` – anything else. - **Customer Email / Name / IP** – Fields to record known customer details. - **Access Activity Log** – Summary of account activity: - Example: - `"User logged in from IP 1.2.3.4, created 3 projects, downloaded 2 reports."` - **Fraud Indicators / Notes** – A free text area where you: - Summarize what looks suspicious (or legitimate). - Mention patterns like: - Many failed attempts before one success. - Overpayment + request for alternate refund. - Different billing and login locations. Buttons: - **Submit Evidence** - Sends your evidence to Stripe for this dispute. - Use this when you want to **contest** the dispute and show that the charge is valid. - **Close Dispute** - Tells Stripe you are not going to submit more evidence. - Use this if: - The dispute is clearly correct (e.g. genuine mistake). - The amount is lower than the dispute fee and not worth contesting. Tips: - Be specific and factual in evidence: - “User logged in and used the product for 3 days” is better than “Looks fine”. - Use the **Fraud Type** dropdown to tag cases consistently; it helps the team see patterns. --- ## 3. Fraud Warnings Tab – Early Fraud Warning (EFW) An **Early Fraud Warning** is a signal from the card issuer that a charge may be fraudulent, before a dispute is created. The Fraud Warnings tab helps you: - See EFWs for our charges. - Decide whether to proactively refund to avoid a later dispute. - Record decisions and notes. ### 3.1 Fraud Warnings List Columns: - **ID** – The Early Fraud Warning ID from Stripe. - **Charge** – Related Stripe charge ID. - **Amount** – Charge amount. - **Status** – Our internal status: - `open` – Needs review. - `refunded` – We proactively refunded the card. - `ignored` – We reviewed and decided not to refund. - **Action** – The latest action taken (`none`, `refund_full`, `ignored`). - **Created** – When the warning was created. Actions: - **Refresh warnings** – Reloads current open warnings. - **Details** – Opens the warning details dialog. ### 3.2 Fraud Warning Details and Actions Inside the details dialog you see: - **ID / Charge / Amount** – Basic reference info. - **Status / Action** – Current state and last action taken. - **Created / Last Action At** – Timeline. - **Issuer Fraud Type** – What the bank believes is happening (e.g. `made_with_stolen_card`). - **Actionable** – Indicates whether Stripe considers this warning still actionable: - “Yes” – No full refund yet and no dispute; you can still act. - “No” – It has either been refunded or disputed already. - **Action Notes** – Free text for internal reasoning. Buttons: - **Refund Full Amount** - Sends a full refund for the underlying charge via Stripe. - Sets status to `refunded` and action to `refund_full`. - Use this when: - The charge amount is relatively small (similar to or less than your dispute fee). - The warning and behavior strongly suggest fraud (e.g. stolen card, clear card testing). - **Mark as Ignored** - Marks the warning as `ignored` without refund. - Use this when: - You believe the charge is legitimate. - The user has confirmed the purchase, or your internal logs show normal behavior. - **Close** - Closes the dialog only (no changes to Stripe or status). Notes: - You can add or update **Action Notes** before clicking Refund or Mark as Ignored: - Example: - `"Customer confirmed via support email that they made this purchase."` - `"High risk: many failed attempts, unusual IP, amount small – refunding to avoid dispute."` --- ## 4. How to Decide: Refund vs Ignore These are general guidelines; when in doubt, coordinate with product/engineering. ### 4.1 When to Consider Proactive Refund - The amount is **small**, roughly in the range of the expected dispute fee. - The pattern clearly matches fraud: - Many rapid attempts with different cards or card numbers. - Charge is from a suspicious IP/country inconsistent with user profile. - Issuer fraud type suggests stolen or counterfeit card. - The user is not reachable or does not respond to your messages. In these cases: - Use **Fraud Warnings → Details → Refund Full Amount**. - Add a short note explaining why: - `"EFW flagged as made_with_stolen_card; small charge; refunding proactively."` ### 4.2 When to Ignore (No Proactive Refund) - The customer confirms they made the purchase. - Your logs show normal use of the product: - Regular logins, content creation, downloads. - Amount is large and there is no strong sign of fraud: - In this case you typically wait and, if a dispute occurs, respond with strong evidence. In these cases: - Use **Fraud Warnings → Details → Mark as Ignored**. - Add notes: - `"Customer confirmed via email; usage patterns normal; ignoring EFW."` --- ## 5. Things You Should Not Do - Do **not** send refunds via: - Bank transfer - Cash - Crypto - Any method outside Stripe Always refund via Stripe so: - The cardholder is repaid correctly. - Issuers see the refund related to the original charge. If someone asks for a different refund method, treat it as a potential **overpayment** or **alternative refund** scam and escalate to the team. --- ## 6. When to Escalate to Engineering Contact engineering when: - You see a sudden **spike in disputes** or fraud warnings. - The internal dashboard shows errors when: - Loading disputes/fraud warnings. - Submitting evidence. - Refunding/ignoring warnings. - You need a new flow: - Example: new product or plan changes that alter how subscriptions work. Provide: - Screenshot of the issue. - Dispute ID or Fraud Warning ID. - A short description of what you were trying to do. --- ## 7. Quick Reference - **Disputes Tab** - Use to respond to formal disputes. - Add evidence and close disputes when appropriate. - **Fraud Warnings Tab** - Use to review early fraud warnings. - Decide whether to refund or ignore. - **Action Notes** - Always record a short reason when you refund or ignore. If you follow this guide, you will help protect the business from fraud while treating legitimate customers fairly.