InPost ShipX provider package for the python-sendparcel ecosystem.
Alpha notice: this package tracks the still-changing
python-sendparcelcore.
InPostLockerProviderfor locker shipmentsInPostCourierProviderfor courier shipmentsShipXClientfor direct async ShipX API access- ShipX-to-sendparcel status normalization helpers
This package follows the cleaned core contract:
create_shipment(...) -> ShipmentCreateResultcreate_label(...) -> LabelInfohandle_callback(...) -> ShipmentUpdateResultfetch_shipment_status(...) -> ShipmentUpdateResultcancel_shipment(...) -> bool
Providers do not mutate shipment state directly. They translate ShipX responses into normalized results that the core flow applies.
uv add python-sendparcel-inpostor:
pip install python-sendparcel-inpost| Key | Type | Description |
|---|---|---|
token |
str |
ShipX API bearer token |
organization_id |
int |
ShipX organization ID |
sandbox |
bool |
Use sandbox API |
base_url |
str |
Optional API base override |
timeout |
float |
Request timeout in seconds |
ShipX statuses are normalized to sendparcel shipment statuses.
- recognized ShipX statuses produce
{"status": ...} - tracking numbers are included when available
- unknown ShipX statuses do not invent fake sendparcel statuses
That means callback and polling updates can safely return only tracking data when ShipX introduces a new status the mapper does not know yet.
Labels are returned as payloads.
- PDF labels are returned as base64 content in
LabelInfo["content_base64"] - no label URL is persisted by the core contract
uv sync --extra dev
uv run pytest
uv run ruff check src tests
uv run mypy src tests