stripe-money-management

Implement Stripe money management: payouts, refunds, disputes, fraud prevention, balance management, and multi-currency handling. Use when: (1) Configuring payout schedules (standard, instant, manual), (2) Processing refunds (full, partial), (3) Handling disputes and chargebacks, (4) Setting up Radar for fraud prevention, (5) Managing balance and balance transactions, (6) Implementing multi-currency payments, (7) Reconciling transactions. Triggers on: payout, refund, dispute, chargeback, fraud, radar, balance, reconciliation, multi-currency, instant payout, manual payout, evidence submission, chargeback response.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "stripe-money-management" with this command: npx skills add zef-computers/drivers/zef-computers-drivers-stripe-money-management

Stripe Money Management

Manage payouts, refunds, disputes, fraud prevention, and balance operations.

Rule Priority Table

PriorityRuleImpactSummary
1currency-use-zero-decimal-correctlyHIGHHandle zero-decimal currencies (JPY, KRW) without 100x overcharge
2currency-validate-minimumsHIGHValidate minimum charge amounts per currency before API call
3dispute-respond-within-deadlineHIGHMonitor dispute webhooks and respond before evidence deadline
4dispute-submit-all-evidenceHIGHSubmit all available evidence fields to maximize win rate
5dispute-use-early-fraud-warningsHIGHProactively refund on EFW to prevent chargebacks
6dispute-collect-customer-dataHIGHCapture IP, email, receipt at purchase time for future disputes
7refund-handle-failuresHIGHImplement webhook handler for refund failures
8refund-provide-reasonMEDIUMAlways specify refund reason for analytics and Radar learning
9radar-provide-shipping-dataHIGHInclude shipping address for better fraud ML scoring
10radar-require-3ds-elevatedHIGHRequest 3DS for elevated risk via Radar rules
11radar-use-radar-sessionsHIGHImplement Radar Sessions for device fingerprinting
12payout-use-manual-modeHIGHUse manual payouts for precise cash flow control
13payout-check-balance-firstHIGHCheck available balance before creating payout
14balance-handle-negativeHIGHMonitor and handle negative balance scenarios
15balance-reconcile-dailyMEDIUMImplement daily balance reconciliation

Capability Decision Tree

What money management task?
|
+-- Sending funds to bank accounts?
|   -> references/payouts.md
|
+-- Returning money to customers?
|   -> references/refunds.md
|
+-- Responding to chargebacks?
|   -> references/disputes.md
|
+-- Preventing fraud?
|   -> references/radar.md
|
+-- Understanding your balance?
|   -> references/balance.md
|
+-- Multi-currency operations?
|   -> references/multi-currency.md

Quick Reference

Payouts

// Check available balance, then create manual payout
const balance = await stripe.balance.retrieve();
const available = balance.available.find((b) => b.currency === 'usd')?.amount ?? 0;

const payout = await stripe.payouts.create({
  amount: 250000, // $2,500
  currency: 'usd',
  method: 'standard', // or 'instant'
  description: 'Weekly payout',
});

Refunds

// Full refund with reason
const refund = await stripe.refunds.create({
  payment_intent: 'pi_xxx',
  reason: 'requested_by_customer',
});

// Partial refund
const partialRefund = await stripe.refunds.create({
  payment_intent: 'pi_xxx',
  amount: 500, // $5.00
  reason: 'requested_by_customer',
});

Dispute Response

// Submit evidence (use draft mode first, then submit)
await stripe.disputes.update('dp_xxx', {
  evidence: {
    customer_name: 'Jenny Rosen',
    customer_email_address: 'jenny@example.com',
    customer_purchase_ip: '192.168.1.1',
    product_description: 'Pro subscription plan',
    receipt: 'file_xxx',
    shipping_tracking_number: '1Z999AA1012345678',
  },
  submit: true,
});

Radar Rules

# Require 3DS for elevated risk
Request 3D Secure if :risk_level: = 'elevated'

# Block high-risk prepaid cards
Block if :card_funding: = 'prepaid' and :amount_in_usd: > 50000

# Block suspicious countries
Block if :card_country: in ('XX', 'YY')

Zero-Decimal Currencies

// JPY: amount IS the actual charge (no cents)
await stripe.paymentIntents.create({ amount: 3000, currency: 'jpy' }); // 3,000 JPY
// USD: amount is in cents
await stripe.paymentIntents.create({ amount: 1999, currency: 'usd' }); // $19.99

Dispute Lifecycle

needs_response (7-21 days) -> under_review (60-75 days) -> won / lost
                            -> warning_closed (inquiry resolved)

Critical Webhooks

EventAction
payout.paidConfirm payout deposited
payout.failedAlert, check bank details, retry
charge.refundedUpdate order status
charge.refund.updatedTrack refund failure, issue alternative
charge.dispute.createdBegin evidence collection immediately
charge.dispute.closedUpdate dispute outcome, track win/loss
radar.early_fraud_warning.createdProactive refund to prevent dispute
review.opened / review.closedManual Radar review actions
balance.availableMonitor for negative balance

References

  • references/payouts.md - Standard, instant, manual payouts, schedules, connected account payouts, failures, reversals
  • references/refunds.md - Full, partial, by payment method, refund failures, cancellation, balance requirements
  • references/disputes.md - Dispute lifecycle, evidence fields by reason, Visa CE 3.0, early fraud warnings, prevention
  • references/radar.md - ML fraud scoring, rules engine, velocity checks, Radar Sessions, manual reviews
  • references/balance.md - Available vs pending, balance transactions, fee details, reconciliation, negative balances
  • references/multi-currency.md - Presentment vs settlement currency, zero-decimal, exchange rates, minimum amounts

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

stripe-connect

No summary provided by upstream source.

Repository SourceNeeds Review
General

stripe-billing

No summary provided by upstream source.

Repository SourceNeeds Review
General

stripe-treasury

No summary provided by upstream source.

Repository SourceNeeds Review
General

stripe-expert

No summary provided by upstream source.

Repository SourceNeeds Review