stock.picking: fields, relations and API
The stock.picking model ("Transfer") is a persistent model declared by the Inventory module, then extended by 21 other modules. It exposes 120 fields, 90 of them declared directly on the model; 22 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
stock.picking- Label
- Transfer
- Type
- Persistent (models.Model)
- SQL table
stock_picking- Origin module
- Inventory (
stock) - Extended by
- stock_account, sale_stock, stock_delivery, stock_picking_batch, delivery_stock_picking_batch, point_of_sale, mrp, purchase_stock, product_expiry, repair, mrp_subcontracting, stock_dropshipping, mrp_subcontracting_dropshipping, mrp_subcontracting_purchase, pos_sale, pos_repair, project_stock, sale_project_stock, stock_fleet, stock_sms, website_sale_stock
- Default order (_order)
priority desc, scheduled_date asc, id desc- Inherits from (mixins)
- mail.threadmail.activity.mixin
Model fields
90 own fields, 24 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
120 of 120 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| allowed_carrier_ids | Allowed Carrier | many2many | computed added by Delivery - Stock ( |
| backorder_id | Back Order of If this shipment was split, then this field links to the shipment which contains the already processed part. | many2one | read-only |
| backorder_ids | Back Orders | one2many | inverse: |
| batch_id | Batch Transfer Batch associated to this transfer | many2one | added by Warehouse Management: Batch Transfer ( |
| batch_sequence | Sequence | integer | added by Warehouse Management: Batch Transfer ( |
| carrier_id | Carrier | many2one | added by Delivery - Stock ( |
| carrier_price | Shipping Cost | float | added by Delivery - Stock ( |
| carrier_tracking_ref | Tracking Reference | char | added by Delivery - Stock ( |
| carrier_tracking_url | Tracking URL | char | computed added by Delivery - Stock ( |
| company_id | Company | many2one | read-only related: |
| country_code | Country Code | char | related: added by WMS Accounting ( |
| date_deadline | Deadline In case of outgoing flow, validate the transfer before this date to allow to deliver at promised date to the customer. In case of incoming flow, validate the transfer before this date in order to have these products in stock at the date promised by the supplier | datetime | computed, stored |
| date_done | Date of Transfer Date at which the transfer has been processed or cancelled. | datetime | |
| days_to_arrive | Days To Arrive | datetime | computed added by Purchase Stock ( |
| delay_alert_date | Delay Alert Date | datetime | computed |
| delay_pass | Delay Pass | datetime | computed added by Purchase Stock ( |
| delivery_type | Delivery Type | selection | read-only related: added by Delivery - Stock ( |
| destination_country_code | Destination Country | char | related: added by Delivery - Stock ( |
| has_deadline_issue | Is late Is late or will be late depending on the deadline and scheduled date | boolean | computed, stored |
| has_kits | Has Kits | boolean | computed added by Manufacturing ( |
| has_scrap_move | Has Scrap Moves | boolean | computed |
| has_tracking | Has Tracking | boolean | computed |
| integration_level | Integration Level | selection | related: added by Delivery - Stock ( |
| is_date_editable | Is Scheduled Date Editable | boolean | computed |
| is_dropship | Is a Dropship | boolean | computed added by Drop Shipping ( |
| is_locked | Is Locked When the picking is not done this allows changing the initial demand. When the picking is done this allows changing the done quantities. | boolean | |
| is_return_picking | Is Return Picking | boolean | computed added by Delivery - Stock ( |
| is_signed | Is Signed | boolean | computed |
| json_popover | JSON data for the popover widget | char | computed |
| location_dest_id | Destination Location | many2one | requiredcomputed, stored |
| location_id | Source Location | many2one | requiredcomputed, stored |
| lot_id | Lot/Serial Number | many2one | read-only related: |
| move_ids | Stock Moves | one2many | inverse: |
| move_line_ids | Operations | one2many | inverse: |
| move_type | Shipping Policy It specifies goods to be deliver partially or all at once | selection | requiredcomputed, stored Values: |
| name | Reference | char | read-only |
| nbr_repairs | Number of repairs linked to this picking | integer | computed added by Repairs ( |
| note | Notes | html | |
| origin | Source Document Reference of the document | char | |
| owner_id | Assign Owner When validating the transfer, the products will be assigned to this owner. | many2one | |
| package_history_ids | Transfered Packages | many2many | |
| packages_count | Packages Count | integer | computed |
| partner_country_id | Partner Country | many2one | related: |
| partner_id | Contact | many2one | |
| picking_properties | Properties | properties | |
| picking_type_code | Picking Type Code | selection | read-only related: |
| picking_type_entire_packs | Picking Type Entire Packs | boolean | related: |
| picking_type_id | Operation Type | many2one | required |
| picking_warning_text | Picking Instructions Internal instructions for the partner or its parent company as set by the user. | text | computed |
| pos_order_id | Pos Order | many2one | added by Point of Sale ( |
| pos_session_id | Pos Session | many2one | added by Point of Sale ( |
| printed | Printed | boolean | |
| priority | Priority Products will be reserved first for the transfers with the highest priorities. | selection | Values: |
| product_id | Product | many2one | read-only related: |
| production_count | Count of MO generated | integer | computed added by Manufacturing ( |
| production_group_id | Production Group | many2one | related: added by Manufacturing ( |
| production_ids | Manufacturing Orders | one2many | computed added by Manufacturing ( |
| products_availability | Product Availability Latest product availability status of the picking | char | computed |
| products_availability_state | Products Availability State | selection | computed Values: |
| project_id | Project | many2one | added by Project Stock ( |
| purchase_id | Purchase Orders | many2one | read-only related: added by Purchase Stock ( |
| reference_ids | References | many2many | read-only related: |
| repair_ids | Repair | one2many | inverse: added by Repairs ( |
| return_count | # Returns | integer | computed |
| return_id | Return of If this picking was created as a return of another picking, this field links to the original picking. | many2one | read-only |
| return_ids | Returns | one2many | inverse: |
| return_label_ids | Return Label | one2many | computed added by Delivery - Stock ( |
| sale_id | Sales Order | many2one | computed, stored added by Sales and Warehouse Management ( |
| scheduled_date | Scheduled Date Scheduled time for the first part of the shipment to be processed. Setting manually a value here would set it as expected date for all the stock moves. | datetime | computed, stored |
| search_date_category | Date Category | selection | read-only Values: |
| shipping_volume | Volume for Shipping | float | computed |
| shipping_weight | Weight for Shipping Total weight of packages and products not in a package. Packages with no shipping weight specified will default to their products' total weight. This is the weight used to compute the cost of the shipping. | float | computed, stored |
| show_allocation | Show Allocation Technical Field used to decide whether the button "Allocation" should be displayed. | boolean | computed |
| show_check_availability | Show Check Availability Technical field used to compute whether the button "Check Availability" should be displayed. | boolean | computed |
| show_lots_text | Show Lots Text | boolean | computed |
| show_next_pickings | Show Next Pickings | boolean | computed |
| show_operations | Show Operations | boolean | related: |
| show_subcontracting_details_visible | Show Subcontracting Details Visible | boolean | computed added by MRP Subcontracting ( |
| signature | Signature Signature | image | |
| state | Status * Draft: The transfer is not confirmed yet. Reservation doesn't apply. * Waiting another operation: This transfer is waiting for another operation before being ready. * Waiting: The transfer is waiting for the availability of some products. (a) The shipping policy is "As soon as possible": no product could be reserved. (b) The shipping policy is "When all products are ready": not all the products could be reserved. * Ready: The transfer is ready to be processed. (a) The shipping policy is "As soon as possible": at least one product has been reserved. (b) The shipping policy is "When all products are ready": all product have been reserved. * Done: The transfer has been processed. * Cancelled: The transfer has been cancelled. | selection | read-onlycomputed, stored Values: |
| subcontracting_source_purchase_count | Number of subcontracting PO Source Number of subcontracting Purchase Order Source | integer | computed added by Purchase and Subcontracting Management ( |
| use_create_lots | Use Create Lots | boolean | related: |
| use_existing_lots | Use Existing Lots | boolean | related: |
| user_id | Responsible | many2one | |
| warehouse_address_id | Warehouse Address | many2one | related: |
| website_id | Website Website where this order has been placed, for eCommerce orders. | many2one→ website | read-only related: added by Product Availability ( |
| weight | Weight Total weight of the products in the picking. | float | computed, stored added by Delivery - Stock ( |
| weight_bulk | Bulk Weight Total weight of products which are not in a package. | float | computed |
| weight_uom_name | Weight unit of measure label | char | read-onlycomputed added by Delivery - Stock ( |
| zip | Zip | char | related: added by Stock Transport ( |
| activity_calendar_event_id | Next Activity Calendar Event | many2one | computed inherited from mail.activity.mixin |
| activity_date_deadline | Next Activity Deadline | date | read-onlycomputed inherited from mail.activity.mixin |
| activity_exception_decoration | Activity Exception Decoration Type of the exception activity on record. | selection | computed Values: inherited from mail.activity.mixin |
| activity_exception_icon | Icon Icon to indicate an exception activity. | char | computed inherited from mail.activity.mixin |
| activity_ids | Activities | one2many | inverse: inherited from mail.activity.mixin |
| activity_state | Activity State Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities. | selection | computed Values: inherited from mail.activity.mixin |
| activity_summary | Next Activity Summary | char | related: inherited from mail.activity.mixin |
| activity_type_icon | Activity Type Icon | char | related: inherited from mail.activity.mixin |
| activity_type_id | Next Activity Type | many2one | related: inherited from mail.activity.mixin |
| activity_user_id | Responsible User | many2one | read-onlycomputed inherited from mail.activity.mixin |
| has_message | Has Message | boolean | computed inherited from mail.thread |
| message_attachment_count | Attachment Count | integer | computed inherited from mail.thread |
| message_follower_ids | Followers | one2many | inverse: inherited from mail.thread |
| message_has_error | Message Delivery error If checked, some messages have a delivery error. | boolean | computed inherited from mail.thread |
| message_has_error_counter | Number of errors Number of messages with delivery error | integer | computed inherited from mail.thread |
| message_has_sms_error | SMS Delivery error If checked, some messages have a delivery error. | boolean | computed inherited from mail.thread |
| message_ids | Messages | one2many | inverse: inherited from mail.thread |
| message_is_follower | Is Follower | boolean | computed inherited from mail.thread |
| message_needaction | Action Needed If checked, new messages require your attention. | boolean | computed inherited from mail.thread |
| message_needaction_counter | Number of Actions Number of messages requiring action | integer | computed inherited from mail.thread |
| message_partner_ids | Followers (Partners) | many2many | computed inherited from mail.thread |
| my_activity_date_deadline | My Activity Deadline | date | read-onlycomputed inherited from mail.activity.mixin |
| rating_ids | Ratings | one2many | inverse: inherited from mail.thread |
| website_message_ids | Website Messages Website communication history | one2many | inverse: inherited from mail.thread |
| 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
- delivery.carrier: allowed_carrier_ids, carrier_id
- ir.attachment: return_label_ids
- mrp.production: production_ids
- mrp.production.group: production_group_id
- pos.order: pos_order_id
- pos.session: pos_session_id
- product.product: product_id
- project.project: project_id
- purchase.order: purchase_id
- repair.order: repair_ids
- res.company: company_id
- res.country: partner_country_id
- res.partner: owner_id, partner_id, warehouse_address_id
- res.users: user_id
- sale.order: sale_id
- stock.location: location_dest_id, location_id
- stock.lot: lot_id
- stock.move: move_ids
- stock.move.line: move_line_ids
- stock.package.history: package_history_ids
- stock.picking: backorder_id, backorder_ids, return_id, return_ids
- stock.picking.batch: batch_id
- stock.picking.type: picking_type_id
- stock.reference: reference_ids
- website: website_id
Fields of other models pointing here
- confirm.stock.sms: pick_ids
- expiry.picking.confirmation: picking_ids
- mrp.production: incoming_picking, picking_ids
- picking.label.type: picking_ids
- purchase.order: picking_ids
- repair.order: picking_id
- res.partner: picking_ids
- stock.add.to.wave: picking_ids
- stock.backorder.confirmation: pick_ids
- stock.backorder.confirmation.line: picking_id
- stock.landed.cost: picking_ids
- stock.lot: delivery_ids
- stock.move: picking_id
- stock.move.line: picking_id
- stock.package: picking_ids
- stock.package.history: picking_ids
- stock.picking: backorder_id, return_id
- stock.reference: picking_ids
- stock.return.picking: picking_id
- stock.scrap: picking_id
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 -X POST "https://your-instance.odoo.com/json/2/stock.picking/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","location_dest_id","location_id","move_type","picking_type_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}/stock.picking/search_read",
headers=headers,
json={"domain": [], "fields": ["name","location_dest_id","location_id","move_type","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/stock-picking">stock.picking (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.