Odoo 19.0 Community · Persistent

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 nameLabelTypeDetails
allowed_carrier_idsAllowed Carriermany2many
computed

added by Delivery - Stock (stock_delivery)

backorder_idBack Order of

If this shipment was split, then this field links to the shipment which contains the already processed part.

many2one
read-only
backorder_idsBack Ordersone2many

inverse: backorder_id

batch_idBatch Transfer

Batch associated to this transfer

many2one

added by Warehouse Management: Batch Transfer (stock_picking_batch)

batch_sequenceSequenceinteger

added by Warehouse Management: Batch Transfer (stock_picking_batch)

carrier_idCarriermany2one

added by Delivery - Stock (stock_delivery)

carrier_priceShipping Costfloat

added by Delivery - Stock (stock_delivery)

carrier_tracking_refTracking Referencechar

added by Delivery - Stock (stock_delivery)

carrier_tracking_urlTracking URLchar
computed

added by Delivery - Stock (stock_delivery)

company_idCompanymany2one
read-only

related: picking_type_id.company_id

country_codeCountry Codechar

related: company_id.account_fiscal_country_id.code

added by WMS Accounting (stock_account)

date_deadlineDeadline

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_doneDate of Transfer

Date at which the transfer has been processed or cancelled.

datetime
days_to_arriveDays To Arrivedatetime
computed

added by Purchase Stock (purchase_stock)

delay_alert_dateDelay Alert Datedatetime
computed
delay_passDelay Passdatetime
computed

added by Purchase Stock (purchase_stock)

delivery_typeDelivery Typeselection
read-only

related: carrier_id.delivery_type

added by Delivery - Stock (stock_delivery)

destination_country_codeDestination Countrychar

related: partner_id.country_id.code

added by Delivery - Stock (stock_delivery)

has_deadline_issueIs late

Is late or will be late depending on the deadline and scheduled date

boolean
computed, stored
has_kitsHas Kitsboolean
computed

added by Manufacturing (mrp)

has_scrap_moveHas Scrap Movesboolean
computed
has_trackingHas Trackingboolean
computed
integration_levelIntegration Levelselection

related: carrier_id.integration_level

added by Delivery - Stock (stock_delivery)

is_date_editableIs Scheduled Date Editableboolean
computed
is_dropshipIs a Dropshipboolean
computed

added by Drop Shipping (stock_dropshipping)

is_lockedIs 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_pickingIs Return Pickingboolean
computed

added by Delivery - Stock (stock_delivery)

is_signedIs Signedboolean
computed
json_popoverJSON data for the popover widgetchar
computed
location_dest_idDestination Locationmany2one
requiredcomputed, stored
location_idSource Locationmany2one
requiredcomputed, stored
lot_idLot/Serial Numbermany2one
read-only

related: move_line_ids.lot_id

move_idsStock Movesone2many

inverse: picking_id

move_line_idsOperationsone2many

inverse: picking_id

move_typeShipping Policy

It specifies goods to be deliver partially or all at once

selection
requiredcomputed, stored

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

nameReferencechar
read-only
nbr_repairsNumber of repairs linked to this pickinginteger
computed

added by Repairs (repair)

noteNoteshtml
originSource Document

Reference of the document

char
owner_idAssign Owner

When validating the transfer, the products will be assigned to this owner.

many2one
package_history_idsTransfered Packagesmany2many
packages_countPackages Countinteger
computed
partner_country_idPartner Countrymany2one

related: partner_id.country_id

partner_idContactmany2one
picking_propertiesPropertiesproperties
picking_type_codePicking Type Codeselection
read-only

related: picking_type_id.code

picking_type_entire_packsPicking Type Entire Packsboolean

related: picking_type_id.show_entire_packs

picking_type_idOperation Typemany2one
required
picking_warning_textPicking Instructions

Internal instructions for the partner or its parent company as set by the user.

text
computed
pos_order_idPos Ordermany2one

added by Point of Sale (point_of_sale)

pos_session_idPos Sessionmany2one

added by Point of Sale (point_of_sale)

printedPrintedboolean
priorityPriority

Products will be reserved first for the transfers with the highest priorities.

selection

Values: 0 (Normal), 1 (Urgent)

product_idProductmany2one
read-only

related: move_ids.product_id

production_countCount of MO generatedinteger
computed

added by Manufacturing (mrp)

production_group_idProduction Groupmany2one

related: move_ids.production_group_id

added by Manufacturing (mrp)

production_idsManufacturing Ordersone2many
computed

added by Manufacturing (mrp)

products_availabilityProduct Availability

Latest product availability status of the picking

char
computed
products_availability_stateProducts Availability Stateselection
computed

Values: available (Available), expected (Expected), late (Late)

project_idProjectmany2one

added by Project Stock (project_stock)

purchase_idPurchase Ordersmany2one
read-only

related: move_ids.purchase_line_id.order_id

added by Purchase Stock (purchase_stock)

reference_idsReferencesmany2many
read-only

related: move_ids.reference_ids

repair_idsRepairone2many

inverse: picking_id

added by Repairs (repair)

return_count# Returnsinteger
computed
return_idReturn of

If this picking was created as a return of another picking, this field links to the original picking.

many2one
read-only
return_idsReturnsone2many

inverse: return_id

return_label_idsReturn Labelone2many
computed

added by Delivery - Stock (stock_delivery)

sale_idSales Ordermany2one
computed, stored

added by Sales and Warehouse Management (sale_stock)

scheduled_dateScheduled 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_categoryDate Categoryselection
read-only

Values: before (Before), yesterday (Yesterday), today (Today), day_1 (Tomorrow), day_2 (The day after tomorrow), after (After)

shipping_volumeVolume for Shippingfloat
computed
shipping_weightWeight 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_allocationShow Allocation

Technical Field used to decide whether the button "Allocation" should be displayed.

boolean
computed
show_check_availabilityShow Check Availability

Technical field used to compute whether the button "Check Availability" should be displayed.

boolean
computed
show_lots_textShow Lots Textboolean
computed
show_next_pickingsShow Next Pickingsboolean
computed
show_operationsShow Operationsboolean

related: picking_type_id.show_operations

show_subcontracting_details_visibleShow Subcontracting Details Visibleboolean
computed

added by MRP Subcontracting (mrp_subcontracting)

signatureSignature

Signature

image
stateStatus

* 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: draft (Draft), waiting (Waiting Another Operation), confirmed (Waiting), assigned (Ready), done (Done), cancel (Cancelled)

subcontracting_source_purchase_countNumber of subcontracting PO Source

Number of subcontracting Purchase Order Source

integer
computed

added by Purchase and Subcontracting Management (mrp_subcontracting_purchase)

use_create_lotsUse Create Lotsboolean

related: picking_type_id.use_create_lots

use_existing_lotsUse Existing Lotsboolean

related: picking_type_id.use_existing_lots

user_idResponsiblemany2one
warehouse_address_idWarehouse Addressmany2one

related: picking_type_id.warehouse_id.partner_id

website_idWebsite

Website where this order has been placed, for eCommerce orders.

many2one
read-only

related: sale_id.website_id

added by Product Availability (website_sale_stock)

weightWeight

Total weight of the products in the picking.

float
computed, stored

added by Delivery - Stock (stock_delivery)

weight_bulkBulk Weight

Total weight of products which are not in a package.

float
computed
weight_uom_nameWeight unit of measure labelchar
read-onlycomputed

added by Delivery - Stock (stock_delivery)

zipZipchar

related: partner_id.zip

added by Stock Transport (stock_fleet)

activity_calendar_event_idNext Activity Calendar Eventmany2one
computed

inherited from mail.activity.mixin

activity_date_deadlineNext Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

activity_exception_decorationActivity Exception Decoration

Type of the exception activity on record.

selection
computed

Values: warning (Alert), danger (Error)

inherited from mail.activity.mixin

activity_exception_iconIcon

Icon to indicate an exception activity.

char
computed

inherited from mail.activity.mixin

activity_idsActivitiesone2many

inverse: res_id

inherited from mail.activity.mixin

activity_stateActivity State

Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities.

selection
computed

Values: overdue (Overdue), today (Today), planned (Planned)

inherited from mail.activity.mixin

activity_summaryNext Activity Summarychar

related: activity_ids.summary

inherited from mail.activity.mixin

activity_type_iconActivity Type Iconchar

related: activity_ids.icon

inherited from mail.activity.mixin

activity_type_idNext Activity Typemany2one

related: activity_ids.activity_type_id

inherited from mail.activity.mixin

activity_user_idResponsible Usermany2one
read-onlycomputed

inherited from mail.activity.mixin

has_messageHas Messageboolean
computed

inherited from mail.thread

message_attachment_countAttachment Countinteger
computed

inherited from mail.thread

message_follower_idsFollowersone2many

inverse: res_id

inherited from mail.thread

message_has_errorMessage Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_has_error_counterNumber of errors

Number of messages with delivery error

integer
computed

inherited from mail.thread

message_has_sms_errorSMS Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_idsMessagesone2many

inverse: res_id

inherited from mail.thread

message_is_followerIs Followerboolean
computed

inherited from mail.thread

message_needactionAction Needed

If checked, new messages require your attention.

boolean
computed

inherited from mail.thread

message_needaction_counterNumber of Actions

Number of messages requiring action

integer
computed

inherited from mail.thread

message_partner_idsFollowers (Partners)many2many
computed

inherited from mail.thread

my_activity_date_deadlineMy Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

website_message_idsWebsite Messages

Website communication history

one2many

inverse: res_id

inherited from mail.thread

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/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}'
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}/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.