Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -78,18 +78,18 @@ Vendor payments with Ponto
.. important::
Before managing vendor payments with Ponto, make sure the following steps are completed:

- :ref:`SEPA Credit Transfer is activated (SCT) <accounting/pay_sepa/activate-sepa>`.
- :ref:`SEPA Credit Transfer (SCT) is activated <accounting/sepa_payments/sct>`.
- :ref:`The SEPA Credit Transfer payment method has been added to the bank journal
<accounting/pay_sepa/activate-sepa-bank-journal>`.
- :doc:`The vendor's bank account has been marked as trusted <../../payments/trusted_accounts>`.
<accounting/sepa_payments/sct_configuration>`.
- :ref:`The vendor's bank account has been marked as trusted <accounting/batch/bank-accounts>`.
- The :guilabel:`Account Online Payment` (`account_online_payment`) module is :ref:`installed
<general/install>`.

To register a vendor payment using Ponto, follow these steps:

#. Go to :menuselection:`Accounting --> Vendors --> Payments` and create the payment. Fill in the
relevant bank :guilabel:`Journal` field, select :ref:`SEPA Credit Transfer
<accounting/pay_sepa/registering-payments-sepa>` as the :guilabel:`Payment Method`, and enter the
<accounting/sepa_payments/sct>` as the :guilabel:`Payment Method`, and enter the
:guilabel:`Vendor Bank Account`. Then click :guilabel:`Confirm`.
#. Go to :menuselection:`Accounting --> Vendors --> Batch Payments` and :ref:`create a batch
<accounting/batch/creation>`. Select the same bank :guilabel:`Journal` and :guilabel:`Payment
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ fields are specific to bank journals:
- :guilabel:`Bank Account`: This :guilabel:`Bank and Cash` type account is the default account for
this bank journal.
- :guilabel:`Account Number`: The bank account's number is used when registering payments and is
required for generating outgoing payment files, such as :doc:`SEPA <../payments/pay_sepa>` or
required for generating outgoing payment files, such as :doc:`SEPA <../payments/sepa_payments>` or
:ref:`NACHA <l10n_us/nacha>`. To edit the bank account details, click on the
:icon:`oi-arrow-right` :guilabel:`(Internal link)` button next to the :guilabel:`Account Number`
and update the account information accordingly.
Expand All @@ -160,7 +160,8 @@ fields are specific to bank journals:
- :guilabel:`Split Transactions`: Split collective payments for CODA files.

Multiple payment methods are available for bank journals, as are configurations for generating
outgoing payment files, such as :doc:`SEPA <../payments/pay_sepa>` or :ref:`NACHA <l10n_us/nacha>`.
outgoing payment files, such as :doc:`SEPA <../payments/sepa_payments>` or :ref:`NACHA
<l10n_us/nacha>`.

.. _accounting/journals/cash:

Expand Down
17 changes: 7 additions & 10 deletions content/applications/finance/accounting/payments.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ Payment methods
Several payment methods are available in Odoo to allow different configurations for different types
of payments. Examples of payment methods include manual payments (such as cash), :doc:`checks
<payments/pay_checks>`, and batch payment files (such as :ref:`NACHA
<l10n_us/ach-electronic-transfers>` and :doc:`SEPA <payments/pay_sepa>`). Payment methods can be
configured in the :guilabel:`Incoming Payments` and :guilabel:`Outgoing Payments` tabs of a bank or
cash journal.
<l10n_us/ach-electronic-transfers>` and :doc:`SEPA <payments/sepa_payments>`). Payment methods can
be configured in the :guilabel:`Incoming Payments` and :guilabel:`Outgoing Payments` tabs of a bank
or cash journal.

.. seealso::
:doc:`../../sales/point_of_sale/payment_methods` for Point of Sale
Expand Down Expand Up @@ -321,9 +321,9 @@ Registering a single payment for multiple customers or vendors (batch payments)
===============================================================================

Batch payments allow grouping payments from multiple customers to ease :doc:`reconciliation
<bank/reconciliation>`. They are also useful when depositing :ref:`checks
<accounting/payments/checks>` or cash payments to the bank or for generating bank payment files such
as :doc:`SEPA <payments/pay_sepa>` or :ref:`NACHA <l10n_us/nacha>`.
<bank/reconciliation>`. They are also useful when depositing :doc:`checks
<payments/pay_checks>` or cash payments to the bank or for generating bank payment files such
as :doc:`SEPA <payments/sepa_payments>` or :ref:`NACHA <l10n_us/nacha>`.

.. seealso::
:doc:`payments/batch`
Expand Down Expand Up @@ -403,9 +403,6 @@ Reconciling payments with bank transactions

payments/online
payments/batch
payments/batch_sdd
payments/sepa_payments
payments/follow_up
payments/pay_sepa
payments/pay_checks
payments/forecast
payments/trusted_accounts
219 changes: 193 additions & 26 deletions content/applications/finance/accounting/payments/batch.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,55 +2,222 @@
Batch payments
==============

Batch payments allow grouping payments from multiple customers or vendors into a single batch and
generating a detailed deposit slip or payment file with a batch reference. This reference can be
used during :doc:`reconciliation <../bank/reconciliation>` to match bank transactions with the
corresponding payments. This feature is particularly useful for submitting :doc:`SEPA Direct Debit
payments <batch_sdd>`, depositing cash payments or :ref:`checks <accounting/payments/checks>`, or
generating outgoing payment files, such as :doc:`SEPA <pay_sepa>` or :ref:`NACHA <l10n_us/nacha>`.
Batch payments act as an organizational tool that groups multiple individual customer or vendor
payments into a single file. Rather than managing transactions one by one, you can consolidate them
to generate a detailed deposit slip or a single electronic payment file. This significantly
simplifies :doc:`bank reconciliation <../bank/reconciliation>`: when a bulk sum appears on your bank
statement, Odoo uses the batch reference to automatically match and reconcile all underlying
payments in a single step.

For customer payments, the feature supports both physical payments, such as :doc:`checks
<pay_checks>` and cash, and electronic transfers. Group incoming cash or check payments into batches
to print bank deposit slips to ensure your internal records mirror the lump-sum deposit on your bank
statement. On the vendor side, batch payments streamline bulk electronic transfers. Instead of
processing supplier invoices manually, select multiple bills and generate a single outgoing payment
file to upload directly to your banking portal. Because these file formats are region-specific
(e.g., :doc:`SEPA <sepa_payments>` in Europe, :ref:`NACHA <l10n_us/nacha>` in the U.S., or the
global :ref:`ISO 20022 <accounting/sepa_payments/iso20022>` standard), consult your country's
:doc:`fiscal localization <../../fiscal_localizations>` documentation to verify supported formats.

.. seealso::
:doc:`../payments`

.. _accounting/batch/configuration:

Configuration
=============

To enable batch payments, go to :menuselection:`Accounting --> Configuration --> Settings`, scroll
down to the :guilabel:`Customer Payments` section, and enable :guilabel:`Batch Payments`.
Make sure batch payments are enabled by opening the **Accounting** app, going to
:menuselection:`Configuration --> Settings`, scrolling down to the :guilabel:`Customer Payments`
section, and enabling :guilabel:`Batch Payments`.

.. note::
This enables both customer *and* vendor batch payments.

.. tip::
According to your needs, check that the following apps are installed in the **Apps** app:

- :doc:`SEPA Credit Transfer <sepa_payments>`
- :doc:`SEPA Direct Debit <sepa_payments>`
- :doc:`SEPA Payments for Payroll <../../../hr/payroll>`
- :doc:`Payment Provider: Sepa Direct Debit <../../payment_providers/sdd>`
- :ref:`NACHA Payments <l10n_us/nacha>`

.. _accounting/batch/creation:

Batch creation
==============

To create a batch payment, follow these steps:
To create customer or vendor batch payments and add existing payments to them, follow these steps:

#. Make sure all payments to be included in the batch have been :ref:`registered
<accounting/payments/from-invoice-bill>`.
#. Go to :menuselection:`Accounting --> Customers --> Payments`.
#. Select the payments to include in the batch.
#. Open the **Accounting** app and go to :menuselection:`Customers --> Batch Payments` or
:menuselection:`Vendors --> Batch payments` according to the nature of the payment and click
:guilabel:`New`.
#. Next, configure the batch payment:

- :guilabel:`Batch Type`: select whether the money is being transferred to your account
(:guilabel:`Inbound`) or to someone else's account (:guilabel:`Outbound`).
- :guilabel:`Bank`: the bank :doc:`journal <../get_started/journals>` to use for this batch.
- :guilabel:`Payment Method`: the payment method used for the invoices' payments. Only payments
matching the payment method selected will appear.
- :guilabel:`Date`: the batch's creation date.
- :guilabel:`Reference`: the reference of the batch. Leave it empty to generate it automatically.
- :guilabel:`Add a line`: click it to select the payments to include in the batch.

.. note::
All payments in the batch must use the same payment method. If needed, payments can be grouped
using the :guilabel:`Payment Method Line`.
#. Once all desired payments are included, click :guilabel:`Validate` to finalize the batch.

#. Click :guilabel:`Create batch` or click :icon:`fa-cog` :guilabel:`Actions` and select
Alternatively, you can select the relevant payments and create a batch payment directly from them:

#. Make sure all payments to be included in the batch have been :ref:`registered
<accounting/payments/from-invoice-bill>`.
#. Open the **Accounting** app and go to :menuselection:`Customers --> Payments` or
:menuselection:`Vendors --> Payments` and select all payments to include in the batch.
#. Click :guilabel:`Create Batch`, *or* :icon:`fa-cog` :guilabel:`(Actions)`, and select
:guilabel:`Create batch payment`.
#. In the batch payment form, review the selected payments. If any individual payments were missed,
click :guilabel:`Add a line` and select the missing payments to be included in the batch.
#. Once all relevant payments are included, click :guilabel:`Validate` to finalize the batch.
#. In the view form, review the selected payments. If any individual payments are missing, click
:guilabel:`Add a line`, then select the missing payments to include in the batch.
#. If you're using ISO 20022 as :guilabel:`Payment Method`, you can define the charge baring options
in the :guilabel:`Charge Bearer` field.
#. Once all desired payments are included, click :guilabel:`Validate` to finalize the batch.

To view existing batch payments, go to :menuselection:`Customers --> Batch Payments` or
:menuselection:`Vendors --> Batch Payments`.

.. note::
Once validated, no additional payments can be added to a batch.
- All payments in a batch *must* use the same payment method.
- Once validated, no additional payments can be added to a batch. You can delete the batch if
necessary by clicking :icon:`fa-cog` :guilabel:`(Actions)` and then :icon:`fa-trash-o`
:guilabel:`(Delete)`.

.. tip::
- Click :guilabel:`Print` to download a list of the included payments.
- To view existing batch payments, go to :menuselection:`Accounting --> Customers --> Batch
Payments`.
- Click :icon:`fa-print` :guilabel:`Print` to download a list of the included payments.
- To filter payments by payment method, click on the :guilabel:`Payment Method` column header
during the batch payment creation step.

.. _accounting/batch/bank_reconciliation:

Bank reconciliation
-------------------
===================

Once the bank transactions :doc:`have been created <../bank/transactions>` in your database, you can
Once the :doc:`bank transactions <../bank/transactions>` have been created in your database, you can
:ref:`reconcile them with the batch payment <reconciliation/batch-payments>`.

.. image:: batch/batch-reconciliation.png
:alt: Reconciling the batch payment with all its transactions

.. note::
If a specific payment could not be processed by the bank or is missing, remove the line
corresponding to that payment by using the :icon:`fa-trash-o` (:guilabel:`Delete`) button before
validating the reconciliation of the batch payment.

.. _accounting/batch/bank-accounts:

Bank accounts
=============

Odoo distinguishes between :guilabel:`Banks` (the financial institution issuing the account) and
:guilabel:`Bank Accounts` (the specific account number and routing details).

You can store banking details for both your own company and your :doc:`contacts
<../../../essentials/contacts>`. Odoo automatically uses this information when needed, such as when
generating batch payment files.

To protect your business against :ref:`phishing scams <accounting/batch/phishing>`, Odoo configures
all new bank accounts as "untrusted" by default, preventing outgoing wire transfers until you
:ref:`manually verify and trust <accounting/batch/link-account-contact>` the account.

.. seealso::
- :doc:`../payments`
- :doc:`batch_sdd`
:doc:`sepa_payments`
:ref:`NACHA <l10n_us/nacha>`

.. _accounting/batch/bank-accounts-configuration:

Configuration
-------------

.. note::
The **Contacts** app can be :ref:`installed <general/install>` from the **Apps** dashboard.

To configure your banking information, open the **Contacts** app and go to
:guilabel:`Configuration`. From here, you can manage :guilabel:`Banks` and :guilabel:`Bank
Accounts`.

.. _accounting/batch/create-bank:

Create a bank
~~~~~~~~~~~~~

Go to :menuselection:`Configuration --> Banks` and click :guilabel:`New`. Fill in the following
fields:

- :guilabel:`Name`: The name of the bank.
- :guilabel:`Bank Identifier Code`: The bank's SWIFT or BIC code.
- :guilabel:`Bank Address`: Enter the :guilabel:`Country`. The :guilabel:`Street`, :guilabel:`City`,
:guilabel:`State`, and :guilabel:`Zip` fields are optional.
- :guilabel:`Phone` and :guilabel:`Email`: Optional contact details.

.. _accounting/batch/create-bank-account:

Create a bank account
~~~~~~~~~~~~~~~~~~~~~

.. note::
**Prerequisite:** A bank account must be linked to a specific bank record. Ensure you have
created the required bank using the steps above before setting up a bank account.

Go to :menuselection:`Configuration --> Bank Accounts` and click :guilabel:`New`. Enter the
following details:

- :guilabel:`Account Number`: The unique identification number for the bank account.
- :guilabel:`Bank`: Select the associated bank from the drop-down menu.
- :guilabel:`ABA/Routing`: The American Bankers Association routing number (if applicable).
- :guilabel:`Account Holder Name`: The full name of the account holder.
- :guilabel:`Account Holder`: Select the holder's :doc:`contact <../../../essentials/contacts>` from
the drop-down menu. If the contact does not exist yet, you can link it later by following the next
steps.
- Toggle :guilabel:`Send Money` to mark the account as :guilabel:`Trusted`. Marking the account as
:guilabel:`Trusted` will enable you to send money to this account, so only do this when you are
certain the information is correctly entered and was not provided by a :ref:`phishing attack
<accounting/batch/phishing>`.

.. _accounting/batch/link-account-contact:

Link a bank account to a contact
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If you need to link an existing bank account to a contact:

1. Open an app with contact access (such as **Accounting** or **Contacts**).
2. Select a contact and open the :guilabel:`Accounting` tab.
3. In the :guilabel:`Bank Accounts` section, click :guilabel:`Add a line` and provide the:

- :guilabel:`Account Number`,
- :guilabel:`Bank`,
- :guilabel:`Account Holder Name`,
- :guilabel:`Account Holder`,
- :guilabel:`Company` and :guilabel:`Currency` (if applicable).

4. Toggle :guilabel:`Send Money` to mark the account as :guilabel:`Trusted`.

.. _accounting/batch/phishing:

Phishing attacks
----------------

A **phishing attack** is an online scam designed to trick individuals or companies into giving away
sensitive information or money by sending out fraudulent communication. Fraudsters pretend to be
legitimate companies and may use partial information to give credibility to their requests.

There are several types of phishing attacks, including **invoice fraud**. In this case, the
fraudster pretends to be a genuine supplier following up on unpaid bills or sending a new invoice,
but with different payment information than usual and with fake contact details.

To protect yourself from these types of phishing attacks, remain vigilant when you receive
unexpected invoices or payment requests.

.. important::
In case of doubt, **we recommend contacting the vendor by phone**. Make sure to call an official
phone number by searching yourself, as the URLs, email addresses, and phone numbers written in
the communication you received may be fake.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading