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 16 other modules. It exposes 150 fields, 144 of them declared directly on the model; 17 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 20 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_bancontact_pay, pos_discount, pos_event, pos_sale, pos_hr, pos_restaurant, pos_loyalty, pos_stock, pos_online_payment, pos_self_order, pos_online_payment_self_order, pos_self_order_bancontact_pay, pos_self_order_event, pos_sms
- Inherits from (mixins)
- pos.bus.mixinpos.load.mixin
hr.mixin
Model fields
144 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
150 of 150 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| access_token | Access Token | char | |
| active | Active | boolean | |
| adyen_ask_customer_for_tip | Ask Customers For Tip | boolean | added by POS Adyen ( |
| amount_authorized_diff | Amount 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_electronic_payment | Auto Validate Electronic Payment Automatically validates orders paid with an electronic payment (terminals, qr codes, ...). | boolean | |
| available_preset_ids | Available Presets | many2many | |
| available_pricelist_ids | Available 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_receipt | Gift Receipt Print gift ticket without prices. Can be used for gifts. | boolean | |
| cash_control | Advanced Cash Control Check the amount of the cashbox at opening and closing. | boolean | computed |
| cash_rounding | Total Rounding | boolean | |
| cashier_employee_ids | Employees with cashier level access Full register access. Can process sales, discounts, refunds, and close out payments. | many2many | added by POS - HR ( |
| closing_journal_id | Closing Journal Journal used specifically for PoS session closing and reverse entries | many2one | requiredcomputed, stored |
| company_has_template | Company has chart of accounts | boolean | computed |
| company_id | Company | many2one | required |
| crm_team_id | Sales Team This Point of sale's sales will be related to this Sales Team. | many2one→ crm.team | added by POS - Sales ( |
| currency_id | Currency | many2one | computed, stored |
| current_cash_register_balance | Cash Register | float | computed |
| current_session_id | Current Session | many2one | computed |
| current_session_state | Current Session State | char | computed |
| current_user_id | Current Session Responsible | many2one | computed |
| custom_email | char | ||
| custom_logo | Logo | image | |
| custom_logo_name | Logo Name | char | |
| custom_phone | Phone Nb | char | |
| custom_receipt_address | Address | char | |
| custom_website | Website | char | |
| customer_display_bg_img | Background Image | image | |
| customer_display_bg_img_name | Background Image Name | char | |
| default_bill_ids | Coins/Bills | many2many→ pos.bill | |
| default_fiscal_position_id | Default Fiscal Position | many2one | |
| default_partner_id | Default Customer The default customer used in PoS session closing | many2one | required |
| default_preset_id | Default Preset | many2one | |
| default_product_id | Default Product This product will be used as default product on productless SOLs. | many2one | required added by POS - Sales ( |
| default_screen | Default Screen | selection | Values: added by Restaurant ( |
| device_seq_id | Device Sequence | many2one | read-only |
| discount_pc | Discount Value The default discount value when clicking on the Discount button | float | added by Point of Sale Discounts ( |
| discount_product_id | Discount Product The product used to apply the discount on the ticket. | many2one | added by Point of Sale Discounts ( |
| down_payment_product_id | Down Payment Product This product will be used as down payment on a sale order. | many2one | required added by POS - Sales ( |
| Receipt email | char | computed, stored | |
| fallback_nomenclature_id | Fallback Nomenclature | many2one | |
| fast_payment_method_ids | Fast Payment Methods These payment methods will be available for fast payment | many2many | computed, stored |
| fiscal_position_ids | Fiscal Positions This is useful for restaurants with onsite and take-away services that imply specific tax rates. | many2many | |
| floor_ids | Restaurant Floors The restaurant floors served by this point of sale. | many2many | added by Restaurant ( |
| floor_plan | Floor Plan | json | computed added by Restaurant ( |
| floor_plan_settings | Floor Plan Settings | json | added by Restaurant ( |
| group_pos_manager_id | Point 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_id | Point 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_session | Has Active Session | boolean | computed |
| has_paper | Has paper | boolean | added by POS Self Order ( |
| iface_available_categ_ids | Available 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_scrollbars | Large Scrollbars For imprecise industrial touchscreens. | boolean | |
| iface_discount | Order Discounts Allow the cashier to give discounts on the whole order. | boolean | added by Point of Sale Discounts ( |
| iface_group_by_categ | Group products by categories Display products grouped by categories. | boolean | |
| iface_print_auto | Automatic Receipt Printing The receipt will automatically be printed at the end of each order. | boolean | |
| iface_printbill | Bill Printing Allows to print the Bill before payment. | boolean | |
| iface_tax_included | Tax Display | selection | required Values: |
| iface_tipproduct | Product tips | boolean | |
| is_installed_account_accountant | Is the Full Accounting Installed | boolean | computed |
| is_margins_costs_accessible_to_every_user | Margins & Costs When disabled, only PoS manager can view the margin and cost of product among the Product info. | boolean | |
| journal_id | Point of Sale Journal Journal used for customer invoices and refunds credit notes. | many2one | |
| kanban_dashboard_graph | Kanban Dashboard Graph | text | computed |
| last_data_change | Last Write Date | datetime | read-onlycomputed, stored |
| last_session_closing_date | Last Session Closing Date | date | computed |
| limit_categories | Restrict Categories | boolean | |
| logged_employee_ids | Logged Employee All employees who have logged into the current session | many2many | read-only related: added by POS - HR ( |
| logo | Receipt logo | image | computed, stored |
| manager_employee_ids | Employees with manager level access Full access, including reporting, cash management, and session close. | many2many | added by POS - HR ( |
| manual_discount | Line Discounts | boolean | |
| module_pos_appointment | Online Booking | boolean | |
| module_pos_avatax | AvaTax PoS Integration Use automatic taxes mapping with Avatax in PoS | boolean | |
| module_pos_discount | Global Discounts | boolean | |
| module_pos_hr | Module Pos Hr Show employee login screen | boolean | |
| module_pos_restaurant | Is a Bar/Restaurant | boolean | |
| module_pos_sms | SMS Enabled Activate SMS feature for point_of_sale | boolean | |
| name | Point of Sale An internal identification of the point of sale. | char | requiredtranslatable |
| note_ids | Note Models The predefined notes of this point of sale. | many2many→ pos.note | |
| only_round_cash_method | Only apply rounding on cash | boolean | |
| order_backend_seq_id | Order Backend Sequence | many2one | read-only |
| order_line_seq_id | Order Line Sequence | many2one | read-only |
| order_seq_id | Order Sequence | many2one | read-only |
| other_devices | Other Devices Connect printers to your PoS. | boolean | |
| payment_method_ids | Payment Methods | many2many | |
| phone | Receipt phone | char | computed, stored |
| picking_policy | Shipping 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: added by PoS - Stock ( |
| picking_type_id | Operation Type | many2one | required added by PoS - Stock ( |
| pos_session_duration | Pos Session Duration | char | computed |
| pos_session_state | Pos Session State | char | computed |
| pos_session_username | Pos Session Username | char | computed |
| pos_snooze_ids | Snoozed Records | one2many | inverse: |
| preparation_devices | Preparation devices Connect preparation printers to print to the bar, kitchen,... | boolean | |
| preparation_printer_ids | Preparation Printers | many2many | |
| pricelist_id | Default Pricelist The pricelist used if no customer is selected or if the customer has no Sale Pricelist configured if any. | many2one | |
| receipt_address | Receipt address | char | computed, stored |
| receipt_footer | Receipt Footer A short text that will be inserted as a footer in the printed receipt. | text | |
| receipt_header | Receipt Header A short text that will be inserted as a header in the printed receipt. | text | |
| receipt_printer_ids | Receipt Printers | many2many | |
| restrict_price_control | Restrict Price Modifications to Managers Only users with Manager access rights for PoS app can modify the product prices on orders. | boolean | |
| restrictive_employee_ids | Employees with restrictive level access Can process sales and close payments, but not apply discounts, refunds, or cancel orders. | many2many | added by POS - HR ( |
| rounding_method | Rounding Method | many2one | |
| route_id | Specific route for products delivered later. | many2one | added by PoS - Stock ( |
| self_order_online_payment_method_id | Self Online Payment The online payment method to use when a customer pays a self-order online. | many2one | added by POS Self-Order / Online Payment ( |
| self_ordering_available_language_ids | Available Languages Languages available for the kiosk mode | many2many→ res.lang | added by POS Self Order ( |
| self_ordering_default_language_id | Default Language Default language for the kiosk mode | many2one→ res.lang | added by POS Self Order ( |
| self_ordering_default_user_id | Default 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 ( |
| self_ordering_image_background_ids | Set background image Image to be displayed in the background | many2many | added by POS Self Order ( |
| self_ordering_image_brand | Self Order Kiosk Image Brand Image to display on the self order screen | image | added by POS Self Order ( |
| self_ordering_image_brand_name | Self Order Kiosk Image Brand Name Name of the image to display on the self order screen | char | added by POS Self Order ( |
| self_ordering_image_home_ids | Add Media Media items to display on the self order screen | many2many | added by POS Self Order ( |
| self_ordering_mode | Self Ordering Mode Choose the self ordering mode | selection | required Values: added by POS Self Order ( |
| self_ordering_pay_after | Pay After: Choose when the customer will pay | selection | required Values computed at runtime added by POS Self Order ( |
| self_ordering_primary_color | Color | char | added by POS Self Order ( |
| self_ordering_service_mode | Self Ordering Service Mode Choose the kiosk mode | selection | required Values: added by POS Self Order ( |
| self_ordering_url | Self Ordering Url | char | computed added by POS Self Order ( |
| session_closing_daily_hour | Daily Closing Hour The hour at which the session will be automatically closed when the closing mode is set to 'Daily'. | float | |
| session_closing_mode | Closing Mode | selection | read-only Values: |
| session_ids | Sessions | one2many | inverse: |
| set_maximum_difference | Set Maximum Difference Set a maximum difference allowed between the expected and counted money during the closing of the session. | boolean | |
| set_tip_after_payment | Set 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 | |
| ship_later | Ship Later | boolean | added by PoS - Stock ( |
| show_category_images | Show Category Images Show category images in the Point of Sale interface. | boolean | |
| show_product_images | Show Product Images Show product images in the Point of Sale interface. | boolean | |
| sms_receipt_template_id | Sms Receipt template SMS will be sent to the customer based on this template | many2one | added by POS - SMS ( |
| statistics_for_current_session | Session Statistics | json | computed |
| status | Status | selection | computed Values: added by POS Self Order ( |
| supervised_employee_ids | Employees with supervised level access Can process sales, but a higher level must approve before payment is closed | many2many | added by POS - HR ( |
| tax_regime_selection | Tax Regime Selection value | boolean | |
| tip_percentage_1 | Tip Percentage 1 | integer | |
| tip_percentage_2 | Tip Percentage 2 | integer | |
| tip_percentage_3 | Tip Percentage 3 | integer | |
| tip_product_id | Tip Product This product is used as reference on customer receipts. | many2one | |
| trusted_config_ids | Trusted Point of Sale Configurations | many2many | |
| use_closing_entry_by_product | Closing Entry by product Display the breakdown of sales lines by product in the automatically generated closing entry. | boolean | |
| use_course_allocation | Enable Course Allocation | boolean | added by Restaurant ( |
| use_custom_receipt_info | Customise info Fill in if your shop does not have the same info as your company | boolean | |
| use_download_invoice | Download Invoice Automatically download the invoice PDF when an order is invoiced. | boolean | |
| use_fast_payment | Fast Payment Validation Enable fast payment methods to validate orders on the product screen. | boolean | |
| use_header_or_footer | Custom Header & Footer | boolean | |
| use_order_printer | Order Printer | boolean | |
| use_presets | Use Presets | boolean | |
| use_pricelist | Use a pricelist. | boolean | |
| use_show_items_on_course_ticket | Show Items on Fired Course Ticket Show items again on the fired course ticket in preparation printer | boolean | added by Restaurant ( |
| uuid | Uuid A globally unique identifier for this pos configuration, used to prevent conflicts in client-generated data. | char | read-only |
| warehouse_id | Warehouse | many2one | computed, stored added by PoS - Stock ( |
| website | Receipt website | char | computed, stored |
| create_date | Created on | datetime | read-onlyautomatic |
| create_uid | Created by | many2one | read-onlyautomatic |
| display_name | Display Name | char | read-onlycomputedautomatic |
| id | ID | integer | read-onlyautomatic |
| write_date | Last Updated on | datetime | read-onlyautomatic |
| write_uid | Last Updated by | many2one | read-onlyautomatic |
Relations
Models linked from this model
- account.cash.rounding: rounding_method
- account.fiscal.position: default_fiscal_position_id, fiscal_position_ids
- account.journal: closing_journal_id, journal_id
- barcode.nomenclature: fallback_nomenclature_id
- crm.team: crm_team_id
- hr.employee: cashier_employee_ids, logged_employee_ids, manager_employee_ids, restrictive_employee_ids, supervised_employee_ids
- ir.attachment: self_ordering_image_background_ids, self_ordering_image_home_ids
- ir.sequence: device_seq_id, order_backend_seq_id, order_line_seq_id, order_seq_id
- pos.bill: default_bill_ids
- pos.category: iface_available_categ_ids
- pos.config: trusted_config_ids
- pos.note: note_ids
- pos.payment.method: fast_payment_method_ids, payment_method_ids, self_order_online_payment_method_id
- pos.preset: available_preset_ids, default_preset_id
- pos.printer: preparation_printer_ids, receipt_printer_ids
- pos.session: current_session_id, session_ids
- pos.snooze: pos_snooze_ids
- product.pricelist: available_pricelist_ids, pricelist_id
- product.product: default_product_id, discount_product_id, down_payment_product_id, tip_product_id
- res.company: company_id
- res.currency: currency_id
- res.groups: group_pos_manager_id, group_pos_user_id
- res.lang: self_ordering_available_language_ids, self_ordering_default_language_id
- res.partner: default_partner_id
- res.users: current_user_id, self_ordering_default_user_id
- restaurant.floor: floor_ids
- sms.template: sms_receipt_template_id
- stock.picking.type: picking_type_id
- stock.route: route_id
- stock.warehouse: warehouse_id
Fields of other models pointing here
- loyalty.program: pos_config_ids
- pos_self_order.custom_link: pos_config_ids
- pos.bill: pos_config_ids
- pos.category: pos_config_ids
- pos.config: trusted_config_ids
- pos.details.wizard: pos_config_ids
- pos.make.payment: config_id
- pos.order: config_id
- pos.payment.method: config_ids
- pos.price.inclusion.wizard: config_id
- pos.printer: pos_config_ids
- pos.session: config_id
- pos.snooze: pos_config_id
- report.pos.order: config_id
- res.config.settings: pos_config_id, pos_trusted_config_ids
- restaurant.floor: pos_config_ids
Reading this model through the API
Odoo 20 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 -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","closing_journal_id","company_id","default_partner_id","default_product_id"],"limit":5}'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","closing_journal_id","company_id","default_partner_id","default_product_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 20.0)</a>Sources
Data verified on September 25, 2026 · Odoo 20.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.