tractatus/docs/STRIPE_PAYOUT_DIAGNOSTIC.md
TheFlow ac2db33732 fix(submissions): restructure Economist package and fix article display
- Create Economist SubmissionTracking package correctly:
  * mainArticle = full blog post content
  * coverLetter = 216-word SIR— letter
  * Links to blog post via blogPostId
- Archive 'Letter to The Economist' from blog posts (it's the cover letter)
- Fix date display on article cards (use published_at)
- Target publication already displaying via blue badge

Database changes:
- Make blogPostId optional in SubmissionTracking model
- Economist package ID: 68fa85ae49d4900e7f2ecd83
- Le Monde package ID: 68fa2abd2e6acd5691932150

Next: Enhanced modal with tabs, validation, export

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 08:47:42 +13:00

297 lines
8.5 KiB
Markdown

# Stripe Payout Diagnostic Guide
## Issue: Payment showing in UI but not in bank account
This is **usually normal** - Stripe holds funds before transferring to your bank. Let's diagnose:
---
## Step 1: Verify You're in Live Mode (Not Test Mode)
**CRITICAL**: Test mode payments are fake - no real money moves.
1. Go to https://dashboard.stripe.com
2. Look at the top-right corner
3. Check the toggle switch:
- **If it says "Test mode ON"**: You're in test mode - no real money
- **If it says "Viewing test data"**: Switch to Live mode
- **If it says "Live mode" or toggle is OFF/gray**: You're in live mode ✅
**If you were in test mode:**
- The $5 payment was a test transaction
- No real money was charged
- You need to redo the donation in Live mode
---
## Step 2: Check Your Stripe Balance
Your Stripe balance shows funds that are available or pending payout.
1. Go to https://dashboard.stripe.com/balance/overview
2. Look for two numbers:
### Available for Payout
- **If $0.00**: Funds are still pending
- **If $5.00 NZD (or converted amount)**: Funds are ready but not sent yet
### Pending
- **Shows funds waiting to become available**
- New accounts: 7-14 day hold
- Established accounts: 2 day rolling reserve
**Normal behavior**: Your $5 should appear in "Pending" first, then move to "Available" after the hold period.
---
## Step 3: Check Payout Schedule
1. Go to https://dashboard.stripe.com/settings/payouts
2. Look for **"Payout schedule"** section
3. Check settings:
### Standard Payout Schedule (Most Common):
- **Frequency**: Daily, Weekly, or Monthly
- **Timing**: "2 business days after charge" (standard)
- **Status**: Should say "Automatic payouts enabled"
### What to look for:
-**"Automatic"**: Payouts happen automatically
-**"Manual"**: You must request payouts manually
- ⚠️ **"Payouts paused"**: Issue with account - see Step 6
**If set to Manual:**
1. Click "Switch to automatic payouts"
2. Or manually request payout: Balance → "Pay out funds"
---
## Step 4: Verify Bank Account is Connected
1. Go to https://dashboard.stripe.com/settings/payouts
2. Scroll to **"Bank accounts and debit cards"** section
3. Check:
### You should see:
- ✅ A bank account listed (with last 4 digits)
- ✅ Status: "Verified" or "Default"
- ✅ Currency: NZD
### If NO bank account listed:
1. Click **"Add bank account"**
2. Enter your NZ bank details:
- Account number (format: XX-XXXX-XXXXXXX-XX)
- Account holder name
- Bank name
3. Verify via micro-deposits (Stripe sends 2 small deposits, you confirm amounts)
### If bank account shows "Verification required":
- Check your email for verification instructions from Stripe
- You may need to confirm micro-deposit amounts
- Or upload bank statement for verification
---
## Step 5: Check Payment Status
Let's verify the $5 payment actually succeeded:
1. Go to https://dashboard.stripe.com/payments
2. Look for your $5 NZD payment
3. Click on it to see details
### Check the Status:
-**"Succeeded"**: Payment captured successfully
-**"Processing"**: Still being processed (rare for card payments)
-**"Failed"** or **"Requires payment method"**: Payment didn't work
### Check the Fee:
- Stripe charges fees on each transaction
- For NZD: 2.9% + $0.30 per transaction
- $5.00 NZD → ~$4.55 NZD net after fees
### Check Available On:
- This shows when funds become available for payout
- Usually: Payment date + 2 business days
- Example: Oct 18 payment → Available Oct 20 (if no weekends)
---
## Step 6: Check Account Status
Your account might be restricted or need verification:
1. Go to https://dashboard.stripe.com/settings/account
2. Look for banners or alerts at the top
3. Check **"Account status"** section
### Common issues:
- ⚠️ **"Verification required"**: Need to provide business documents
- ⚠️ **"Payouts paused"**: Account under review
- ⚠️ **"Risk review"**: Flagged for unusual activity
### Required information:
- Business type (Individual / Company)
- Business details (name, address, URL)
- Personal information (ID verification)
- Bank account verification
**If verification required:**
- Click the banner or alert
- Follow the steps to submit required documents
- Verification usually takes 1-2 business days
---
## Step 7: Timeline - When to Expect Payout
Here's the typical timeline for a new Stripe account:
### Day 0 (Today - Oct 18):
- ✅ Customer pays $5 NZD
- ✅ Payment appears in Stripe Dashboard
- ✅ Payment appears in your Tractatus UI
-**No payout yet** - this is normal
### Day 0-7:
- Funds in "Pending" balance
- **New accounts**: 7-14 day initial hold period
- **This is Stripe's risk mitigation for new accounts**
### Day 7-14:
- Funds move from "Pending" to "Available"
- Automatic payout scheduled
### Day 9-16:
- **Payout sent to your bank account**
- Bank processing: 1-3 business days
- **Money appears in your bank account**
### Timeline Summary:
- **New Stripe account**: 7-14 days until first payout
- **Established account (after 90 days)**: 2 days
- **Weekends/holidays add extra days**
---
## Step 8: How to Check Scheduled Payouts
1. Go to https://dashboard.stripe.com/payouts
2. You should see a list of payouts
### What you might see:
- **"In transit"**: Payout sent to bank, waiting for bank processing
- **"Paid"**: Successfully received by bank
- **"Scheduled"**: Future payout queued
- **Empty list**: No payouts scheduled yet (if balance still pending)
---
## Quick Diagnostic Checklist
Run through this checklist:
- [ ] I'm in **Live mode** (not test mode)
- [ ] Payment shows **"Succeeded"** in Stripe Dashboard
- [ ] Payment amount is correct: $5 NZD
- [ ] Balance shows funds in **"Pending"** or **"Available"**
- [ ] Bank account is **connected and verified**
- [ ] Payout schedule is set to **"Automatic"**
- [ ] Account status is **"Active"** (no verification required)
- [ ] I understand the **7-14 day hold** for new accounts
---
## Expected Outcome for New Account
**This is completely normal:**
1. ✅ Oct 18: Payment succeeded ($5 NZD)
2. ✅ Oct 18: Shows in Tractatus transparency dashboard
3. ✅ Oct 18-25: Funds held in "Pending" balance
4. ⏳ Oct 25-28: Funds become "Available"
5. ⏳ Oct 26-29: Automatic payout sent to bank
6. ⏳ Oct 27-30: **Money appears in your bank account**
**Stripe's reasoning:**
- New accounts have longer holds to prevent fraud
- After 90 days of good history, holds reduce to 2 days
- This protects both you and customers from chargebacks
---
## If Money Still Missing After 14 Days
1. **Check Stripe Balance**: https://dashboard.stripe.com/balance
- Should be $0 if payout completed
- Should show amount if still pending
2. **Check Payouts**: https://dashboard.stripe.com/payouts
- Should show "Paid" status
- Should show payout date
3. **Check Bank Statement**:
- Look for "STRIPE" or "Stripe Payments"
- Amount might be slightly less due to fees
- Can take 1-3 business days after "Paid" status
4. **Contact Stripe Support**:
- https://dashboard.stripe.com/support
- Provide payment ID and payout ID
- They can trace the exact status
---
## Testing Without Waiting
If you want to verify the system works without waiting 14 days:
### Option 1: Request Manual Payout (if available)
1. Go to Balance → "Pay out funds"
2. Only works if funds are "Available" (not "Pending")
### Option 2: Check Test Mode First
1. Switch to Test mode
2. Make a test donation
3. Verify it appears in database and UI
4. This confirms the integration works
5. Live mode will work the same way (just with real money)
---
## Common Misconceptions
**"Payment succeeded = money in bank immediately"**
- Payments go to Stripe balance first
- Then Stripe pays out on schedule
- Total time: 2-14 days depending on account age
**"Test mode payments are real"**
- Test mode uses fake card numbers
- No real money moves
- Use live mode for real payments
**"Stripe balance = bank balance"**
- These are separate
- Stripe holds funds temporarily
- Bank receives scheduled payouts
---
## Next Steps
1. **Check if you're in Live mode** (Step 1)
2. **Verify bank account is connected** (Step 4)
3. **Check payment succeeded** (Step 5)
4. **Check account status** (Step 6)
5. **Wait 7-14 days for first payout** (Step 7)
**If everything looks correct**: Just wait. This is normal for new Stripe accounts.
**If something is wrong**: Follow the specific step where you found an issue.
---
**Document Created**: 2025-10-18
**Your Payment Date**: 2025-10-18
**Expected Payout**: 2025-10-25 to 2025-11-01 (first time)
**Future Payouts**: 2 days after payment (after account is established)