FrancodesystemsFran<code>systems
PaymentsCustom integration

Odoo Stripe integration

Stripe and Odoo reconciled: payments, refunds, payouts and subscriptions in your open-source accounting.

Odoo
Stripe

Implementation time · 6-12 días laborables

Diagnosis

The problem

Stripe charges fine, but matching its movements to Odoo is the real pain: payouts bundle dozens of charges with the fee already deducted, refunds arrive late, and subscriptions generate recurring charges someone copies into the ERP by hand. The result is a month-end reconciliation that drags on and a gap between what Stripe says and what your accounting says.

Proposal

The solution

We connect Stripe to Odoo so every payment, refund and payout lands in the Accounting module ready to reconcile, and subscriptions are reflected with no manual work. We lean on Odoo being open source and modular: we integrate with the modules you already run (Accounting, Sales, Subscriptions) via the external API (XML-RPC/JSON-RPC) or a custom module, respecting your accounts and accounting rules instead of imposing a closed connector.

Scope

What we automate

  • Every Stripe payment is recorded in Odoo Accounting with its customer and its related invoice or order.
  • Payouts broken down by charge and fee, ready to reconcile against the bank statement.
  • Refunds and disputes reflected in Odoo without breaking the accounting.
  • Subscriptions and recurring charges synced with the relevant Odoo module.
  • Assisted reconciliation matching Stripe movements to Odoo entries.
  • Idempotency: Stripe webhook retries never duplicate payments or entries.
Who uses it

Real use cases

These are the profiles that most ask us for the OdooStripe integration and what they get in the end.

Case 01

SaaS billing by subscription with Stripe Billing

Before: Recurring charges were copied into Odoo by hand and reconciliation lagged for weeks.

After: Every recurring charge comes into Accounting on its own and the monthly close stops being a bottleneck.

Case 02

Ecommerce with high payout volume

Before: Each payout bundled dozens of charges and matching it to the bank was manual and slow.

After: Payouts broken down by charge and fee, reconciled against the statement almost on their own.

Case 03

SMB with many refunds and the odd dispute

Before: Refunds threw off the accounting until someone adjusted them by hand.

After: Refunds and disputes reflected in Odoo instantly, with no gap against Stripe.

Before / After

What changes exactly

Without the integration

  • A month-end reconciliation that drags on.
  • Stripe payouts impossible to match to the bank.
  • Subscriptions copied into the ERP by hand.
  • A gap between what Stripe says and what Odoo says.

With the integration

  • Payments, refunds and payouts in Accounting ready to reconcile.
  • Payouts broken down by charge and fee.
  • Subscriptions synced with no manual work.
  • Stripe and your accounting balancing on their own.
Architecture

How we build it

We integrate via Odoo's external API (XML-RPC/JSON-RPC) or a custom module depending on the case, with an idempotent queue processing Stripe webhooks (payments, refunds, payouts, subscription events). We map each event to your real accounting accounts and respect your existing Accounting rules instead of imposing a closed connector.

flow.ts
webhook stripe.event
queue.enqueue(jobId)
worker.handle() // idempotent
odoo.api.call() // retries with backoff
log.emit({ status: 'ok' })
FAQ

Frequently asked questions

Odoo Online (SaaS), Community or Enterprise?

We work with all three. Self-hosted Community and Enterprise give us more room (custom modules); with Odoo Online we use the external API. We adapt to your edition.

How does it reconcile Stripe payouts?

We break each payout into its charges and its fee, and leave it ready to match against the bank movement in Odoo, without you opening each transaction by hand.

Does it handle subscriptions and recurring charges?

Yes. We sync Stripe subscription events with whichever Odoo module you use (Subscriptions or recurring invoicing), so every recurring charge is recorded.

What about refunds and disputes?

We reflect them in Accounting with their matching entry, so the books keep balancing without manual adjustments.

Shall we talk about your Stripe integration?

A 30-minute call, no strings. You leave with scope and a price.