Skip to Content

Refund Stripe website payments straight from the paid Odoo invoice

Your team opens an invoice a customer paid by Stripe on your Odoo website, clicks "Create Stripe Refund" and sends back the whole amount or part of it. Odoo can also create, validate and reconcile the matching credit note for you.

  • Odoo 17.0 – 20.0
  • Community & Enterprise
  • Odoo.sh · On-premise
  • Not for Odoo Online

Top seller on the Odoo Apps Store

sales on the Odoo Apps Store
3,000+
apps published
100+
countries running them
100+

Stripe refund work before and after this app

Without the connector by hand

  1. Search the Stripe dashboard for the right charge and refund it there.
  2. Draft a customer credit note in Odoo by hand afterwards.
  3. Validate that credit note and reconcile it against the invoice.
  4. Copy the Stripe refund reference back onto the Odoo record.
  5. Keep a side list of which invoices were only partly refunded.

With the connector automatic

  1. Your team clicks "Create Stripe Refund" on the paid Odoo invoice.
  2. Odoo creates the credit note when you switch that setting on.
  3. The same setting validates the credit note and reconciles it with the invoice.
  4. Odoo stores the Stripe refund reference with the date and time.
  5. The payment transaction reads Partial Refund or Refunded.

Refunds and refund details between Odoo and Stripe

Every object the connector handles, which way it travels and what triggers it.

DataDirectionWhat happens & when
Refund on a Stripe transaction Odoo to Stripe

You click Create Stripe Refund on the invoice and confirm an amount.

Refund reference, date and time Stripe to Odoo

Stripe confirms the refund against the original payment.

Stripe Payment Refund features

Refund a paid invoice in Odoo

Open a customer invoice that Stripe collected and a "Create Stripe Refund" button sits in the toolbar. One click starts the refund against that exact Stripe transaction, so nobody searches the Stripe dashboard for the charge. The button only shows on invoices in Paid or In Payment that were settled through Stripe, including payments taken on a card your customer saved.

An Odoo customer invoice showing the Create Stripe Refund button in the toolbar

Send back part of the amount

The refund window lets your team type a smaller figure, so you can return a deposit or one disputed line instead of the whole invoice. Any amount up to the balance still refundable is accepted, and you can repeat that until nothing remains. Whatever you enter is what Stripe refunds against the original payment, so the customer sees a single clear credit.

The Create Stripe Refund window in Odoo with a partial refund amount filled in

Credit notes posted and reconciled

Switch on the credit note setting and the accounting side is handled for you. Once the Stripe refund goes through, Odoo raises the customer credit note, validates it and reconciles it with the invoice, so your accountant finds a matched pair rather than an invoice left open. This automation is skipped for refunds of partial payments.

A customer credit note in Odoo created, validated and reconciled after a Stripe refund

Partial Refund marked on the transaction

Each payment transaction keeps a record of what was returned. After a part refund, Odoo marks the transaction Partial Refund and saves the Stripe refund reference with the date and time it was made. Finance can then tie a line on the Stripe statement to an Odoo record, and a later refund of the rest moves the transaction to Refunded.

An Odoo payment transaction marked Partial Refund with the Stripe refund reference stored

The refund appears in Stripe

The refund your team started in Odoo is created in Stripe against the original payment, so the money going back is recorded once. Open that payment in your Stripe dashboard and the refunded amount is listed there, partial or full. Nobody has to enter a second refund on the Stripe side, and the reference saved in Odoo points to it.

Stripe dashboard view of a partial refund that was created from Odoo

Refund notes in the invoice chatter

The invoice logs a message each time a Stripe refund is processed, so your team reads what was refunded and when in the thread they already follow. That helps when a customer calls about a credit a week later. Because the note sits on the invoice itself, accounting and support see the same history without opening Stripe.

Odoo invoice chatter showing the logged message for a Stripe partial refund

Supported Odoo versions

Odoo versionEditionsHosting PriceLatest release
20.0 Community & Enterprise Odoo.sh · On-premise €49.99 No release notes
19.0 Community & Enterprise Odoo.sh · On-premise €49.99 No release notes
18.0 Community & Enterprise Odoo.sh · On-premise €49.99 No release notes
17.0 Community & Enterprise Odoo.sh · On-premise €49.99 No release notes

Support for Stripe Payment Refund

The developers who build the app answer your tickets.

Free app support from purchase
60 days
First response in working hours, typical
4–6 hours
Support hours, 10:00–18:00 IST
Mon–Fri

How to set up Stripe refunds in Odoo

  1. Step 1

    Install on your own Odoo

    Add the app to an Odoo 17, 18, 19 or 20 database that you host on Odoo.sh or on-premise. Both Enterprise and Community work. Odoo Online will not accept third-party apps, so choose one of the other two.

  2. Step 2

    Add your Stripe credentials

    Fill in the keys from your Stripe account on the Stripe record in Odoo's payment providers. Those credentials point Odoo at the same account that collected the money, which is the account a refund has to be sent against.

  3. Step 3

    Decide how credit notes are handled

    Choose whether Odoo should raise the credit note once a refund clears, then validate and reconcile it. Leave the option off and your accountant posts the entry by hand. It is skipped for refunds of partial payments.

  4. Step 4

    Run your first refund

    Open an invoice that Stripe collected and press "Create Stripe Refund". Enter the full balance or a smaller figure and confirm. Then check the payment transaction, where the Stripe reference and the refund status are stored.

Questions before you buy

Not answered here? Talk to the team.

No, Odoo Online blocks the installation of third-party apps, so this one cannot be used there. It runs on Odoo.sh and on-premise databases, and it works with Odoo Enterprise as well as Odoo Community. We ship it for Odoo 17, 18, 19 and 20.

No. The app handles refunds of payments collected through the Stripe payment gateway on your Odoo website. A charge created somewhere else in Stripe, or an invoice settled by bank transfer or another provider, gets no refund button here. Those still have to be handled in Stripe and recorded in Odoo by your accountant.

Customer invoices in Paid or In Payment that were collected with Stripe, including payments taken on a card the customer saved for reuse. On invoices paid by any other method the "Create Stripe Refund" button stays hidden, which stops someone from starting a refund that Stripe has no payment for.

Yes. Each refund can be any figure up to the balance that is still refundable, and you can repeat that until the invoice is fully refunded. While something is still outstanding the payment transaction reads Partial Refund. The final refund changes it to Refunded, with the Stripe reference kept on the record.

No. The automatic creation, validation and reconciliation of credit notes does not apply to refunds of partial payments. The refund itself is still supported for partial payments taken through Stripe on your Odoo website. In those cases your accountant enters and reconciles the credit note the usual way.

Talk to the team that built it

Contact us
100%