A Python module to integrate with DHL courier
Project description
python-dhl-api
A Django module to integrate with DHL EXPRESS API (MyDHL API).
DHL APIs documentation: https://developer.dhl.com/api-reference/dhl-express-mydhl-api#reference-docs-section/
Requirements
Python 3.9+
Installation
Python DHL API is available through pip. To easily install or upgrade it, do
pip install --upgrade python-dhl-api
Usage
Set the following DHL fields in a private file.
DHL_API_KEY = ''
DHL_API_SECRET = ''
DHL_ACCOUNT = ''
DHL_ACCOUNT_IMPORT = ''
DHL_ACCOUNT_EXPORT = ''
Services available
Please check test_validate.py to see some practical uses.
- Address validation
- Get rates and services available
- Create a shipment
- Create a pickup
- Upload document
- Check shipment
- Shipment status
Create a shipment
service = DHLService(api_key=Setting.DHL_API_KEY, api_secret=Setting.DHL_API_SECRET,
account_number=Setting.DHL_ACCOUNT_EXPORT,
test_mode=True)
Set one or more accounts:
accounts = [
shipment.DHLAccountType(type_code=AccountType.SHIPPER, number=Setting.DHL_ACCOUNT_EXPORT),
]
If you want the shipper to pay also the duties then:
accounts = [
shipment.DHLAccountType(type_code=AccountType.SHIPPER, number=Setting.DHL_ACCOUNT_EXPORT),
shipment.DHLAccountType(type_code=AccountType.DUTIES_TAXES, number=Setting.DHL_ACCOUNT_EXPORT),
]
Create the sender:
sender_contact = address.DHLContactInformation(
company_name='Test Co.',
full_name='Name and surname',
phone='+39000000000',
email='matteo.munaretto@innove.it',
contact_type=ShipperType.BUSINESS.value
)
sender_address = address.DHLPostalAddress(
street_line1='Via Maestro Zampieri, 14',
postal_code='36016',
province_code='VI',
country_code='IT',
city_name='Thiene',
)
registration_numbers = [address.DHLRegistrationNumber(
type_code=TypeCode.VAT.name,
number='42342423423',
issuer_country_code='IT'
)]
Create the receiver:
receiver_contact = address.DHLContactInformation(
full_name='Customer',
phone='+39000000000',
email='matteo.munaretto@innove.it',
contact_type=ShipperType.PRIVATE.value
)
receiver_address = address.DHLPostalAddress(
street_line1='Rue Poncelet, 17',
postal_code='75017',
country_code='FR',
city_name='Paris',
)
Add the packages to ship:
packages = [shipment.DHLProduct(
weight=1,
length=35,
width=28,
height=8
)]
Set content and label output. For a list of services you are entitled to, use service get_rates.
shipment_date = next_business_day()
shipment_date = shipment_date.replace(hour=14, minute=0, second=0, microsecond=0)
shipment_date = shipment_date.replace(tzinfo=ZoneInfo('Europe/Rome'))
added_service = [shipment.DHLAddedService(
service_code='W'
)]
content = shipment.DHLShipmentContent(
packages=packages,
is_custom_declarable=False,
description='Shipment test',
incoterm_code=IncotermCode.DAP.name,
unit_of_measurement=MeasurementUnit.METRIC.value,
product_code=ProductCode.EUROPE.value
)
output = shipment.DHLShipmentOutput(
dpi=300,
encoding_format='pdf',
logo_file_format='png',
logo_file_base64=LOGO_BASE64
)
customer_references = ['id1', 'id2']
Let's ship:
s = shipment.DHLShipment(
accounts=accounts,
sender_contact=sender_contact,
sender_address=sender_address,
sender_registration_numbers=registration_numbers,
receiver_contact=receiver_contact,
receiver_address=receiver_address,
ship_datetime=shipment_date,
added_services=added_service,
product_code=ProductCode.EUROPE.value,
content=content,
output_format=output,
customer_references=customer_references,
)
ship = service.ship(dhl_shipment=s)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file python_dhl_api-2.2.tar.gz
.
File metadata
- Download URL: python_dhl_api-2.2.tar.gz
- Upload date:
- Size: 32.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0f7a74aa4fc263ef2facb47e9ae4e9ecef2a923d83a6e272847aef47906ae2a |
|
MD5 | 4d807bd9bcb0765eb44408971666f8b9 |
|
BLAKE2b-256 | 7d04e99aa3ad2628e82e0809be01d73fba660903bc336b9182249c79ddf9fa42 |
File details
Details for the file python_dhl_api-2.2-py3-none-any.whl
.
File metadata
- Download URL: python_dhl_api-2.2-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a190bc7dd8d230ce2f19e1622df6e46a10c9208ee5598faf94ae1a14d7f1f94 |
|
MD5 | 58749fc80b0fad689ab228e6b6e0f317 |
|
BLAKE2b-256 | 1e7e5f57df52399be46d299ef9527ab5bd08654571dc6ab3e3c88960486cac34 |