Payments against invoices
Receipts posting against the correct Odoo invoice with the PayPal transaction reference attached, including payments against payment requests.
PayPal is usually in the picture because customers are abroad, and that is exactly what makes the accounting awkward. Money arrives in one currency, converts at PayPal’s rate, loses a fee on the way, and lands in your bank days later as a different number entirely.
An Odoo integration is worth doing when it keeps that chain explicit: what was invoiced, what was received, what the fee was, what the conversion did, and what finally reached the bank.
Businesses running Odoo with OdooBots
Odoo PayPal integration records each payment against its invoice and keeps the fee, the conversion and the final bank credit visible rather than merged into one number. Payments post with their transaction reference, receipts in foreign currency are recorded at the rate used, PayPal fees post as expense, withdrawals to the bank reconcile against the balance they came from, and refunds raise matching credit notes.
The gap between an invoice and the bank credit is usually three things at once: the PayPal fee, the conversion spread and a withdrawal that batched several receipts. Each needs its own line, or the difference becomes an unexplained variance every month.
Six things move between PayPal and Odoo, and most of the accounting value is in the last three.
Receipts posting against the correct Odoo invoice with the PayPal transaction reference attached, including payments against payment requests.
Money received in the customer’s currency recorded at the rate actually used, with the difference against your accounting rate recognised.
PayPal transaction and cross-border fees posted as expense lines, so gross revenue and net receipt are both correct rather than reconciled by subtraction.
The PayPal balance held as its own account, with withdrawals reconciling against the receipts they cover when they reach the bank.
Refunds raising credit notes, including partial refunds, with the fee treatment on a reversal handled explicitly.
A reversal weeks after the sale recorded against the original invoice rather than appearing as an unexplained debit.
An overseas customer pays an invoice. The receipt posts in their currency at the rate PayPal used, the fee posts as expense, and the net sits in the PayPal balance account. Days later you withdraw, and that bank credit reconciles against the receipts it covers. If a dispute reverses one of them a month on, it posts against the original invoice rather than as a mystery debit.
Receipts recorded in the customer currency at the rate actually used
PayPal fees posted as expense rather than netted off silently
PayPal balance held as its own account until withdrawal
Withdrawals reconciled against the receipts they cover
Disputes and chargebacks traced back to the original invoice
These are the decisions that are cheap to make now and painful to reverse once two systems have been exchanging records for a month.
As its own asset account rather than as cash at bank. Without this the balance sheet shows money you cannot spend yet.
PayPal’s rate for the receipt and your accounting rate for the books, with the difference recognised. Agreed with your accountant first.
Transaction and cross-border fees as expense lines, so gross revenue is not understated and the net is not a mystery.
How a bank credit is matched to the receipts behind it, since withdrawals usually batch several payments.
What happens in the books when a payment reverses weeks later, decided before it happens rather than during it.
If you run several accounts or entities, which Odoo company and currency each belongs to.
How a receipt finds its invoice when the customer pays a round number or several invoices at once.
We would rather say this before you buy licences than after. These are the areas where we scope real development, recommend a different tool, or tell you the connector will not reach.
Seller protection, risk rules and buyer messaging stay in PayPal. Odoo holds the commercial and accounting record.
The dispute process itself happens in PayPal. Odoo records the outcome; it does not fight the case.
PayPal recurring agreements have their own lifecycle. Aligning them with Odoo subscriptions is explicit design work.
Paying many recipients through PayPal is a separate product flow and a separate scope.
If you are on a micropayment fee structure, the fee posting rules need setting up differently.
Importing years of past PayPal activity is rarely worth the effort. A clean cut-off date usually is.
Connecting PayPal to Odoo is less about the connector than about agreeing what is true where, and what happens when a record will not go through.
Understand which currencies you receive in, your fee structure, how the PayPal balance is treated today, and whether disputes are common in your trade.
Agree the balance account, the rate policy, where fees post and how withdrawals reconcile, with your accountant, before anything is connected.
Connect PayPal to Odoo using the standard connector where one fits, and build only what the connector genuinely cannot reach. See Odoo customization.
Your records, in a test database, including the awkward ones — the cancelled order, the partial refund, the product that exists on one side only.
A queue for failed records with a named owner and an alert, because an integration nobody watches diverges quietly and the divergence is found at audit.
Cutover with a reconciliation on both sides, then hypercare, then ongoing support and AMC.
We do not publish one integration price, because the same connector costs very differently depending on the factors below. We do publish what moves the number, and the price is fixed in writing before work starts.
Foreign receipts go wrong in the gap between invoice and bank credit, where a fee, a conversion and a batched withdrawal hide together. We give each of those its own line, which is the difference between an audit question and an audit answer.
Product capabilities stated on this page are documented by Odoo. The mapping advice, failure handling and limitations come from our own integrations.
Tell us which currencies you receive in and how the PayPal balance is treated in your books today. Those two answers shape the configuration, and the diagnosis call is free.