diff --git a/content/applications/finance/accounting/bank/reconciliation.rst b/content/applications/finance/accounting/bank/reconciliation.rst index 807db43ee..560c92516 100644 --- a/content/applications/finance/accounting/bank/reconciliation.rst +++ b/content/applications/finance/accounting/bank/reconciliation.rst @@ -17,6 +17,8 @@ matching entries automatically. - :doc:`bank_synchronization` - :doc:`transactions` +.. _accounting/reconciliation/access: + Bank reconciliation view ======================== @@ -55,6 +57,8 @@ Resulting entry validate the reconciliation or mark it as :guilabel:`To Check`. Any :ref:`reconciliation model buttons ` are also available in the resulting entry section. +.. _accounting/reconciliation/reconcile: + Reconcile transactions ====================== @@ -102,7 +106,7 @@ suggested entries appearing first. Batch payments -------------- -`Batch payments `_ allow you to group different payments to ease +:doc:`Batch payments <../payments/batch>` allow you to group different payments to ease reconciliation. Use the :guilabel:`Batch Payments` tab to find batch payments for customers and vendors. Similarly to the :guilabel:`Match Existing Entries` tab, the :guilabel:`Batch Payments` tab has a search bar that allows you to search for specific batch payments. diff --git a/content/applications/finance/accounting/payments.rst b/content/applications/finance/accounting/payments.rst index 23069c07b..8d37619d5 100644 --- a/content/applications/finance/accounting/payments.rst +++ b/content/applications/finance/accounting/payments.rst @@ -284,21 +284,13 @@ To register payments on multiple invoices/credit notes or bills/refunds, follow Registering a single payment for multiple customers or vendors (batch payments) =============================================================================== -Batch payments allow grouping payments from multiple contacts to ease :doc:`reconciliation -`. They are also useful when depositing :doc:`checks ` to the -bank or for generating bank payment files such as :doc:`SEPA ` or :ref:`NACHA -`. To do so, go to :menuselection:`Accounting --> Customers --> Payments` or -:menuselection:`Accounting --> Vendors --> Payments`. In the payments list view, select the payments -to be grouped in a batch, click :icon:`fa-cog` :guilabel:`Actions`, and select :guilabel:`Create -Batch Payment`. - -.. note:: - All payments in a batch must have the same :ref:`payment method - `. +Batch payments allow grouping payments from multiple customers to ease :doc:`reconciliation +`. They are also useful when depositing :doc:`checks ` or +cash payments to the bank or for generating bank payment files such as :doc:`SEPA +` or :ref:`NACHA `. .. seealso:: - - :doc:`payments/batch` - - :doc:`payments/batch_sdd` + :doc:`payments/batch` .. _accounting/payments/matching: diff --git a/content/applications/finance/accounting/payments/batch.rst b/content/applications/finance/accounting/payments/batch.rst index 7f0862460..75de741ef 100644 --- a/content/applications/finance/accounting/payments/batch.rst +++ b/content/applications/finance/accounting/payments/batch.rst @@ -1,69 +1,55 @@ -============================== -Batch payments by bank deposit -============================== +============== +Batch payments +============== -A **batch deposit** is a convenient way to group customer payments and deposit them into your bank -account. The feature lets you list multiple payments and generate a detailed deposit slip with a -batch reference. This reference can be used when reconciling to match bank statement lines with -transactions in the batch deposit. +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 `, depositing cash payments or :doc:`checks `, or generating outgoing +payment files, such as :doc:`SEPA ` or :ref:`NACHA `. Configuration ============= -Go to :menuselection:`Accounting --> Configuration --> Settings --> Customer Payments` and tick -:guilabel:`Batch Payments` to activate the feature. +To enable batch payments, go to :menuselection:`Accounting --> Configuration --> Settings`, scroll +down to the :guilabel:`Customer Payments` section, and enable :guilabel:`Batch Payments`. -Deposit multiple payments in batch -================================== +.. _accounting/batch/creation: -.. _batch-payments/register-payments: +Batch creation +============== -Register payments ------------------ +To create a batch payment, follow these steps: -Before performing a batch deposit, it is necessary to register each transaction's payment. To do so, -open the corresponding customer invoice and click :guilabel:`Register Payment`. In the pop-up -window, select the :guilabel:`Journal` linked to your bank account and :guilabel:`Batch Deposit` as -the :guilabel:`Payment Method`, and click :guilabel:`Create Payment`. +#. Make sure all payments to be included in the batch have been :ref:`registered + `. +#. Go to :menuselection:`Accounting --> Customers --> Payments`. +#. Select the payments to include in the batch. -.. image:: batch/batch-payments.png - :alt: Registering a customer payment as part of a batch deposit + .. note:: + All payments in the batch must use the same payment method. If needed, payments can be grouped + using the :guilabel:`Payment Method Line`. -Add payments to a batch deposit -------------------------------- +#. Click :guilabel:`Create batch` or click :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. -To add payments to a batch deposit, go to :menuselection:`Accounting --> Customers --> Batch -Payments`, and click :guilabel:`New`. Next, select the :guilabel:`Bank` and choose :guilabel:`Batch -Deposit` as the :guilabel:`Payment Method`. - -.. image:: batch/batch-customer-payment.png - :alt: Filling out a new inbound batch payment form - -Click :guilabel:`Add a line`. In the pop-up window, tick all payments to include in the batch -deposit, then click :guilabel:`Select`. - -.. image:: batch/batch-lines-selection.png - :alt: Selecting all payments to include in the batch deposit - -Once done, click :guilabel:`Validate` to finalize the batch deposit. +.. note:: + Once validated, no additional payments can be added to a batch. .. tip:: - Click :guilabel:`Print` to download a PDF file to include with the deposit slip. + - Click :guilabel:`Print` to download a list of the included payments. + - To view existing batch payments, go to :menuselection:`Accounting --> Customers --> Batch + Payments`. Bank reconciliation ------------------- -Once the bank transactions are on your database, you can reconcile bank statement lines with the -batch payment. To do so, go to the :guilabel:`Accounting Dashboard` and click :guilabel:`Reconcile -Items` on the related bank account. Go to the :guilabel:`Batch Payments` tab to select a specific -batch and click :guilabel:`Validate` to finalize the process. - -.. 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 related - payment before reconciling. +Once the bank transactions :doc:`have been created <../bank/transactions>` in your database, you can +:ref:`reconcile them with the batch payment `. .. seealso:: - :doc:`../payments` diff --git a/content/applications/finance/accounting/payments/batch/batch-customer-payment.png b/content/applications/finance/accounting/payments/batch/batch-customer-payment.png deleted file mode 100644 index 2e54bf3ff..000000000 Binary files a/content/applications/finance/accounting/payments/batch/batch-customer-payment.png and /dev/null differ diff --git a/content/applications/finance/accounting/payments/batch/batch-lines-selection.png b/content/applications/finance/accounting/payments/batch/batch-lines-selection.png deleted file mode 100644 index 5612e0f04..000000000 Binary files a/content/applications/finance/accounting/payments/batch/batch-lines-selection.png and /dev/null differ diff --git a/content/applications/finance/accounting/payments/batch/batch-payments.png b/content/applications/finance/accounting/payments/batch/batch-payments.png deleted file mode 100644 index b6dd7db35..000000000 Binary files a/content/applications/finance/accounting/payments/batch/batch-payments.png and /dev/null differ diff --git a/content/applications/finance/accounting/payments/batch/batch-reconciliation.png b/content/applications/finance/accounting/payments/batch/batch-reconciliation.png deleted file mode 100644 index a20d5503c..000000000 Binary files a/content/applications/finance/accounting/payments/batch/batch-reconciliation.png and /dev/null differ diff --git a/content/applications/finance/accounting/payments/batch_sdd.rst b/content/applications/finance/accounting/payments/batch_sdd.rst index 19eed0866..771dea3c7 100644 --- a/content/applications/finance/accounting/payments/batch_sdd.rst +++ b/content/applications/finance/accounting/payments/batch_sdd.rst @@ -1,130 +1,196 @@ -======================================= -Batch payments: SEPA Direct Debit (SDD) -======================================= +========================================= +SEPA Direct Debit (SDD) customer payments +========================================= -SEPA, the Single Euro Payments Area, is a payment-integration initiative of the European Union for -simplification of bank transfers denominated in euros. With **SEPA Direct Debit** (SDD), your -customers can sign a mandate that authorizes you to collect future payments from their bank -accounts. This is particularly useful for recurring payments based on a subscription. +.. |sdd| replace:: :abbr:`SDD (SEPA Direct Debit)` -You can record customer mandates in Odoo, and generate `.xml` files containing pending payments made -with an SDD mandate. +SEPA (Single Euro Payments Area) is a payment-integration initiative of the European Union that +facilitates standardized and simplified electronic payments in euros across participating countries. +With **SEPA Direct Debit** (SDD), customers sign a mandate that authorizes you to collect future +payments from their bank accounts. This is particularly useful for recurring payments based on a +:doc:`subscription `. + +You can record customer |sdd| mandates in Odoo and generate XML files listing payments to be +collected with the mandates. :ref:`Uploading these files to your bank ` +instructs them to collect these payments from your customers. .. note:: - | SDD is supported by all SEPA countries, which includes the 27 member states of the European + - |sdd| is supported by all SEPA countries, which includes the 27 member states of the European Union as well as additional countries. - | `List of all SEPA countries + - `List of all SEPA countries `_. +.. _accounting/batch_sdd/sepa-configuration: + Configuration ============= -Go to :menuselection:`Accounting app --> Configuration --> Settings`, activate -:guilabel:`SEPA Direct Debit (SDD)`, and click on :guilabel:`Save`. Enter your company's -:guilabel:`Creditor Identifier`. This number is provided by your bank institution, or the authority -responsible for delivering them. +Creditor identifier +------------------- -.. image:: batch_sdd/creditor-identifier.png - :align: center - :alt: Add a SEPA Creditor Identifier to Odoo Accounting +To enable |sdd| for customer payments, go to :menuselection:`Accounting --> Configuration --> +Settings`, scroll to the :guilabel:`Customer Payments` section, enable :guilabel:`SEPA Direct +Deposit (SDD)`, and click :guilabel:`Save`. Then, scroll to the :guilabel:`Customer Payments` +section again, set the company's :guilabel:`Creditor Identifier`, and click :guilabel:`Save`. + +.. tip:: + The creditor identifier is provided by your bank or the authority responsible for delivering + them in your country. For testing purposes, you can use the test creditor identifier + `DE98ZZZ09999999999`. + +PAIN file version +----------------- + +By default, the :ref:`SEPA-compliant XML files ` generated by Odoo +use the |sdd| **PAIN.008.001.02** format. If your bank requires the updated 2023 +version, go to :menuselection:`Accounting --> Configuration --> Journals` and select the +:guilabel:`Bank` journal. Then, in the :guilabel:`Incoming Payments` tab, set the :guilabel:`SEPA +Pain version` field to :guilabel:`Updated 2023 (Pain 008.001.08)`. + +.. seealso:: + `SEPA Direct Debit Core Customer-to-PSP Implementation Guidelines + `_. + +.. _accounting/batch_sdd/sdd_mandates: SEPA Direct Debit Mandates ========================== -Create a mandate ----------------- +An |sdd| mandate is a legal document authorizing a company to debit funds from a customer's bank +account. It includes key information, such as the customer's name and IBAN, the mandate's start +and end date, and the mandate's unique identifier. The mandate form must be filled in and signed by +the customer. -The :abbr:`SDD (sepa direct debit)` Mandate is the document that your customers sign to authorize -you to collect money directly from their bank accounts. - -To create a new mandate, go to :menuselection:`Accounting app --> Customers --> -Direct Debit Mandates`, on :guilabel:`Create`, and fill out the form. Export the PDF file by -clicking on :guilabel:`Print`. It is then up to your customer to sign this document. Once done, -upload the signed file and click on :guilabel:`Validate` to start running the mandate. - -.. important:: - Make sure that the **IBAN bank accounts details** are correctly recorded on the debtor’s contact - form, under the :guilabel:`Accounting` tab, and in your own :doc:`Bank Account <../bank>` settings. - -SEPA Direct Debit as a payment method -------------------------------------- - -SDD can be used as a payment method both on your **eCommerce** or on the **Customer Portal** by -activating SDD as a **Payment Provider**. With this method, your customers can create their mandates. -To ensure the validity of the information given by the customer, they will have to confirm each -mandate with one successful bank transfer of the expected amount. - -To do so, go to :menuselection:`Accounting app --> Configuration --> Payment Providers`, click on -:guilabel:`SEPA Direct Debit`. - -.. important:: - Make sure to change the :guilabel:`State` field to :guilabel:`Enabled` and set the provider as - "Published" so that it is available for your customers. - -Customers using SDD as payment method get prompted to add their IBAN, email address, and to sign -their SEPA Direct Debit mandate. - -.. todo:: - Add link to future **Payment Provider** documentation. - -Close or revoke a mandate -------------------------- - -Direct debit mandates are closed automatically after their :guilabel:`End Date`. If this field is -left blank, the mandate keeps being **Active** until it is **Closed** or **Revoked**. - -Clicking on :guilabel:`Close` updates the mandate’s end day to the current day. This means that -invoices issued after the present day will not be processed with an SDD payment. - -Clicking on :guilabel:`Revoke` disables the mandate immediately. No SDD payment can be registered -anymore, regardless of the invoice’s date. However, payments that have already been registered are -still included in the next SDD `.xml` file. - -.. warning:: - Once a mandate has been :guilabel:`closed` or :guilabel:`revoked`, it cannot be reactivated. - -Get paid with SEPA Direct Debit batch payments -============================================== - -Customer invoices +Creating mandates ----------------- -You can register SDD payments for invoices issued to customers who have an active SDD mandate. +To create an |sdd| mandate: -To do so, open the invoice, click on :guilabel:`Register Payment`, and choose -:guilabel:`SEPA Direct Debit` as payment method. +#. Go to :menuselection:`Accounting --> Customers --> Direct Debit Mandates`. +#. Click :guilabel:`New` and fill out the fields. +#. Click :guilabel:`Send & Print`, optionally edit the email, then click :guilabel:`Send & Print` + to email the mandate form to the customer for signature. +#. Click :guilabel:`Validate` to activate the mandate. -Generate SEPA Direct Debit `.XML` files to submit payments ----------------------------------------------------------- - -`.xml` files with all SDD payment instructions can be uploaded to your online banking interface -to process all payments at once. - -.. note:: - The files generated by Odoo follow the SEPA Direct Debit **PAIN.008.001.02** specifications, as - required by the SEPA customer-to-bank `implementation guidelines - `_, - which ensures compatibility with the banks. - -To generate your `.xml` file of multiple pending SDD payments, you can create a batch payment. -To do so, go to :menuselection:`Accounting app --> Customers --> Payments`, select the needed -payments, then click on :guilabel:`Action`, and finally :guilabel:`Create a batch Payment`. Once -you click on :guilabel:`Validate`, the `.xml` file is directly available for download. - -.. image:: batch_sdd/xml.png - :align: center - :alt: Generate an .XML file for your SDD payments in Odoo Accounting - -Finally, upload this file to your online banking interface to process the payments. +.. important:: + A valid IBAN must be defined in the :guilabel:`Account Number` field of the :doc:`bank journal + <../bank>` used to receive |sdd| payments for the mandate. .. tip:: - You can retrieve all the generated SDD `.xml` files by going to - :menuselection:`Accounting app --> Customers --> Batch Payments`. + - To print the mandate form after the mandate has been validated, click the :icon:`fa-cog` + (:guilabel:`gear`) icon, then select :guilabel:`Mandate form`. + - The :guilabel:`SDD Scheme` depends on the type of customer: Select :guilabel:`CORE` for B2C + customers and :guilabel:`B2B` for B2B customers. + - |sdd| mandates are created automatically for :doc:`online payments made with SDD + <../../payment_providers/sdd>`. + +Once an |sdd| mandate is active, subsequent |sdd| payments can be generated via Odoo and +:ref:`uploaded to your online banking interface `. Customers with an +active |sdd| mandate can also use this payment method for :doc:`online purchases +<../../payment_providers/sdd>`. + +Closing or revoking a mandate +----------------------------- + +|sdd| mandates are closed automatically after their :guilabel:`End Date`. If this field is +left empty, the mandate remains active until it is closed or revoked. To close or revoke a mandate, +go to :menuselection:`Accounting --> Customers --> Direct Debit Mandates`, select the relevant +mandate, and click :guilabel:`Close` or :guilabel:`Revoke`. + +**Closing** a mandate updates the mandate's end day to the current day. Invoices issued after the +present day will not be processed with an |sdd| payment. **Revoking** a mandate disables the +mandate immediately. No |sdd| payment can be registered anymore, regardless of the invoice's +date. However, payments that have already been registered are still included in the next :ref:`SDD +XML file `. + +.. warning:: + Closed or revoked mandates cannot be reactivated. + +.. _accounting/batch_sdd/XML: + +Processing |sdd| payments +========================= + +All registered |sdd| payments can be processed at once by uploading an XML file containing a batch +of all posted |sdd| payments to your online banking interface. To do so, follow these steps: + +#. :ref:`Create a batch payment ` and include the |sdd| payments to + collect. + + .. tip:: + You can filter payments by SDD scheme using the :guilabel:`SDD CORE` and :guilabel:`SDD B2B` + filters. + +#. :guilabel:`Validate` the batch payment. The XML file is generated automatically and available + for download in the chatter. +#. Download the XML file and upload it to your online banking interface to process the payments. +#. Once the |sdd| batch payment has been received, :doc:`reconcile the transaction + <../bank/reconciliation>` with the batch payment to mark the related invoices as + :guilabel:`Paid`. + +.. tip:: + - To view the payments and invoices linked to a specific |sdd| mandate, click the + :guilabel:`Collections` and :guilabel:`Invoices Paid` smart button on the :ref:`Direct Debit + Mandate ` form. + - Click :guilabel:`Re-generate Export file` to regenerate the XML file. .. seealso:: - * :doc:`batch` - * :doc:`../bank` - * `List of all SEPA countries - `_ - * `Sepa guidelines + - :doc:`batch` + - :doc:`SEPA Direct Debit for online payments <../../payment_providers/sdd>` + - `SEPA guidelines `_ + +|sdd| rejections +================ + +|sdd| rejections can occur for several reasons, the most common being insufficient funds in the +customer's account. With |sdd|, the recipient's account is credited before the funds are actually +debited from the customer's account. As a result, if an |sdd| payment is later rejected, the bank +automatically withdraws the amount of that payment from the recipient's account, and a new +transaction for a negative amount is created to reflect the |sdd| rejection. + +|sdd| rejections are handled differently depending on whether :ref:`outstanding accounts +` are configured or not for the |sdd| payment method. + +.. note:: + The following procedures assume that the incoming |sdd| payment's bank transaction has already + been :ref:`reconciled ` with the payments or invoices. + +.. tabs:: + + .. tab:: Without outstanding accounts + + If no :ref:`outstanding accounts ` are configured for + the |sdd| payment method, no journal entry is created. In this case, you must cancel and + unreconcile the payment. + + #. Access the invoice linked to the rejected |sdd| payment. + #. Click the :guilabel:`Payments` smart button to access the payment associated with the + invoice. + #. Click :guilabel:`Reset to draft`, then :guilabel:`Cancel`. + #. Go back to the invoice and click the :icon:`fa-info-circle` :guilabel:`(information)` icon + in the footer of the :guilabel:`Invoice Lines` tab, then click :guilabel:`Unreconcile`. + #. :ref:`Access the bank journal's reconciliation view ` and + :ref:`reconcile ` the transaction created for the + |sdd| rejection with the debit (negative journal item) to the account receivable on the + incoming bank transaction. + + .. tab:: Using outstanding accounts + + If an :ref:`outstanding account ` is set on the |sdd| + payment method, |sdd| payments create journal entries. If an |sdd| payment is rejected, you + must reverse the journal entry associated with the rejected payment and reconcile the reversal + of the journal entry with the transaction for the |sdd| rejection. To do so, follow these + steps: + + #. Access the invoice linked to the rejected |sdd| payment. + #. Click the :icon:`fa-info-circle` :guilabel:`(information)` icon in the footer of the + :guilabel:`Invoice Lines` tab, then click :guilabel:`View` to access the payment associated + with the invoice. + #. Click the :guilabel:`Journal entry` smart button to access the related journal entry. + #. Click :guilabel:`Reverse entry`, optionally edit the fields in the popup, then click + :guilabel:`Reverse`. A reversal entry is created with a :guilabel:`Reference` mentioning + the initial journal entry. As a result, the invoice is marked as :guilabel:`Not paid`. + #. :ref:`Access the bank journal's reconciliation view ` and + :ref:`reconcile ` the transaction created for the + |sdd| rejection with the reversal of the entry related to the payment. diff --git a/content/applications/finance/accounting/payments/batch_sdd/creditor-identifier.png b/content/applications/finance/accounting/payments/batch_sdd/creditor-identifier.png deleted file mode 100644 index 4689e201e..000000000 Binary files a/content/applications/finance/accounting/payments/batch_sdd/creditor-identifier.png and /dev/null differ diff --git a/content/applications/finance/accounting/payments/batch_sdd/xml.png b/content/applications/finance/accounting/payments/batch_sdd/xml.png deleted file mode 100644 index e03a23950..000000000 Binary files a/content/applications/finance/accounting/payments/batch_sdd/xml.png and /dev/null differ diff --git a/content/applications/finance/fiscal_localizations/united_kingdom.rst b/content/applications/finance/fiscal_localizations/united_kingdom.rst index ce4c8ede0..699ad1a8f 100644 --- a/content/applications/finance/fiscal_localizations/united_kingdom.rst +++ b/content/applications/finance/fiscal_localizations/united_kingdom.rst @@ -179,7 +179,7 @@ Bill payments ------------- To generate Bacs files for bill payments, set the :guilabel:`Payment Method` to -:guilabel:`BACS Direct Debit` when :ref:`registering vendor payments `. +:guilabel:`BACS Direct Debit` when :doc:`registering vendor payments <../accounting/payments>`. Then, create a vendor batch payment: @@ -200,6 +200,9 @@ Export File` if you need a new Bacs file for that batch payment. .. image:: united_kingdom/bacs-files.png :alt: Vendor Batch Payment view with generated BACS file. +.. seealso:: + :doc:`../accounting/payments/batch` + .. _localization/united-kingdom/invoice-payments: Invoice payments @@ -211,7 +214,7 @@ and click :guilabel:`New`. Select a :guilabel:`Customer`, their :guilabel:`IBAN` :guilabel:`Journal` you wish to use. To generate Bacs files for invoice payments, set the :guilabel:`Payment Method` to -:guilabel:`BACS Direct Debit` when :ref:`registering invoice payments `. +:guilabel:`BACS Direct Debit` when :doc:`registering invoice payments <../accounting/payments>`. .. tip:: If you register the payment for an invoice linked to a subscription or via diff --git a/content/applications/finance/payment_providers.rst b/content/applications/finance/payment_providers.rst index ae87c3cd6..4f8afd973 100644 --- a/content/applications/finance/payment_providers.rst +++ b/content/applications/finance/payment_providers.rst @@ -8,6 +8,7 @@ Online payments :titlesonly: payment_providers/wire_transfer + payment_providers/sdd payment_providers/adyen payment_providers/amazon_payment_services payment_providers/asiapay @@ -176,7 +177,7 @@ Bank payments - | :doc:`Wire Transfer ` | When selected, Odoo displays your payment information with a payment reference. You have to approve the payment manually once you have received it in your bank account. -- | :doc:`SEPA Direct Debit <../finance/accounting/payments/batch_sdd>` +- | :doc:`SEPA Direct Debit ` | Your customers can make a bank transfer to register a SEPA Direct Debit mandate and get their bank account charged directly. @@ -458,6 +459,7 @@ payments from other payments. .. seealso:: - :doc:`payment_providers/wire_transfer` + - :doc:`payment_providers/sdd` - :doc:`payment_providers/adyen` - :doc:`payment_providers/authorize` - :doc:`payment_providers/asiapay` diff --git a/content/applications/finance/payment_providers/sdd.rst b/content/applications/finance/payment_providers/sdd.rst new file mode 100644 index 000000000..61d17eab8 --- /dev/null +++ b/content/applications/finance/payment_providers/sdd.rst @@ -0,0 +1,75 @@ +================= +SEPA Direct Debit +================= + +.. |sdd| replace:: :abbr:`SDD (SEPA Direct Debit)` + +SEPA (Single Euro Payments Area) is a payment-integration initiative of the European Union that +facilitates standardized and simplified electronic payments in euros across participating countries. + +SEPA Direct Debit (SDD) is a payment provider that allows future payments to be collected from +customers' bank accounts based on a signed :ref:`SEPA Direct Debit mandate +`. This mandate authorizes the recipient to automatically +initiate one-time or :doc:`recurring ` payments using |sdd|. + +.. important:: + To use the SEPA Direct Debit (SDD) payment provider and create :ref:`SEPA Direct Debit mandates + `: + + - The invoice being paid must be for an amount in euros. + - The :guilabel:`SEPA Direct Deposit (SDD)` feature must be enabled, and the company's + :guilabel:`Creditor Identifier` must be defined in the :ref:`Accounting or Invoicing settings + `. + +To configure **SEPA Direct Debit**: + +#. :ref:`Navigate to the SEPA Direct Debit payment provider `. +#. In the :guilabel:`Configuration` tab, select whether the memo or :guilabel:`Communication` to be + displayed alongside the payment instructions should be: + + - :guilabel:`Based on Document Reference`: the sales order or invoice number + - :guilabel:`Based on Customer ID`: the customer identifier + +#. Select the :guilabel:`Enable QR codes` check box to activate QR code payments. + + .. note:: + :doc:`Additional accounting setup <../accounting/customer_invoices/epc_qr_code>` is required + to use QR codes. + +#. Edit the default payment instructions in the :guilabel:`Messages` tab to include your **bank + account number**. These instructions are displayed at the end of the checkout process on your + ecommerce website or on the customer portal. +#. Set the :guilabel:`State` field to :guilabel:`Enabled`. + +.. important:: + - Leave the :guilabel:`Currencies` field set to the default :guilabel:`EUR` tag to ensure |sdd| + is only available for payments in euros. + - The :guilabel:`Bank Account` defined for the :guilabel:`Payment Journal` must be a valid IBAN. + +.. tip:: + You can also test SEPA direct debit payments using the :ref:`payment_providers/test-mode`. + +.. seealso:: + :doc:`../payment_providers` + +Online payments with |sdd| +========================== + +Customers selecting |sdd| as a payment method are prompted to enter their IBAN to complete the +:ref:`SEPA Direct Debit mandate `. + +The |sdd| mandate is then automatically created in :guilabel:`Draft` based on the provided IBAN. To +validate the information, customers must confirm each new mandate with a successful bank transfer of +the expected amount **using the specified payment reference (communication)**. Once this initial +payment is received and reconciled, the mandate is automatically validated and updated to the +:guilabel:`Active` status. Once a mandate is active, it is reused for all subsequent payments made +with the |sdd| payment method. You can then collect them by :ref:`uploading them to your online +banking interface `. + +.. seealso:: + :doc:`../accounting/payments/batch_sdd` + +.. note:: + |sdd| is also available as a payment method through other providers, such as :doc:`stripe`, + :doc:`adyen`, and :doc:`buckaroo`. In these cases, |sdd| mandates are handled externally by the + payment provider. diff --git a/content/applications/finance/payment_providers/wire_transfer.rst b/content/applications/finance/payment_providers/wire_transfer.rst index 1df35dd45..8ea1395b1 100644 --- a/content/applications/finance/payment_providers/wire_transfer.rst +++ b/content/applications/finance/payment_providers/wire_transfer.rst @@ -2,25 +2,22 @@ Wire transfers ============== -The **Wire transfer** payment method allows you to provide payment instructions to your customers, -such as the bank details and communication. They are displayed: +The **Wire Transfer** payment method allows you to provide payment instructions to your customers, +such as your bank details and a reference to include with the payment. These instructions are +displayed after the customer selects :guilabel:`Wire Transfer` as the payment method and clicks the +:guilabel:`Pay now` button at the end of the checkout process on your ecommerce website or +on the customer portal. -- at the end of the checkout process, once the customer has selected :guilabel:`Wire transfer` as a - payment method and clicked the :guilabel:`Pay now` button: - - .. image:: wire_transfer/payment_instructions_checkout.png - :alt: Payment instructions at checkout - -- on the customer portal: - - .. image:: wire_transfer/payment_instructions_portal.png - :alt: Payment instructions on the customer portal +.. image:: wire_transfer/payment_instructions_portal.png + :scale: 80% + :alt: Payment instructions on the customer portal .. note:: - - While this method is very accessible and requires minimal setup, it is very inefficient - process-wise. We recommend setting up a :doc:`payment provider <../payment_providers>` instead. + - While this method is widely accessible and requires minimal setup, it is not efficient + process-wise. It is recommended to set up a :doc:`payment provider <../payment_providers>` + instead. - Online orders remain in the :guilabel:`Quotation sent` (i.e., unpaid order) stage until you - receive the payment and :guilabel:`Confirm` the order. + receive the payment and manually :guilabel:`Confirm` the order. .. tip:: **Wire transfer** can be used as a template for other payment methods that are processed @@ -29,26 +26,33 @@ such as the bank details and communication. They are displayed: Configuration ============= -To configure **Wire Transfer**, go to :menuselection:`Accounting / Website --> Configuration --> -Payment Providers`, and open the :guilabel:`Wire Transfer` card. Then, in the -:guilabel:`Configuration` tab: +To configure **Wire Transfer**: -- Select the :guilabel:`Communication` to be used; +#. :ref:`Navigate to the Wire Transfer payment provider `. +#. In the :guilabel:`Configuration` tab, select whether the memo or :guilabel:`Communication` to be + displayed alongside the payment instructions should be: - - :guilabel:`Based on Document Reference`: sales order or invoice number - - :guilabel:`Based on Customer ID`: customer identifier + - :guilabel:`Based on Document Reference`: the sales order or invoice number + - :guilabel:`Based on Customer ID`: the customer identifier -- Tick the :guilabel:`Enable QR codes` check box to activate :doc:`QR code payments - <../accounting/customer_invoices/epc_qr_code>`. +#. Enable :guilabel:`Enable QR codes` to activate QR code payments. -Define the payment instructions in the :guilabel:`Messages` tab: + .. note:: + :doc:`Additional accounting setup <../accounting/customer_invoices/epc_qr_code>` is required + to use QR codes. -.. image:: wire_transfer/payment_instructions.png - :alt: Define payment instructions +#. Define the payment instructions in the :guilabel:`Messages` tab. If :doc:`a bank account + <../accounting/bank>` has already been defined, the account number is automatically added to the + default message generated by Odoo. You can also add it afterward and update the message by + clicking :guilabel:`Reload pending message`. -If you have already defined :doc:`a bank account <../accounting/bank>`, the account number will be -automatically added to the default message generated by Odoo. You can also add it afterwards and -update the message by clicking :guilabel:`Reload pending message`. + .. image:: wire_transfer/payment_instructions.png + :alt: Define payment instructions + +#. Set the :guilabel:`State` field to :guilabel:`Enabled`. + +.. tip:: + You can also test wire transfers using the :ref:`payment_providers/test-mode`. .. seealso:: - :ref:`payment_providers/journal` + :doc:`../payment_providers` diff --git a/content/applications/finance/payment_providers/wire_transfer/payment_instructions.png b/content/applications/finance/payment_providers/wire_transfer/payment_instructions.png index feb3d5808..0bf63ff83 100644 Binary files a/content/applications/finance/payment_providers/wire_transfer/payment_instructions.png and b/content/applications/finance/payment_providers/wire_transfer/payment_instructions.png differ diff --git a/content/applications/finance/payment_providers/wire_transfer/payment_instructions_checkout.png b/content/applications/finance/payment_providers/wire_transfer/payment_instructions_checkout.png deleted file mode 100644 index 257066b00..000000000 Binary files a/content/applications/finance/payment_providers/wire_transfer/payment_instructions_checkout.png and /dev/null differ diff --git a/content/applications/finance/payment_providers/wire_transfer/payment_instructions_portal.png b/content/applications/finance/payment_providers/wire_transfer/payment_instructions_portal.png index 0884cc284..1c6cd480e 100644 Binary files a/content/applications/finance/payment_providers/wire_transfer/payment_instructions_portal.png and b/content/applications/finance/payment_providers/wire_transfer/payment_instructions_portal.png differ diff --git a/content/applications/sales/subscriptions.rst b/content/applications/sales/subscriptions.rst index 173cf7f54..15bb69f16 100644 --- a/content/applications/sales/subscriptions.rst +++ b/content/applications/sales/subscriptions.rst @@ -280,6 +280,10 @@ If an :guilabel:`Online signature` or :guilabel:`Online payment` is required to quotation, set the checkboxes next to either (or both) of these labels in the :guilabel:`Other Info` tab, under the :guilabel:`SALES` section. +.. seealso:: + - :doc:`/applications/finance/accounting/payments/online` + - :doc:`Payment providers and payment methods ` + .. toctree:: :titlesonly: @@ -291,4 +295,3 @@ tab, under the :guilabel:`SALES` section. subscriptions/automatic_alerts subscriptions/scheduled_actions subscriptions/reports - subscriptions/payment_providers diff --git a/content/applications/sales/subscriptions/payment_providers.rst b/content/applications/sales/subscriptions/payment_providers.rst deleted file mode 100644 index 5edbbe908..000000000 --- a/content/applications/sales/subscriptions/payment_providers.rst +++ /dev/null @@ -1,10 +0,0 @@ -:nosearch: - -================= -Payment providers -================= - -.. toctree:: - :titlesonly: - - payment_providers/wire_transfer diff --git a/content/applications/sales/subscriptions/payment_providers/wire_transfer.rst b/content/applications/sales/subscriptions/payment_providers/wire_transfer.rst deleted file mode 100644 index 680925731..000000000 --- a/content/applications/sales/subscriptions/payment_providers/wire_transfer.rst +++ /dev/null @@ -1,156 +0,0 @@ -============= -Wire transfer -============= - -The *wire transfer* payment method allows for payment instructions to be shared with a customer -after purchasing a product. With a subscription, these payment instructions are shared every time -the payment is renewed. - -.. note:: - The wire transfer payment method requires minimal setup, but in most cases, it is inefficient - compared to other online payment providers. It is recommended to use another payment provider - with subscriptions, due to wire transfers requiring manual confirmation for each payment. - -.. _subscriptions/wire-transfer-configuration: - -Configuration -============= - -To use the wire transfer payment method, first ensure the *Wire Transfer* payment method is enabled. - -To do so, begin by navigating to the *Payment Providers* page in either the **Accounting**, -**Website**, or **Sales** apps. - -For example, navigate to :menuselection:`Accounting app --> Configuration --> Online Payments: -Payment Providers`, then click the :guilabel:`Wire Transfer` card. - -.. tip:: - If the **Accounting** app is not installed, the *Payment Providers* page can also be reached by - navigating to :menuselection:`Website app --> Configuration --> eCommerce: Payment Providers`, or - :menuselection:`Sales app --> Configuration --> Online Payments: Payment Providers`. - -Next, set the :guilabel:`State` to :guilabel:`Enabled` to enable wire transfers. Use the drop-down -menus next to the :guilabel:`Company` and :guilabel:`Website` fields to set where wire transfers can -be used. - -The options in the :guilabel:`Configuration` tab can be used to customize the wire transfer. -Optionally tick the checkbox next to :guilabel:`Enable QR Codes` to enable the use of QR codes when -paying by wire transfer, if desired. - -Use the drop-down menu next to the :guilabel:`Communication` field to select the communication type -used on sales orders. Choose :guilabel:`Based on Document Reference` to use the sales order (or -invoice number), or :guilabel:`Based on Customer ID` to use the customer identifier. With either -method selected, communication is given to the customer, once they choose the wire transfer payment -method. - -The configuration options listed under the :guilabel:`Availability` section are used to set payment -restrictions, and are optional. Use the :guilabel:`Maximum Amount` field to set a maximum payment -value, the :guilabel:`Currencies` field to restrict any currencies from being used for payment, and -the :guilabel:`Countries` field to restrict payment from any particular countries, if desired. - -In the :guilabel:`Messages` tab, use the :guilabel:`Pending Message` field to add a message -containing wire transfer information. This message is displayed to the customer after confirming -their order, as well as if the order is marked as pending after the payment is processed. - -If :doc:`a bank account <../../../finance/accounting/bank>` has already been defined, the account -number is automatically added to the default message generated by Odoo. A bank account can also be -added afterwards, and the message updates with the appropriate bank information by clicking -:icon:`fa-refresh` :guilabel:`Reload pending message`. - -Once all necessary configuration settings are complete, the :icon:`fa-eye-slash` -:guilabel:`Unpublished` smart button located at the top of the page automatically changes to -:icon:`fa-globe` :guilabel:`Published` to show the wire transfer payment option is now visible -to customers. Only keep the payment method published if payments are ready to be received. - -.. tip:: - It is possible to keep the payment method enabled, but **not** visible to customers, until - payments are ready to be received. To do that, set the smart button to :icon:`fa-eye-slash` - :guilabel:`Unpublished` after setting the :guilabel:`State` to :guilabel:`Enabled`. - -.. image:: wire_transfer/wire-transfer-published.png - :align: center - :alt: The wire transfer card enabled and published. - -Test mode ---------- - -The wire transfer payment method can be tested before it is accessed by customers by selecting the -:guilabel:`Test Mode` option in the :guilabel:`State` field on the form. Upon selecting -:guilabel:`Test Mode`, an orange :guilabel:`Test mode` banner appears in the upper-right corner of -the form. - -Next, enter the credentials for a bank account with accessible transactions in the -:guilabel:`Messages` tab. To re-enable normal function after testing, change the :guilabel:`State` -setting to :guilabel:`Enabled`. - -.. note:: - By default, the payment provider remains :guilabel:`Unpublished` in :guilabel:`Test Mode`, so it - is not visible to visitors. - -.. warning:: - It is recommended to use the :guilabel:`Test Mode` setting on a duplicate (or test) database to - avoid potential issues with invoice numbering. - -.. _subscriptions/wire-transfer-payment: - -Pay by wire transfer -==================== - -With wire transfers :ref:`enabled and published `, -customers see wire transfers as an available payment method at checkout when purchasing a product. - -When this method is selected by a customer, they are shown the *Pending Message* set in the -:ref:`wire transfer configuration page `, after -confirming their purchase. Once the purchase is confirmed, a sales order is created. - -.. image:: wire_transfer/payment-instructions-checkout.png - :align: center - :alt: The wire transfer pending message shown to customers. - -.. important:: - Online orders remain in the *Quotation sent* (i.e. unpaid order) stage until both the payment is - received, *and* the order is confirmed manually, using the :guilabel:`Confirm` button on the - sales order. - -To begin processing the payment, navigate to :menuselection:`Sales app --> Orders --> Orders`, and -click the corresponding sales order. Ensure the sales order is correct, then click -:guilabel:`Confirm` to confirm the sales order. - -Next, click the new :guilabel:`Create Invoice` button, then choose :guilabel:`Regular invoice`, and -click :guilabel:`Create Draft Invoice`. A draft of the invoice appears. Click :guilabel:`Confirm` to -validate the invoice. - -To send this invoice to the customer, click the :guilabel:`Send & Print` button. A :guilabel:`Send` -pop-up window appears, with an email template configured, and a PDF invoice attached. - -Ensure the information is correct, then click :guilabel:`Send & Print`. The pop-up window -disappears, and the :guilabel:`Send & Print` button turns gray to show the invoice has been sent. - -.. tip:: - The default template for sending an invoice can be modified by navigating to - :menuselection:`Settings app --> Companies --> Email Templates --> Review All Templates --> - Invoice: Sending`. - -Next, click the :guilabel:`Register payment` button on the invoice page. A pop-up window titled, -:guilabel:`Register Payment`, appears with options for selecting the type of payment. In the -:guilabel:`Journal` field, select :guilabel:`Bank` from the drop-down menu. Next, set the -:guilabel:`Payment Method` to :guilabel:`Manual`. Ensure the :guilabel:`Amount` and -:guilabel:`Payment Date` are correct, then click the :guilabel:`Create Payment` button. - -.. image:: wire_transfer/register-payment.png - :align: center - :alt: The register payment pop-up window. - -The customer invoice is revealed with a green :guilabel:`In Payment` banner in the upper-right -corner. At this point, the flow is now complete. - -.. image:: wire_transfer/in-payment-banner.png - :align: center - :alt: The green in payment banner displayed on the invoice. - -.. note:: - If payment has been received before sending the invoice, such as in cash, the payment can still - be registered in Odoo by clicking the :guilabel:`Register Payment` button, and creating the - payment *before* clicking :guilabel:`Send & Print`. Now, when an invoice is sent using the - :guilabel:`Send & Print` button, a new line is automatically added to the invoice message, - stating the invoice is already paid. diff --git a/content/applications/sales/subscriptions/payment_providers/wire_transfer/in-payment-banner.png b/content/applications/sales/subscriptions/payment_providers/wire_transfer/in-payment-banner.png deleted file mode 100644 index f4dc27274..000000000 Binary files a/content/applications/sales/subscriptions/payment_providers/wire_transfer/in-payment-banner.png and /dev/null differ diff --git a/content/applications/sales/subscriptions/payment_providers/wire_transfer/payment-instructions-checkout.png b/content/applications/sales/subscriptions/payment_providers/wire_transfer/payment-instructions-checkout.png deleted file mode 100644 index 257066b00..000000000 Binary files a/content/applications/sales/subscriptions/payment_providers/wire_transfer/payment-instructions-checkout.png and /dev/null differ diff --git a/content/applications/sales/subscriptions/payment_providers/wire_transfer/register-payment.png b/content/applications/sales/subscriptions/payment_providers/wire_transfer/register-payment.png deleted file mode 100644 index 23589b640..000000000 Binary files a/content/applications/sales/subscriptions/payment_providers/wire_transfer/register-payment.png and /dev/null differ diff --git a/content/applications/sales/subscriptions/payment_providers/wire_transfer/wire-transfer-published.png b/content/applications/sales/subscriptions/payment_providers/wire_transfer/wire-transfer-published.png deleted file mode 100644 index 34045397e..000000000 Binary files a/content/applications/sales/subscriptions/payment_providers/wire_transfer/wire-transfer-published.png and /dev/null differ diff --git a/redirects/17.0.txt b/redirects/17.0.txt index eb11a34c7..4f9c1e94b 100644 --- a/redirects/17.0.txt +++ b/redirects/17.0.txt @@ -113,6 +113,8 @@ applications/sales/crm/acquire_leads/generate_leads.rst applications/sales/crm/a applications/sales/crm/pipeline/multi_sales_team.rst applications/sales/crm/pipeline/manage_sales_teams.rst # multi_sales_team --> manage_sales_teams applications/sales/point_of_sale/pricing/digital_labels.rst applications/sales/point_of_sale/pricing/electronic_labels.rst # digital_labels --> electronic_labels applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst applications/sales/point_of_sale/payment_methods/terminals.rst # terminals/vantiv --> terminals +applications/sales/subscriptions/payment_providers/wire_transfer.rst applications/finance/payment_providers/wire_transfer.rst +applications/sales/subscriptions/payment_providers/sdd.rst applications/finance/payment_providers/sdd.rst # applications/services