OdooWiki OCA HUB

Account Payment Terminal

account_payment_terminal folder_open OCA/account-payment open_in_new
Uncategorised License: AGPL-3

This addon allows to pay invoices using a payment terminal. It communicates with the payment terminal proxy using the same protocol as OCA pos_payment_terminal.

auto_awesome What this module does

AI-generated from the code · Odoo 14.0

Lets you pay invoices with a physical card payment terminal. Configure terminals and journals, then start a card transaction directly from the payment registration screen.

This module connects Odoo to a card payment terminal through a hardware proxy, so you can take card payments while registering invoice payments.

  • Configure terminals under Accounting > Configuration > Payment Terminals: give each one a name, the IP address of the proxy, and optionally the terminal identifier used by the proxy.
  • On each accounting journal, choose "OCA Payment Terminal" in the new "Use a Payment Terminal" field to mark that journal as terminal-based.
  • When you register a payment and pick such a journal, a "Payment Terminal" field appears and becomes required. The normal "Create Payment" button is hidden and replaced by a "Create Payment" button that starts the terminal transaction.
  • A pop-up asks you to check the terminal. The amount, currency and payment reference are sent to the terminal; the screen polls the proxy and shows "Payment Successful" or "Transaction cancelled". On success, the payment is created in Odoo with the terminal reference as the communication.
  • If the terminal or journal is not correctly configured, an error message tells you to contact your administrator.

Only accounting managers can create or change terminals; other accounting users can only view them.

Depends on

account
Models and fields (4)
  • account.journal · extends an existing modeluse_payment_terminal (Use a Payment Terminal)
  • account.payment.register · new modelneed_payment_terminal
  • account.payment.terminal · new modelname, proxy_ip (IP Address), oca_payment_terminal_id (Terminal identifier)
  • oca.payment.terminal.form.mixin · new modelaccount_payment_terminal_id (Payment Terminal)

Text generated by AI (DeepSeek) from reading the Odoo 14.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 14.0

Confirmed on 2026-11-03 in branch 14.0 of OCA/account-payment.

terminal Installation and usage

OCA documentation · Odoo 14.0

To configure a bank journal as allowed to use payment terminals:

  • Go to the menu Invoicing > Configuration > Journals.
  • Select or create a new bank journal.
  • Set the field 'Use a Payment Terminal' to your terminal type.

Now you should create the payment terminals:

  • Go to the menu Invoicing > Configuration > Payment terminals.
  • Create a new terminal by setting:
  • The hostname or ip address of the hardware proxy.
  • The identifier of the terminal as known by the hardware proxy (Leave empty if the proxy has only one terminal connected).
  • Go to Invoicing > Customers > Invoices and select an open invoice.
  • Register a payment.
  • Select the bank journal configured to use payment terminals.
  • Select a terminal.
  • Confirm.

You can test the flow using the mock terminal of pywebdriver project (an alternative to the POSbox/IoTbox).

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.