Zipper Help Center

How to Process a Partial Refund Through Stripe

When you need to refund only part of a customer's payment (not the full amount), you'll process the partial refund through Stripe since Zipper uses Stripe for payment processing.

Before You Begin

  • You must have access to your Stripe Dashboard
  • You must be logged in at https://dashboard.stripe.com
  • The payment you want to refund must be completed (not pending)
  • You must have admin or owner access to your organization's Stripe account

Steps

Step 1: Log into Stripe Dashboard

  1. Go to https://dashboard.stripe.com
  2. Log in with your Stripe credentials
  3. If you manage multiple businesses, select the correct account from the dropdown in the top left

Step 2: Find the Payment

  1. Click Payments in the left sidebar
  2. Use the search bar to find the payment by:
    • Customer name
    • Email address
    • Payment amount
    • Transaction date
  3. Click on the payment to open its details page

Tip: You can also get the payment ID from Zipper (it starts with pi or ch) and search for it directly in Stripe.

Step 3: Start the Refund

  1. On the payment details page, click Refund in the top right corner
  2. A refund dialog appears

Step 4: Enter Partial Refund Amount

  1. Select Refund a different amount (not "Refund entire amount")
  2. Enter the partial amount you want to refund
    • Example: If original payment was $100 and you want to refund $25, enter 25.00
  3. Important: Enter the amount in dollars, not cents (Stripe handles the conversion)

Step 5: Add Refund Reason (Recommended)

  1. In the Reason field, select or enter why you're refunding:
    • Requested by customer
    • Duplicate charge
    • Service issue
    • Billing error
    • Custom reason (type your own)
  2. This helps with record-keeping and dispute prevention

Step 6: Review and Confirm

  1. Review the refund summary:
    • Original charge amount
    • Refund amount
    • Remaining balance (if any)
    • Destination (customer's payment method)
  2. Click Refund to process

What Happens Next

Immediately:

  • Stripe processes the refund
  • Customer's payment method is credited
  • Refund appears in your Stripe dashboard

Within minutes:

  • Zipper automatically detects the refund via webhook
  • Customer's account ledger is updated with refund credit
  • Refund appears in customer's Zipper purchase history

Within 5-10 business days:

  • Customer sees refund on their credit card or bank statement
  • Timeline depends on customer's bank

Important Notes

Stripe Fees

  • Stripe processing fees are NOT refunded on partial refunds
  • The 2.9% + $0.30 fee from the original transaction is not returned
  • You still pay the processing fee even when refunding
  • Only the customer receives money back

Zipper Credit Ledger

After the refund processes:

  • Customer's Zipper account ledger shows the refund as a credit
  • This credit can be used toward future purchases
  • Credit does not automatically refund punch card uses (see below)

Punch Card Credits

If the customer used punch card credits for the booking:

The refund does NOT automatically restore punch card credits. You must manually restore them:

  1. Go to Zipper CRM > find the customer
  2. Scroll to Punch Cards section
  3. Click Manage Credits on the relevant punch card
  4. Click Issue Credits or adjust the credit balance
  5. Add note: "Restored credit from refunded booking [date]"
  6. Save

Troubleshooting

"This payment cannot be refunded"

Possible reasons:

  • Payment is still processing (wait for it to complete)
  • Payment already fully refunded
  • Payment was disputed or failed
  • Refund window has closed (typically 120 days for Stripe)

Solution: Contact Stripe support if payment is older than 120 days.

Refund not showing in Zipper

Wait time: Refunds typically sync within 5-10 minutes.

If still not showing after 30 minutes:

  1. Check Stripe dashboard to confirm refund completed
  2. Verify you're looking at the correct customer profile in Zipper
  3. Check the ledger transactions (not just purchase history)
  4. Contact support@joinzipper.com with the Stripe transaction ID

Customer says they haven't received refund

Check timing:

  • Credit cards: 5-10 business days
  • Debit cards: 5-10 business days
  • Bank accounts: 5-10 business days

Verify in Stripe:

  1. Open the payment in Stripe dashboard
  2. Check refund status shows "Succeeded"
  3. If succeeded, the delay is on the customer's bank side
  4. Provide customer with Stripe transaction ID for their bank

Alternative: Issue Credits Instead of Refund

If you want to give the customer credit toward future purchases rather than refunding to their payment method:

See: How to Add Package Credits Without Charging the Customer

When to use credits instead:

  • Customer wants to apply refund to a future purchase
  • You want to reduce credit card processing fee losses
  • Customer prefers account credit over waiting for bank refund
  • Business policy offers store credit for refunds

Tips

  • Always add a reason: Future you will thank present you for the documentation
  • Take a screenshot: Capture the refund confirmation for your records
  • Notify the customer: Send them an email confirming the refund and timeline
  • Update internal notes: Add note to customer profile in Zipper CRM explaining the refund
  • Check for subscriptions: If refunding a subscription payment, consider whether to cancel the subscription too