When a payment goes through Dubsado Payments, you can send a full or partial refund to your client right from the invoice, without leaving Dubsado. You can also start the refund from your Stripe account if you prefer, and it syncs back to the invoice automatically.
For payments made through another method, Dubsado can only log the refund for your records. See log a refund for Square or PayPal transactions for that walkthrough.
If a payment was not processed through Dubsado Payments, it cannot be refunded through Dubsado. You can log the refund for your records, then issue the actual refund from your payment processor.
How to issue a refund through Dubsado Payments
Refunds are issued from the Transactions tab on the invoice the original payment belongs to.
Navigate to the Invoicing page and open the invoice, or open the project and click the Invoicing tab (in a contact, click the Invoices tab) and open the invoice from there.
In the Payments column, click the Transactions tab (next to Payment plan).
Start the refund in either of two ways:
In the Transaction history header, click Refund (next to Payment).
Or click the three-dot menu (...) on the payment you want to refund and choose Refund.
If you started from the Transaction history header, choose the payment you're refunding from the Payment to refund dropdown. Each option shows the payment date and amount; payments that are already fully refunded are marked Refunded and can't be selected. If you started from a payment's own three-dot menu, that payment is already selected.
Enter a Refund date.
Enter a Refund amount. Click Add max amount inside the field to refund the full remaining amount. This is also where you decide between a full and partial refund: enter a smaller amount instead to refund only part of the payment.
Optionally, add a Note to contact. If you later email your client a refund receipt, this note is included on it.
Optionally, add a Description (only visible to you) for your own records.
Optionally, check Allow client to repay this amount if you expect your client to make another payment toward the refunded amount. This adds the refunded amount back to the remaining balance on the invoice. See allow contacts to repay for how repayment works.
Click Review. A Review your refund screen recaps the original payment date and amount alongside the refund date and amount, and confirms that processing fees aren't returned and your client should receive the funds within 5-7 business days. Click Back if you need to make changes.
Click Submit [amount] refund (for example, Submit $100.00 refund) to send the refund.
Processing fees are not returned on a refund. Your client should receive the refunded funds within 5-7 business days.
Partial refunds
Partial refunds use the same flow as a full refund. Enter a smaller amount in Refund amount instead of clicking Add max amount. You can also issue a partial refund from your Stripe account by entering a different amount there.
After you issue a refund
The refund appears in the Transaction history list on the Transactions tab, nested under the payment it came from. It shows up in Dubsado right away, even if it's still processing in your Stripe account.
From the refund's three-dot menu, you can Send via email a refund receipt to your client, Copy link to copy a link to the receipt, or View refund receipt. For a refund issued through Dubsado Payments, View refund status opens that payment in your Stripe Dashboard so you can track where it stands.
A refund shows on the invoice immediately, even while it's still processing in your Stripe account.
Refunding a payment that did not go through Dubsado Payments
If the payment you select was made through another method (cash, PayPal, an earlier processor, and so on), the dialog title changes to Log refund and a banner appears: "This refund can only be logged for your records. To refund an online payment to your client, please visit your payment processor."
In this case, Dubsado records the refund but doesn't move any money. Log the refund here for your records, then issue the actual refund from your payment processor. See log a refund for Square or PayPal transactions for the full walkthrough.
Issuing a refund from your Stripe account
You don't have to start every refund in Dubsado. Refunds issued from your Stripe account appear on the matching Dubsado invoice automatically, so there's no need to log them separately. If you're not sure how to issue a refund from your Stripe account, follow Stripe's own instructions on refunding a customer.
If you were previously connected through an earlier Stripe integration and have since moved to Dubsado Payments, older payments from that connection may still be refundable from your previous Stripe Dashboard.
How funds are withdrawn from your Stripe account
Dubsado never holds your funds, so every refund is withdrawn from your Stripe balance rather than from Dubsado.
Refunds use your available Stripe balance, which doesn't include any pending balance. If your available balance doesn't cover the refund, Stripe debits the remaining amount from your connected bank account, and you're notified by email before any charge is made.
If Stripe can't pull the funds automatically, the refund stays pending until your balance has enough to cover it.
Adding funds with a top-up
If your Stripe balance can't cover a refund on its own, you can add funds with a top-up: a transfer from your bank account into your Stripe balance. In your Stripe Dashboard, go to the Balance section, enter an amount under Add to balance, select Cover negative balances, and confirm to add the funds. Once your balance has enough, either from a top-up or from other client payments, your pending refund can go through.
When your client doesn't see the refund
Occasionally a refund is processed as a reversal instead of a standard refund. When that happens, your client won't see a separate refund line on their statement. Instead, the original charge disappears from the statement where it first appeared.
If a client reaches out because they don't see their refund, ask them to check the statement from when the original payment was made, not their current statement. For example, if they paid you on March 15 and you issued the refund on June 15, they won't see a new line in their June statement. They should instead check their March statement to confirm the original charge is gone. If the original charge is still there, have your client reach out to their bank. Stripe has more detail in their article on refund reversals.
FAQ
Are processing fees returned on a refund?
No. Processing fees aren't returned on either full or partial refunds. See Dubsado Payments processing fees for a full breakdown of how fees work.
Will issuing a refund stop autopay?
No. Future autopay charges on payment plan installments or recurring invoices continue as scheduled. See autopay enrollment settings for more on how autopay works.
Can I edit or delete a refund?
A refund issued through Dubsado Payments can't be edited or deleted in Dubsado. This keeps it aligned with your Stripe account, where the same is true. A refund you logged manually for a payment made outside Dubsado Payments can be edited or deleted from its three-dot menu. See manually add or delete a payment on an invoice for that walkthrough.
Can I refund to a different card?
Refunds go back to the original payment method to help prevent fraud. If your client's card is closed or expired, their bank tries to route the refund to a replacement card or account. If that's not possible, the funds go back to Stripe, which contacts you by email about next steps.
Who can issue a refund?
Any team member with access to the project's invoices can issue a refund.
