From efedf12ded4bd4b2a42c19ed666d0678b8a62215 Mon Sep 17 00:00:00 2001 From: "Xavier (XPL)" Date: Mon, 10 Jul 2023 09:50:36 +0000 Subject: [PATCH] [IMP] payments: clarify authorize.net statement import steps task-2382237 closes odoo/documentation#5072 X-original-commit: cd2bc63b22a7497c10e2a91e007a9b723015eb9c Signed-off-by: Xavier Platteau (xpl) --- .../finance/payment_acquirers/authorize.rst | 111 ++++++++++++++++-- 1 file changed, 103 insertions(+), 8 deletions(-) diff --git a/content/applications/finance/payment_acquirers/authorize.rst b/content/applications/finance/payment_acquirers/authorize.rst index 0ec3dcf3e..fa5d1a444 100644 --- a/content/applications/finance/payment_acquirers/authorize.rst +++ b/content/applications/finance/payment_acquirers/authorize.rst @@ -28,13 +28,11 @@ To retrieve them, log into your Authorize.Net account, go to :menuselection:`Acc Key**. .. important:: - If you are trying Authorize.Net as a test, with a *sandbox account*, change the :guilabel:`State` - to :guilabel:`Test Mode`. We recommend doing this on a test Odoo database, rather than on your - main database. + To test Authorize.Net with a *sandbox* account, change the :guilabel:`State` to :guilabel:`Test + Mode`. We recommend doing this on a test Odoo database, rather than on your main database. - If you set :guilabel:`Test Mode` on Odoo and use an authorize.net account instead of a - sandbox.authorize.net account, it results in the following error: *The merchant login ID or - password is invalid or the account is inactive*. + If you use the :guilabel:`Test Mode` with a regular account, it results in the following error: + *The merchant login ID or password is invalid or the account is inactive*. Configuration tab ----------------- @@ -42,12 +40,12 @@ Configuration tab Place a hold on a card ~~~~~~~~~~~~~~~~~~~~~~ -With Authorize.net, you can enable the :ref:`manual capture +With Authorize.Net, you can enable the :ref:`manual capture `. If enabled, the funds are reserved for 30 days on the customer's card, but not charged yet. .. warning:: - After **30 days**, the transaction is **voided automatically** by Authorize.net. + After **30 days**, the transaction is **voided automatically** by Authorize.Net. Authorize.Net statement export ============================== @@ -135,3 +133,100 @@ the file saved as .CSV, and upload it into Odoo. .. seealso:: - :doc:`../payment_acquirers` + +Import an Authorize.Net statement +================================= + +Export from Authorize.Net +------------------------- + +.. _authorize-import-template: + +.. admonition:: Template + + `Download the Excel import template `_ + +To export a statement: + +- Log in to Authorize.Net. +- Go to :menuselection:`Account --> Statements --> eCheck.Net Settlement Statement`. +- Define an export range using an *opening* and *closing* batch settlement. All transactions within + the two batch settlements will be exported to Odoo. +- Select all transactions within the desired range, copy them, and paste them into the + :guilabel:`Report 1 Download` sheet of the :ref:`Excel import template + `. + +.. image:: authorize/authorize-report1.png + :alt: Selecting Authorize.Net transactions to import + +.. example:: + + .. image:: authorize/authorize-settlement-batch.png + :align: center + :alt: Settlement batch of an Authorize.Net statement + + In this case, the first batch (01/01/2021) of the year belongs to the settlement of 12/31/2020, + so the **opening** settlement is from 12/31/2020. + +Once the data is in the :guilabel:`Report 1 Download` sheet: + +- Go to the :guilabel:`Transaction Search` tab on Authorize.Net. +- Under the :guilabel:`Settlement Date` section, select the previously used range of batch + settlement dates in the :guilabel:`From:` and :guilabel:`To:` fields and click :guilabel:`Search`. +- When the list has been generated, click :guilabel:`Download to File`. +- In the pop-up window, select :guilabel:`Expanded Fields with CAVV Response/Comma Separated`, + enable :guilabel:`Include Column Headings`, and click :guilabel:`Submit`. +- Open the text file, select :guilabel:`All`, copy the data, and paste it into the :guilabel:`Report + 2 Download` sheet of the :ref:`Excel import template `. +- Transit lines are automatically filled in and updated in the :guilabel:`transit for report 1` and + :guilabel:`transit for report 2` sheets of the :ref:`Excel import template + `. Make sure all entries are present, and **if not**, copy the formula + from previously filled-in lines of the :guilabel:`transit for report 1` or :guilabel:`2` sheets + and paste it into the empty lines. + +.. important:: + To get the correct closing balance, **do not remove** any line from the Excel sheets. + +Import into Odoo +---------------- + +To import the data into Odoo: + +- Open the :ref:`Excel import template `. +- Copy the data from the :guilabel:`transit for report 2` sheet and use *paste special* to only + paste the values in the :guilabel:`Odoo Import to CSV` sheet. +- Look for *blue* cells in the :guilabel:`Odoo Import to CSV` sheet. These are chargeback entries + without any reference number. As they cannot be imported as such, go to + :menuselection:`Authorize.Net --> Account --> Statements --> eCheck.Net Settlement Statement`. +- Look for :guilabel:`Charge Transaction/Chargeback`, and click it. +- Copy the invoice description, paste it into the :guilabel:`Label` cell of the :guilabel:`Odoo + Import to CSV` sheet, and add `Chargeback /` before the description. +- If there are multiple invoices, add a line into the :ref:`Excel import template + ` for each invoice and copy/paste the description into each respective + :guilabel:`Label` line. + +.. note:: + For **combined chargeback/returns** in the payouts, create a new line in the :ref:`Excel import + template ` for each invoice. + +.. example:: + + .. image:: authorize/authorize-chargeback-desc.png + :alt: Chargeback description + +- Next, delete *zero transaction* and *void transaction* line items, and change the format + of the :guilabel:`Amount` column in the :guilabel:`Odoo Import to CSV` sheet to *Number*. +- Go back to :menuselection:`eCheck.Net Settlement Statement --> Search for a Transaction` and + search again for the previously used batch settlements dates. +- Verify that the batch settlement dates on eCheck.Net match the related payments' dates found in + the :guilabel:`Date` column of the :guilabel:`Odoo Import to CSV`. +- If it does not match, replace the date with the one from eCheck.Net. Sort the column by *date*, + and make sure the format is `MM/DD/YYYY`. +- Copy the data - column headings included - from the :guilabel:`Odoo Import to CSV` sheet, paste + it into a new Excel file, and save it using the CSV format. +- Open the Accounting app, go to :menuselection:`Configuration --> Journals`, tick the + :guilabel:`Authorize.Net` box, and click :menuselection:`Favorites --> Import records --> Load + file`. Select the CSV file and upload it into Odoo. + +.. tip:: + List of `eCheck.Net return codes `_