+
POS: Caisse-AP payment protocol for France
+
+
+

+
This module adds support for the Caisse AP protocol over IP in the
+Odoo Point of Sale.
+
The Caisse AP
+protocol
+is a vendor-independent protocol used in France to communicate between a
+point of sale and a payment terminal. It is implemented by
+Ingenico
+payment terminals, Verifone payment
+terminal and other brands of payment terminals. This protocol is
+designed by a French association called Association du
+paiement, abbreviated as
+AP. Note that the Caisse-AP protocol is used by Ingenico payment
+terminals deployed in France, but not by the same model of Ingenico
+payment terminals deployed in other countries!
+
This module support a bi-directionnal link with the payment terminal:
+
+- it sends the amount to the payment terminal
+- it waits for the end of the payment transaction
+- it parses the answer of the payment terminal which gives the payment
+status: in case of success, the payment line is automatically
+validated ; in case of failure, an error message is displayed and the
+Odoo user can retry or delete the payment line.
+
+
The Caisse-AP protocol was initially written for serial and USB. Since
+the Caisse AP protocol version 3.x, it also supports IP. When used over
+IP, the client (point of sale) and the server (payment terminal)
+exchange simple text data encoded as ASCII over a raw TCP socket.
+
The Caisse-AP protocol has one important drawback: as it uses a raw TCP
+socket, it cannot be used from pure JS code. So the JS code of the point
+of sale cannot generate the query to send the amount to the payment
+terminal by itself. In this module, the JS code of the point of sale
+sends a query to the Odoo server that opens a raw TCP socket to the
+payment terminal. It implies that, if the Odoo server is not on the LAN
+but somewhere on the Internet and the payment terminal has a private IP
+on the LAN, you will need to setup a TCP port forwarding rule on the
+firewall to redirect the TCP connection of the Odoo server to the
+payment terminal.
+
Table of contents
+
+
+
+
In the menu Point of sale > Configuration > Payment Method, on the
+payment method that correspond to a payment by card:
+
+- select the appropriate journal, which should be a bank journal (and
+not a cash journa, otherwise the field Use a payment terminal is
+invisible)
+- field Use a payment terminal: select Caisse AP over IP (France
+only)
+- field Caisse-AP Payment Terminal IP Address: set the IP address of
+the payment terminal,
+- field Caisse-AP Payment Terminal Port: set the TCP port of the
+payment terminal (8888 by default),
+- field Payment Mode: set Card (the value Check is for the
+Check payment method if you use a check printer connected to the
+payment terminal such as Ingenico i2200)
+
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us to smash it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
The development of this module has been financially supported by
+Camptocamp.
+
+
+
+
This module is maintained by the OCA.
+

+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
Current maintainer:
+

+
This module is part of the OCA/l10n-france project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/l10n_fr_pos_caisse_ap_ip/static/src/app/payment_caisse_ap_ip.esm.js b/l10n_fr_pos_caisse_ap_ip/static/src/app/payment_caisse_ap_ip.esm.js
new file mode 100644
index 000000000..b70ce963b
--- /dev/null
+++ b/l10n_fr_pos_caisse_ap_ip/static/src/app/payment_caisse_ap_ip.esm.js
@@ -0,0 +1,91 @@
+/** @odoo-module */
+/*
+ Copyright 2023 Akretion France (http://www.akretion.com/)
+ @author: Alexis de Lattre