Skip to content

Connect UPS API to Odoo: Complete Shipping Integration Guide

DeployMonkey Team · March 24, 2026 9 min read

Why Connect UPS to Odoo?

UPS is one of the most widely used shipping carriers globally. Integrating the UPS API with Odoo automates shipping operations — calculate rates at checkout, generate labels from delivery orders, track packages in real time, and handle returns. This eliminates manual entry on the UPS website and keeps all shipping data inside your Odoo system.

UPS API Services

APIPurposeOdoo Use Case
RatingCalculate shipping costsSales order shipping estimates, checkout
ShippingGenerate labels and confirm shipmentsDelivery order processing
TrackingGet package status and delivery confirmationCustomer portal, internal tracking
Address ValidationVerify addresses before shippingContact and order validation
PickupSchedule package pickupWarehouse dispatch operations

Setup Steps

1. UPS Developer Account

  • Register at developer.ups.com
  • Create an application to get Client ID and Client Secret
  • Obtain your UPS Account Number
  • UPS now uses OAuth 2.0 (replaced legacy XML API keys)
  • Configure sandbox environment for testing

2. Odoo Delivery Carrier Configuration

  • Odoo includes native UPS integration (Inventory → Configuration → Shipping Methods)
  • Select UPS as the delivery carrier provider
  • Enter UPS credentials (Client ID, Client Secret, Account Number)
  • Select environment (Test/Production)
  • Configure default service types (Ground, 2nd Day Air, Next Day Air)
  • Set package types and default dimensions

3. Service Level Mapping

Map UPS services to your business needs:

  • UPS Ground — Standard economy shipping (3-5 business days)
  • UPS 2nd Day Air — Two-day delivery for urgent orders
  • UPS Next Day Air — Overnight delivery for critical shipments
  • UPS Worldwide Express — International express shipping
  • UPS Standard — International standard shipping
  • Configure service availability per destination country

4. Rate Shopping

  • Configure multiple UPS services for rate comparison
  • Display cheapest and fastest options at checkout
  • Apply shipping rules based on order weight, value, or destination
  • Handle negotiated rates vs. retail rates
  • Calculate dimensional weight for oversized packages

5. Label Generation

  • Generate shipping labels when validating delivery orders
  • Print labels in ZPL (thermal printer) or PDF format
  • Handle multi-package shipments
  • Include customs documentation for international shipments
  • Generate return labels (pre-printed or electronic)

6. Tracking Integration

  • Store UPS tracking number on delivery order
  • Poll UPS Tracking API for status updates
  • Display tracking information in customer portal
  • Send email notifications on delivery milestones
  • Handle delivery exceptions and redirects

International Shipping

  • Generate commercial invoices for customs
  • Include harmonized tariff codes from Odoo product data
  • Handle duties and taxes (DAP, DDP configurations)
  • Country of origin and declared value from product records
  • Electronic Export Information (EEI) for US exports

Common Pitfalls

  • Dimensional weight — UPS charges the greater of actual weight or dimensional weight. Configure product dimensions in Odoo for accurate rates.
  • Address classification — UPS charges more for residential delivery. Use Address Validation API to classify addresses correctly.
  • Negotiated rates — If you have a UPS account with negotiated rates, ensure the API uses your shipper number to get discounted pricing.
  • Sandbox testing — Always test in UPS sandbox before going live. Sandbox uses different endpoints and test addresses.

Getting Started

Deploy Odoo on DeployMonkey with the Inventory module. Enable UPS as a delivery carrier, enter your API credentials, and generate your first test label. Odoo's native UPS integration handles most shipping scenarios without custom development.