OdooWiki OCA HUB

POS: Caisse-AP payment protocol for France

l10n_fr_pos_caisse_ap_ip folder_open OCA/l10n-france open_in_new
Point of Sale License: AGPL-3

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.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Adds a Caisse-AP over IP payment terminal option to Odoo Point of Sale, letting cashiers send the amount to a French payment terminal and receive the payment result automatically.

This module adds a new payment terminal type called "Caisse AP over IP (France only)" to Point of Sale payment methods. When configuring a payment method, you can choose this terminal type and fill in the terminal's IP address or DNS name, its TCP port (default 8888), and the payment mode (card or check). The address and port are required and validated; the port must be between 1 and 65535.

During a sale, when the cashier selects this payment method and starts the payment, Odoo sends the amount to the terminal over the network and waits for the terminal's answer. The payment line shows a waiting status while the terminal is processing. If the terminal approves, the payment is marked successful and the card type and transaction reference are stored on the payment line; a ticket line may also be added to the receipt. If the terminal declines, an error message is shown. If the terminal cannot be reached or the answer is unclear, the cashier sees an error and can handle the payment manually.

The module also checks that the amount is not zero and not too large, and it supports both payments and reimbursements. It works with the pos.payment.method model and adds fields to the payment method form in the Point of Sale configuration.

Depends on

point_of_sale
Models and fields (1)
  • pos.payment.method · extends an existing modelfr_caisse_ap_ip_mode (Payment Mode), fr_caisse_ap_ip_port (Caisse-AP Payment Terminal Port), fr_caisse_ap_ip_address (Caisse-AP Payment Terminal IP Address)

Text generated by AI (DeepSeek) from reading the Odoo 19.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: 5 confirmed, 4 with no information of 9 versions.

Sources · Odoo 14.0

Confirmed on 2026-11-03 in branch 14.0 of OCA/l10n-france.

terminal Installation and usage

OCA documentation · Odoo 19.0

In the menu Point of sale \> Configuration \> Payment Methods, 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 journal, otherwise the field Integrate with is invisible)
  • field Integration: selection Terminal
  • field Integrate with: 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)

No verified information in OCA: Installation, Usage.

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.