Delivery UPS OCA

delivery_ups_oca
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/18.0/delivery_ups_oca
VERSION
VERSION 1.2.2
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ForgeFlow, Hunki Enterprises BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ForgeFlow, Hunki Enterprises BV
COMMITTERS
COMMITTERSCarlos Lopez, Weblate, OCA-git-bot, Sudhir Arya, oca-ci, juancarlosonate-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_price_method
    - delivery_state
odoo/odoo:
    - stock_delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - delivery
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds [UPS](https://ups.com) to the available carriers.

It allows you to register shippings, generate labels, get rates from
order, read shipping states and cancel shipments using UPS webservice,
so no need of exchanging any kind of file.

When a sales order is created in Odoo and the UPS carrier is assigned,
the shipping price that will be obtained will be the price that the UPS
webservice estimates according to the order information (address and
products).

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking xpath Inherits stock_delivery.view_picking_withcarrier_out_form
Models touched (3)

New fields (15)
  • delivery_type Selection
    ondelete={'ups': <expr>} selection_add=[('ups', 'UPS')]
  • ups_cash_on_delivery Boolean
    string='UPS Cash On Delivery'
  • ups_client_id Char
  • ups_client_secret Char
  • ups_cod_funds_code Selection
    selection=[('1', 'Cash'), ('9', 'Check/Cashier Check/Money Order')] string='UPS Cod Funds Code'
  • ups_default_packaging_id Many2one → stock.package.type
    comodel_name='stock.package.type' domain=[('package_carrier_type', '=', 'ups')] string='Default Carrier Packaging Type'
  • ups_file_format Selection
    default='GIF' selection=[('PDF', 'PDF'), ('GIF', 'GIF'), ('ZPL', 'ZPL'), ('EPL', 'EPL'), ('SPL', 'SPL')] string='File format'
  • ups_package_dimension_code Selection
    default='IN' help='Is necessary to set dimension code from packages in shipping creation process' selection=[('IN', 'IN'), ('CM', 'CM')] string='Package Dimension code'
  • ups_package_weight_code Selection
    default='LBS' help='Is necessary to set weight code from packages in shipping creation process' selection=[('LBS', 'LBS'), ('KGS', 'KGS'), ('OZS', 'OZS')] string='Package Weight code'
  • ups_service_code Selection
    default='11' selection=[('01', 'Next Day Air'), ('02', '2nd Day Air'), ('03', 'Ground'), ('07', 'Express'), ('08', 'Expedited'), ('11', 'UPS Standard'), ('12', '3 Day Select'), ('13', 'Next Day Air Saver'), ('14', 'UPS Next Day Air® Early'), ('17', 'UPS Worldwide Economy DDU'), ('54', 'Express Plus'), ('59', '2nd Day Air A.M.'), ('65', 'UPS Saver'), ('M2', 'First Class Mail'), ('M3', 'Priority Mail'), ('M4', 'Expedited Mail Innovations'), ('M5', 'Priority Mail Innovations'), ('M6', 'Economy Mail Innovations'), ('M7', 'Mail Innovations (MI) Returns'), ('70', 'UPS Access PointTM Economy'), ('71', 'UPS Worldwide Express Freight Midday'), ('72', 'UPS Worldwide Economy'), ('74', 'UPS Express®12:00'), ('82', 'UPS Today Standard'), ('83', 'UPS Today Dedicated Courier'), ('84', 'UPS Today Intercity'), ('85', 'UPS Today Express'), ('86', 'UPS Today Express Saver'), ('96', 'UPS Worldwide Express Freight')] string='Service code'
  • ups_shipper_number Char
    string='Shipper number'
  • ups_token Char
  • ups_token_expiration_date Datetime
    readonly=True
  • ups_tracking_state_update_sync Boolean
    help='If checked, odoo try to state update from picking according to UPS webservice (you will necessary to activate tracking API)' string='Tracking state update sync'
  • ups_use_packages_from_picking Boolean
    string='Use packages from picking'
Public methods (8)
  • ups_cancel_shipment(self, pickings)
  • ups_create_shipping(self, picking)
    Send packages of the picking to UPS return a list of dicts {'exact_price': 'tracking_number':} suitable for delivery.carrier#send_shipping
  • ups_get_label(self, carrier_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns attachment file
  • ups_get_tracking_link(self, picking)
  • ups_rate_shipment(self, order)
  • ups_send_shipping(self, pickings)
  • ups_tracking_state_update(self, picking)
  • ups_update_token(self)

New fields (1)
  • package_carrier_type Selection
    selection_add=[('ups', 'UPS')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • ups_get_label(self)
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/17.0/delivery_ups_oca
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ForgeFlow, Hunki Enterprises BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ForgeFlow, Hunki Enterprises BV
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, sygel
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_price_method
    - delivery_state
odoo/odoo:
    - stock_delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - delivery
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds [UPS](https://ups.com) to the available carriers.

It allows you to register shippings, generate labels, get rates from
order, read shipping states and cancel shipments using UPS webservice,
so no need of exchanging any kind of file.

When a sales order is created in Odoo and the UPS carrier is assigned,
the shipping price that will be obtained will be the price that the UPS
webservice estimates according to the order information (address and
products).

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking xpath Inherits stock_delivery.view_picking_withcarrier_out_form
Models touched (3)

New fields (15)
  • delivery_type Selection
    ondelete={'ups': <expr>} selection_add=[('ups', 'UPS')]
  • ups_cash_on_delivery Boolean
    string='UPS Cash On Delivery'
  • ups_client_id Char
  • ups_client_secret Char
  • ups_cod_funds_code Selection
    selection=[('1', 'Cash'), ('9', 'Check/Cashier Check/Money Order')] string='UPS Cod Funds Code'
  • ups_default_packaging_id Many2one → stock.package.type
    comodel_name='stock.package.type' domain=[('package_carrier_type', '=', 'ups')] string='Default Packaging Type'
  • ups_file_format Selection
    default='GIF' selection=[('GIF', 'GIF'), ('ZPL', 'ZPL'), ('EPL', 'EPL'), ('SPL', 'SPL')] string='File format'
  • ups_package_dimension_code Selection
    default='IN' help='Is necessary to set dimension code from packages in shipping creation process' selection=[('IN', 'IN'), ('CM', 'CM')] string='Package Dimension code'
  • ups_package_weight_code Selection
    default='LBS' help='Is necessary to set weight code from packages in shipping creation process' selection=[('LBS', 'LBS'), ('KGS', 'KGS'), ('OZS', 'OZS')] string='Package Weight code'
  • ups_service_code Selection
    default='11' selection=[('01', 'Next Day Air'), ('02', '2nd Day Air'), ('03', 'Ground'), ('07', 'Express'), ('08', 'Expedited'), ('11', 'UPS Standard'), ('12', '3 Day Select'), ('13', 'Next Day Air Saver'), ('14', 'UPS Next Day Air® Early'), ('17', 'UPS Worldwide Economy DDU'), ('54', 'Express Plus'), ('59', '2nd Day Air A.M.'), ('65', 'UPS Saver'), ('M2', 'First Class Mail'), ('M3', 'Priority Mail'), ('M4', 'Expedited Mail Innovations'), ('M5', 'Priority Mail Innovations'), ('M6', 'Economy Mail Innovations'), ('M7', 'Mail Innovations (MI) Returns'), ('70', 'UPS Access PointTM Economy'), ('71', 'UPS Worldwide Express Freight Midday'), ('72', 'UPS Worldwide Economy'), ('74', 'UPS Express®12:00'), ('82', 'UPS Today Standard'), ('83', 'UPS Today Dedicated Courier'), ('84', 'UPS Today Intercity'), ('85', 'UPS Today Express'), ('86', 'UPS Today Express Saver'), ('96', 'UPS Worldwide Express Freight')] string='Service code'
  • ups_shipper_number Char
    string='Shipper number'
  • ups_token Char
  • ups_token_expiration_date Datetime
    readonly=True
  • ups_tracking_state_update_sync Boolean
    help='If checked, odoo try to state update from picking according to UPS webservice (you will necessary to activate tracking API)' string='Tracking state update sync'
  • ups_use_packages_from_picking Boolean
    string='Use packages from picking'
Public methods (8)
  • ups_cancel_shipment(self, pickings)
  • ups_create_shipping(self, picking)
    Send packages of the picking to UPS return a list of dicts {'exact_price': 'tracking_number':} suitable for delivery.carrier#send_shipping
  • ups_get_label(self, carrier_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns attachment file
  • ups_get_tracking_link(self, picking)
  • ups_rate_shipment(self, order)
  • ups_send_shipping(self, pickings)
  • ups_tracking_state_update(self, picking)
  • ups_update_token(self)

New fields (1)
  • package_carrier_type Selection
    selection_add=[('ups', 'UPS')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • ups_get_label(self)
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/14.0/delivery_ups_oca
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ForgeFlow, Hunki Enterprises BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ForgeFlow, Hunki Enterprises BV
COMMITTERS
COMMITTERSmanu, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_price_method
    - delivery_state
odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - stock_account
    - stock
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery.view_picking_withcarrier_out_form
Models touched (3)

New fields (15)
  • delivery_type Selection
    ondelete={'ups': <expr>} selection_add=[('ups', 'UPS')]
  • ups_cash_on_delivery Boolean
    string='UPS Cash On Delivery'
  • ups_client_id Char
  • ups_client_secret Char
  • ups_cod_funds_code Selection
    selection=[('1', 'Cash'), ('9', 'Check/Cashier Check/Money Order')] string='UPS Cod Funds Code'
  • ups_default_packaging_id Many2one → product.packaging
    comodel_name='product.packaging' domain=[('package_carrier_type', '=', 'ups')] string='Default Packaging Type'
  • ups_file_format Selection
    default='GIF' selection=[('GIF', 'GIF'), ('ZPL', 'ZPL'), ('EPL', 'EPL'), ('SPL', 'SPL')] string='File format'
  • ups_package_dimension_code Selection
    default='IN' help='Is necessary to set dimension code from packages in shipping creation process' selection=[('IN', 'IN'), ('CM', 'CM')] string='Package Dimension code'
  • ups_package_weight_code Selection
    default='LBS' help='Is necessary to set weight code from packages in shipping creation process' selection=[('LBS', 'LBS'), ('KGS', 'KGS'), ('OZS', 'OZS')] string='Package Weight code'
  • ups_service_code Selection
    default='11' selection=[('01', 'Next Day Air'), ('02', '2nd Day Air'), ('03', 'Ground'), ('07', 'Express'), ('08', 'Expedited'), ('11', 'UPS Standard'), ('12', '3 Day Select'), ('13', 'Next Day Air Saver'), ('14', 'UPS Next Day Air® Early'), ('17', 'UPS Worldwide Economy DDU'), ('54', 'Express Plus'), ('59', '2nd Day Air A.M.'), ('65', 'UPS Saver'), ('M2', 'First Class Mail'), ('M3', 'Priority Mail'), ('M4', 'Expedited Mail Innovations'), ('M5', 'Priority Mail Innovations'), ('M6', 'Economy Mail Innovations'), ('M7', 'Mail Innovations (MI) Returns'), ('70', 'UPS Access PointTM Economy'), ('71', 'UPS Worldwide Express Freight Midday'), ('72', 'UPS Worldwide Economy'), ('74', 'UPS Express®12:00'), ('82', 'UPS Today Standard'), ('83', 'UPS Today Dedicated Courier'), ('84', 'UPS Today Intercity'), ('85', 'UPS Today Express'), ('86', 'UPS Today Express Saver'), ('96', 'UPS Worldwide Express Freight')] string='Service code'
  • ups_shipper_number Char
    string='Shipper number'
  • ups_token Char
  • ups_token_expiration_date Datetime
    readonly=True
  • ups_tracking_state_update_sync Boolean
    help='If checked, odoo try to state update from picking according to UPS webservice (you will necessary to activate tracking API)' string='Tracking state update sync'
  • ups_use_packages_from_picking Boolean
    string='Use packages from picking'
Public methods (8)
  • ups_cancel_shipment(self, pickings)
  • ups_create_shipping(self, picking)
    Send packages of the picking to UPS return a list of dicts {'exact_price': 'tracking_number':} suitable for delivery.carrier#send_shipping
  • ups_get_label(self, carrier_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns attachment file
  • ups_get_tracking_link(self, picking)
  • ups_rate_shipment(self, order)
  • ups_send_shipping(self, pickings)
  • ups_tracking_state_update(self, picking)
  • ups_update_token(self)

New fields (1)
  • package_carrier_type Selection
    selection_add=[('ups', 'UPS')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • ups_get_label(self)
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/13.0/delivery_ups_oca
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Hunki Enterprises BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Hunki Enterprises BV
COMMITTERS
COMMITTERSVíctor Martínez, oca-travis, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_price_method
    - delivery_state
odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - stock_account
    - stock
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery.view_picking_withcarrier_out_form
Models touched (3)

New fields (12)
  • delivery_type Selection
    selection_add=[('ups', 'UPS')]
  • ups_access_license Char
    string='Access license number'
  • ups_default_packaging_id Many2one → product.packaging
    comodel_name='product.packaging' domain=[('package_carrier_type', '=', 'ups')] string='Default Packaging Type'
  • ups_file_format Selection
    default='GIF' selection=[('GIF', 'PDF'), ('ZPL', 'ZPL'), ('EPL', 'EPL'), ('SPL', 'SPL')] string='File format'
  • ups_package_dimension_code Selection
    default='IN' help='Is necessary to set dimension code from packages in shipping creation process' selection=[('IN', 'IN'), ('CM', 'CM')] string='Package Dimension code'
  • ups_package_weight_code Selection
    default='LBS' help='Is necessary to set weight code from packages in shipping creation process' selection=[('LBS', 'LBS'), ('KGS', 'KGS'), ('OZS', 'OZS')] string='Package Weight code'
  • ups_service_code Selection
    default='11' selection=[('01', 'Next Day Air'), ('02', '2nd Day Air'), ('03', 'Ground'), ('07', 'Express'), ('08', 'Expedited'), ('11', 'UPS Standard'), ('12', '3 Day Select'), ('13', 'Next Day Air Saver'), ('14', 'UPS Next Day Air® Early'), ('17', 'UPS Worldwide Economy DDU'), ('54', 'Express Plus'), ('59', '2nd Day Air A.M.'), ('65', 'UPS Saver'), ('M2', 'First Class Mail'), ('M3', 'Priority Mail'), ('M4', 'Expedited Mail Innovations'), ('M5', 'Priority Mail Innovations'), ('M6', 'Economy Mail Innovations'), ('M7', 'Mail Innovations (MI) Returns'), ('70', 'UPS Access PointTM Economy'), ('71', 'UPS Worldwide Express Freight Midday'), ('72', 'UPS Worldwide Economy'), ('74', 'UPS Express®12:00'), ('82', 'UPS Today Standard'), ('83', 'UPS Today Dedicated Courier'), ('84', 'UPS Today Intercity'), ('85', 'UPS Today Express'), ('86', 'UPS Today Express Saver'), ('96', 'UPS Worldwide Express Freight')] string='Service code'
  • ups_shipper_number Char
    string='Shipper number'
  • ups_tracking_state_update_sync Boolean
    help='If checked, odoo try to state update from picking according to UPS webservice (you will necessary to activate tracking API)' string='Tracking state update sync'
  • ups_use_packages_from_picking Boolean
    string='Use packages from picking'
  • ups_ws_password Char
    string='Password WS'
  • ups_ws_username Char
    string='Username WS'
Public methods (8)
  • ups_cancel_shipment(self, pickings)
  • ups_create_shipping(self, picking)
    Send packages of the picking to UPS return a list of dicts {'exact_price': 'tracking_number':} suitable for delivery.carrier#send_shipping
  • ups_get_label(self, carrier_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns attachment file
  • ups_get_tracking_link(self, picking)
  • ups_rate_shipment(self, order)
  • ups_send_shipping(self, pickings)
  • ups_test_call(self, order)
  • ups_tracking_state_update(self, picking)

New fields (1)
  • package_carrier_type Selection
    selection_add=[('ups', 'UPS')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • ups_get_label(self)