Odoo 19.0 Community · Persistent

pos.config: fields, relations and API

The pos.config model ("Point of Sale Configuration") is a persistent model declared by the Point of Sale module, then extended by 13 other modules. It exposes 130 fields, 124 of them declared directly on the model; 15 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.

Model identity

Technical name
pos.config
Label
Point of Sale Configuration
Type
Persistent (models.Model)
SQL table
pos_config
Origin module
Point of Sale (point_of_sale)
Extended by
l10n_fr_pos_cert, pos_adyen, pos_discount, pos_event, pos_sale, pos_hr, pos_restaurant, pos_loyalty, pos_online_payment, pos_self_order, pos_online_payment_self_order, pos_self_order_qfpay, pos_sms
Inherits from (mixins)
pos.bus.mixinpos.load.mixinhr.mixin

Model fields

124 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.

130 of 130 fields shown

Technical nameLabelTypeDetails
access_tokenAccess Tokenchar
activeActiveboolean
advanced_employee_idsEmployees with manager access

Employees linked to users with the PoS Manager role are automatically added to this list

many2many

added by POS - HR (pos_hr)

adyen_ask_customer_for_tipAsk Customers For Tipboolean

added by POS Adyen (pos_adyen)

amount_authorized_diffAmount Authorized Difference

This field depicts the maximum difference allowed between the ending balance and the theoretical cash when closing a session, for non-POS managers. If this maximum is reached, the user will have an error message at the closing of his session saying that he needs to contact his manager.

float
auto_validate_terminal_paymentAuto Validate Terminal Payment

Automatically validates orders paid with a payment terminal.

boolean
available_preset_idsAvailable Presetsmany2many
available_pricelist_idsAvailable Pricelists

Make several pricelists available in the Point of Sale. You can also apply a pricelist to specific customers from their contact form (in Sales tab). To be valid, this pricelist must be listed here as an available pricelist. Otherwise the default pricelist will apply.

many2many
basic_employee_idsEmployees with basic access

If left empty, all employees can log in to PoS

many2many

added by POS - HR (pos_hr)

basic_receiptBasic Receipt

Print basic ticket without prices. Can be used for gifts.

boolean
cash_controlAdvanced Cash Control

Check the amount of the cashbox at opening and closing.

boolean
computed
cash_roundingCash Roundingboolean
company_has_templateCompany has chart of accountsboolean
computed
company_idCompanymany2one
required
crm_team_idSales Team

This Point of sale's sales will be related to this Sales Team.

many2one

added by POS - Sales (pos_sale)

currency_idCurrencymany2one
computed, stored
current_session_idCurrent Sessionmany2one
computed
current_session_stateCurrent Session Statechar
computed
current_user_idCurrent Session Responsiblemany2one
computed
customer_display_bg_imgBackground Imageimage
customer_display_bg_img_nameBackground Image Namechar
default_bill_idsCoins/Billsmany2many
default_fiscal_position_idDefault Fiscal Positionmany2one
default_preset_idDefault Presetmany2one
default_screenDefault Screenselection

Values: tables (Tables), register (Register)

added by Restaurant (pos_restaurant)

device_seq_idDevice Sequencemany2one
read-only
discount_pcDiscount Percentage

The default discount percentage when clicking on the Discount button

float

added by Point of Sale Discounts (pos_discount)

discount_product_idDiscount Product

The product used to apply the discount on the ticket.

many2one

added by Point of Sale Discounts (pos_discount)

down_payment_product_idDown Payment Product

This product will be used as down payment on a sale order.

many2one

added by POS - Sales (pos_sale)

epson_printer_ipEpson Printer IP

Local IP address of an Epson receipt printer, or its serial number if the 'Automatic Certificate Update' option is enabled in the printer settings.

char
fallback_nomenclature_idFallback Nomenclaturemany2one
fast_payment_method_idsFast Payment Methods

These payment methods will be available for fast payment

many2many
computed, stored
fiscal_position_idsFiscal Positions

This is useful for restaurants with onsite and take-away services that imply specific tax rates.

many2many
floor_idsRestaurant Floors

The restaurant floors served by this point of sale.

many2many

added by Restaurant (pos_restaurant)

group_pos_manager_idPoint of Sale Manager Group

This field is there to pass the id of the pos manager group to the point of sale client.

many2one
group_pos_user_idPoint of Sale User Group

This field is there to pass the id of the pos user group to the point of sale client.

many2one
has_active_sessionHas Active Sessionboolean
computed
has_paperHas paperboolean

added by POS Self Order (pos_self_order)

iface_available_categ_idsAvailable PoS Product Categories

The point of sale will only display products which are within one of the selected category trees. If no category is specified, all available products will be shown

many2many
iface_big_scrollbarsLarge Scrollbars

For imprecise industrial touchscreens.

boolean
iface_cashdrawerCashdrawer

Automatically open the cashdrawer.

boolean
iface_discountOrder Discounts

Allow the cashier to give discounts on the whole order.

boolean

added by Point of Sale Discounts (pos_discount)

iface_electronic_scaleElectronic Scale

Enables Electronic Scale integration.

boolean
iface_group_by_categGroup products by categories

Display products grouped by categories.

boolean
iface_print_autoAutomatic Receipt Printing

The receipt will automatically be printed at the end of each order.

boolean
iface_print_skip_screenSkip Preview Screen

The receipt screen will be skipped if the receipt can be printed automatically.

boolean
iface_print_via_proxyPrint via Proxy

Bypass browser printing and prints via the hardware proxy.

boolean
iface_printbillBill Printing

Allows to print the Bill before payment.

boolean

added by Restaurant (pos_restaurant)

iface_scan_via_proxyScan via Proxy

Enable barcode scanning with a remotely connected barcode scanner and card swiping with a Vantiv card reader.

boolean
iface_splitbillBill Splitting

Enables Bill Splitting in the Point of Sale.

boolean

added by Restaurant (pos_restaurant)

iface_tax_includedTax Displayselection
required

Values: subtotal (Tax-Excluded Price), total (Tax-Included Price)

iface_tipproductProduct tipsboolean
invoice_journal_idInvoice Journal

Accounting journal used to create invoices.

many2one
is_closing_entry_by_productClosing Entry by product

Display the breakdown of sales lines by product in the automatically generated closing entry.

boolean
is_installed_account_accountantIs the Full Accounting Installedboolean
computed
is_margins_costs_accessible_to_every_userMargins & Costs

When disabled, only PoS manager can view the margin and cost of product among the Product info.

boolean
is_order_printerOrder Printerboolean
is_posboxPosBoxboolean
journal_idPoint of Sale Journal

Accounting journal used to post POS session journal entries and POS invoice payments.

many2one
last_data_changeLast Write Datedatetime
read-onlycomputed, stored
last_session_closing_cashLast Session Closing Cashfloat
computed
last_session_closing_dateLast Session Closing Datedate
computed
limit_categoriesRestrict Categoriesboolean
manual_discountLine Discountsboolean
minimal_employee_idsEmployees with minimal access

If left empty, all employees can log in to PoS

many2many

added by POS - HR (pos_hr)

module_pos_appointmentOnline Bookingboolean
module_pos_avataxAvaTax PoS Integration

Use automatic taxes mapping with Avatax in PoS

boolean
module_pos_discountGlobal Discountsboolean
module_pos_hrModule Pos Hr

Show employee login screen

boolean
module_pos_restaurantIs a Bar/Restaurantboolean
module_pos_smsSMS Enabled

Activate SMS feature for point_of_sale

boolean
namePoint of Sale

An internal identification of the point of sale.

char
required
note_idsNote Models

The predefined notes of this point of sale.

many2many
number_of_rescue_sessionNumber of Rescue Sessioninteger
computed
only_round_cash_methodOnly apply rounding on cashboolean
order_backend_seq_idOrder Backend Sequencemany2one
read-only
order_edit_trackingTrack orders edits

Store edited orders in the backend

boolean
order_line_seq_idOrder Line Sequencemany2one
read-only
order_seq_idOrder Sequencemany2one
read-only
other_devicesOther Devices

Connect devices to your PoS without an IoT Box.

boolean
payment_method_idsPayment Methodsmany2many
picking_policyShipping Policy

If you deliver all products at once, the delivery order will be scheduled based on the greatest product lead time. Otherwise, it will be based on the shortest.

selection
required

Values: direct (As soon as possible), one (When all products are ready)

picking_type_idOperation Typemany2one
required
pos_session_durationPos Session Durationchar
computed
pos_session_statePos Session Statechar
computed
pos_session_usernamePos Session Usernamechar
computed
pricelist_idDefault Pricelist

The pricelist used if no customer is selected or if the customer has no Sale Pricelist configured if any.

many2one
printer_idsOrder Printersmany2many
proxy_ipIP Address

The hostname or ip address of the hardware proxy, Will be autodetected if left empty.

char
receipt_headerReceipt Header

A short text that will be inserted as a header in the printed receipt.

text
restrict_price_controlRestrict Price Modifications to Managers

Only users with Manager access rights for PoS app can modify the product prices on orders.

boolean
rounding_methodCash roundingmany2one
route_idSpefic route for products delivered later.many2one
self_order_online_payment_method_idSelf Online Payment

The online payment method to use when a customer pays a self-order online.

many2one

added by POS Self-Order / Online Payment (pos_online_payment_self_order)

self_ordering_available_language_idsAvailable Languages

Languages available for the kiosk mode

many2many

added by POS Self Order (pos_self_order)

self_ordering_default_language_idDefault Language

Default language for the kiosk mode

many2one

added by POS Self Order (pos_self_order)

self_ordering_default_user_idDefault User

Access rights of this user will be used when visiting self order website when no session is open.

many2one

added by POS Self Order (pos_self_order)

self_ordering_image_background_idsSet background image

Image to be displayed in the background

many2many

added by POS Self Order (pos_self_order)

self_ordering_image_brandSelf Order Kiosk Image Brand

Image to display on the self order screen

image

added by POS Self Order (pos_self_order)

self_ordering_image_brand_nameSelf Order Kiosk Image Brand Name

Name of the image to display on the self order screen

char

added by POS Self Order (pos_self_order)

self_ordering_image_home_idsAdd images

Image to display on the self order screen

many2many

added by POS Self Order (pos_self_order)

self_ordering_modeSelf Ordering Mode

Choose the self ordering mode

selection
required

Values: nothing (Disable), consultation (QR menu), mobile (QR menu + Ordering), kiosk (Kiosk)

added by POS Self Order (pos_self_order)

self_ordering_pay_afterPay After:

Choose when the customer will pay

selection
required

Values computed at runtime

added by POS Self Order (pos_self_order)

self_ordering_service_modeSelf Ordering Service Mode

Choose the kiosk mode

selection
required

Values: counter (Pickup zone), table (Table)

added by POS Self Order (pos_self_order)

self_ordering_urlSelf Ordering Urlchar
computed

added by POS Self Order (pos_self_order)

session_idsSessionsone2many

inverse: config_id

set_maximum_differenceSet Maximum Difference

Set a maximum difference allowed between the expected and counted money during the closing of the session.

boolean
set_tip_after_paymentSet Tip After Payment

Adjust the amount authorized by payment terminals to add a tip after the customers left or at the end of the day.

boolean

added by Restaurant (pos_restaurant)

ship_laterShip Laterboolean
show_category_imagesShow Category Images

Show category images in the Point of Sale interface.

boolean
show_product_imagesShow Product Images

Show product images in the Point of Sale interface.

boolean
sms_receipt_template_idSms Receipt template

SMS will be sent to the customer based on this template

many2one

added by POS - SMS (pos_sms)

statistics_for_current_sessionSession Statisticsjson
computed
statusStatusselection
computed

Values: inactive (Inactive), active (Active)

added by POS Self Order (pos_self_order)

tax_regime_selectionTax Regime Selection valueboolean
tip_product_idTip Product

This product is used as reference on customer receipts.

many2one
trusted_config_idsTrusted Point of Sale Configurationsmany2many
use_fast_paymentFast Payment Validation

Enable fast payment methods to validate orders on the product screen.

boolean
use_presetsUse Presetsboolean
use_pricelistUse a pricelist.boolean
uuidUuid

A globally unique identifier for this pos configuration, used to prevent conflicts in client-generated data.

char
read-only
warehouse_idWarehousemany2one
computed, stored
create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

Reading this model through the API

Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.

curl
curl -X POST "https://your-instance.odoo.com/json/2/pos.config/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["name","company_id","iface_tax_included","picking_policy","picking_type_id"],"limit":5}'
Python (requests)
import requests

BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}

res = requests.post(
    f"{BASE_URL}/pos.config/search_read",
    headers=headers,
    json={"domain": [], "fields": ["name","company_id","iface_tax_included","picking_policy","picking_type_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())
  • External API access requires Odoo's Custom plan.
  • XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
  • The access rights and record rules of the key's user apply.

Cite this tool

Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.

<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/pos-config">pos.config (Odoo 19.0)</a>

Sources

Data verified on September 23, 2026 · Odoo 19.0 Community

Have an Odoo project, or want to put your ERP to work with AI? Let's talk

Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.