{"id":25839676,"url":"https://github.com/netresearch/dhl-sdk-api-parcel-de","last_synced_at":"2026-03-06T11:01:25.846Z","repository":{"id":241500741,"uuid":"806637425","full_name":"netresearch/dhl-sdk-api-parcel-de","owner":"netresearch","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-02T09:38:04.000Z","size":196,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-11-09T03:09:47.703Z","etag":null,"topics":["gitlab-mirror"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netresearch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-27T15:26:15.000Z","updated_at":"2025-07-02T12:39:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"af3df6b7-d8ad-4014-adf6-4d00f83f5a2b","html_url":"https://github.com/netresearch/dhl-sdk-api-parcel-de","commit_stats":null,"previous_names":["netresearch/sdk-api-parcel-de","netresearch/dhl-sdk-api-parcel-de"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/netresearch/dhl-sdk-api-parcel-de","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fdhl-sdk-api-parcel-de","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fdhl-sdk-api-parcel-de/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fdhl-sdk-api-parcel-de/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fdhl-sdk-api-parcel-de/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netresearch","download_url":"https://codeload.github.com/netresearch/dhl-sdk-api-parcel-de/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fdhl-sdk-api-parcel-de/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30173345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T07:56:45.623Z","status":"ssl_error","status_checked_at":"2026-03-06T07:55:55.621Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gitlab-mirror"],"created_at":"2025-03-01T04:34:01.470Z","updated_at":"2026-03-06T11:01:25.822Z","avatar_url":"https://github.com/netresearch.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DHL Parcel DE Shipping API SDK\n\nThe DHL Parcel DE Shipping API SDK package offers an interface to the following web services:\n\n- [DHL Parcel DE Shipping 2.1.7](https://developer.dhl.com/api-reference/parcel-de-shipping-post-parcel-germany-v2)\n\n## Requirements\n\n### System Requirements\n\n- PHP 8.1+ with SOAP and JSON extension\n\n### Package Requirements\n\n- `league/openapi-psr7-validator`: Schema validator for JSON request messages\n- `netresearch/jsonmapper`: Mapper for deserialization of JSON response messages into PHP objects\n- `php-http/discovery`: Discovery service for HTTP client and message factory implementations\n- `php-http/httplug`: Pluggable HTTP client abstraction\n- `php-http/logger-plugin`: HTTP client logger plugin for HTTPlug\n- `psr/http-client`: PSR-18 HTTP client interfaces\n- `psr/http-factory`: PSR-7 HTTP message factory interfaces\n- `psr/http-message`: PSR-7 HTTP message interfaces\n- `psr/log`: PSR-3 logger interfaces\n\n### Virtual Package Requirements\n\n- `psr/http-client-implementation`: Any package that provides a PSR-18 compatible HTTP client\n- `psr/http-factory-implementation`: Any package that provides PSR-7 compatible HTTP message factories\n- `psr/http-message-implementation`: Any package that provides PSR-7 HTTP messages\n\n### Development Package Requirements\n\n- `fig/log-test`: PSR-3 logger implementation for testing purposes\n- `nyholm/psr7`: PSR-7 HTTP message factory \u0026 message implementation\n- `phpunit/phpunit`: Testing framework\n- `php-http/mock-client`: HTTPlug mock client implementation\n- `phpstan/phpstan`: Static analysis tool\n- `rector/rector`: Automatic refactoring tool to help with PHP upgrades\n- `squizlabs/php_codesniffer`: Static analysis tool\n\n## Installation\n\n```bash\n$ composer require dhl/sdk-api-parcel-de\n```\n\n## Uninstallation\n\n```bash\n$ composer remove dhl/sdk-api-parcel-de\n```\n\n## Testing\n\n```bash\n$ ./vendor/bin/phpunit -c test/phpunit.xml\n```\n\n## Features\n\nThe DHL Parcel DE Shipping API SDK supports the following features:\n\n* Validate Shipment\n* Create Shipment Order\n* Delete Shipment Order\n\n### Authentication\n\nThe DHL Parcel DE Shipping API requires a two-level authentication\n(see [API User Guide](https://developer.dhl.com/api-reference/parcel-de-shipping-post-parcel-germany-v2#get-started-section/user-guide)):\n\n1. The **application** submits a _Consumer Key Header_ (\"API Key\") that must be\n   created in the [DHL API Developer Portal](https://developer.dhl.com/user/apps).\n2. The **user** is identified via _HTTP Basic Authentication_ with credentials\n   configured in the [DHL Business Customer Portal](https://geschaeftskunden.dhl.de/).\n\nThese credentials are passed to the SDK via `\\Dhl\\Sdk\\ParcelDe\\Shipping\\Api\\Data\\AuthenticationStorageInterface`.\nCreate your own or use the default implementation:\n\n```php\n$authStorage = new \\Dhl\\Sdk\\ParcelDe\\Shipping\\Auth\\AuthenticationStorage('apiKey', 'user', 'password');\n```\n\n### Validate Shipment\n\nValidate shipments for DHL Paket including the relevant shipping documents.\n\n#### Public API\n\nThe library's components suitable for consumption comprise\n\n* services:\n  * service factory\n  * shipment service\n  * data transfer object builder\n* data transfer objects:\n  * [authentication storage](#Authentication)\n  * order/label settings\n  * validation result with status message\n\n#### Usage\n\n```php\n$logger = new \\Psr\\Log\\NullLogger();\n\n$serviceFactory = new \\Dhl\\Sdk\\ParcelDe\\Shipping\\Service\\ServiceFactory();\n$service = $serviceFactory-\u003ecreateShipmentService($authStorage, $logger, $sandbox = true);\n\n$requestBuilder = new \\Dhl\\Sdk\\ParcelDe\\Shipping\\RequestBuilder\\ShipmentOrderRequestBuilder();\n$requestBuilder-\u003esetShipperAccount($billingNumber = '33333333330101');\n$requestBuilder-\u003esetShipperAddress(\n    company: 'DHL',\n    country: 'DEU',\n    postalCode: '53113',\n    city: 'Bonn',\n    street: 'Charles-de-Gaulle-Straße',\n    streetNumber: '20'\n);\n$requestBuilder-\u003esetRecipientAddress(\n    recipientName: 'Jane Doe',\n    recipientCountry: 'DEU',\n    recipientPostalCode: '53113',\n    recipientCity: 'Bonn',\n    recipientStreet: 'Sträßchensweg',\n    recipientStreetNumber: '2'\n);\n$requestBuilder-\u003esetShipmentDetails(productCode: 'V01PAK', shipmentDate: new \\DateTimeImmutable('2023-02-23'));\n$requestBuilder-\u003esetPackageDetails(weightInKg: 2.4);\n\n$shipmentOrder = $requestBuilder-\u003ecreate();\n$result = $service-\u003evalidateShipments([$shipmentOrder]);\n```\n### Create Shipment Order\n\nCreate shipments for DHL Paket including the relevant shipping documents. In\naddition to the primary shipment data (shipper, consignee, etc.), further\nsettings can be defined per request via the _order configuration_ object, including\nlabel printing size, profile, and more.\n\n#### Public API\n\nThe library's components suitable for consumption comprise\n\n* services:\n  * service factory\n  * shipment service\n  * data transfer object builder\n* data transfer objects:\n  * [authentication storage](#Authentication)\n  * order/label settings\n  * shipment with shipment/tracking number and label(s)\n\n#### Usage\n\n```php\n$logger = new \\Psr\\Log\\NullLogger();\n\n$serviceFactory = new \\Dhl\\Sdk\\ParcelDe\\Shipping\\Service\\ServiceFactory();\n$service = $serviceFactory-\u003ecreateShipmentService($authStorage, $logger, sandbox: true);\n\n$orderConfiguration = new \\Dhl\\Sdk\\ParcelDe\\Shipping\\Service\\ShipmentService\\OrderConfiguration(\n    mustEncode: true,\n    combinedPrinting: null,\n    docFormat: \\Dhl\\Sdk\\ParcelDe\\Shipping\\Api\\Data\\OrderConfigurationInterface::DOC_FORMAT_PDF,\n    printFormat: \\Dhl\\Sdk\\ParcelDe\\Shipping\\Api\\Data\\OrderConfigurationInterface::PRINT_FORMAT_A4\n);\n\n$requestBuilder = new \\Dhl\\Sdk\\ParcelDe\\Shipping\\RequestBuilder\\ShipmentOrderRequestBuilder();\n$requestBuilder-\u003esetShipperAccount(billingNumber: '33333333330101');\n$requestBuilder-\u003esetShipperAddress(\n    company: 'DHL',\n    country: 'DEU',\n    postalCode: '53113',\n    city: 'Bonn',\n    streetName: 'Charles-de-Gaulle-Straße',\n    streetNumber: '20'\n);\n$requestBuilder-\u003esetRecipientAddress(\n    name: 'Jane Doe',\n    countryCode: 'DEU',\n    postalCode: '53113',\n    city: 'Bonn',\n    streetName: 'Sträßchensweg',\n    streetNumber: '2'\n);\n$requestBuilder-\u003esetShipmentDetails(productCode: 'V01PAK', shipmentDate: new \\DateTimeImmutable('2023-02-23'));\n$requestBuilder-\u003esetPackageDetails(weightInKg: 2.4);\n\n$shipmentOrder = $requestBuilder-\u003ecreate();\n$shipments = $service-\u003ecreateShipments([$shipmentOrder], $orderConfiguration);\n```\n\n### Delete Shipment Order\n\nCancel earlier created shipments.\n\n#### Public API\n\nThe library's components suitable for consumption comprise\n\n* services:\n  * service factory\n  * shipment service\n* data transfer objects:\n  * authentication storage\n\n#### Usage\n\n```php\n$logger = new \\Psr\\Log\\NullLogger();\n\n$serviceFactory = new \\Dhl\\Sdk\\ParcelDe\\Shipping\\Service\\ServiceFactory();\n$service = $serviceFactory-\u003ecreateShipmentService($authStorage, $logger, sandbox: true);\n\n$shipmentNumber = '333301011234567890';\n$cancelled = $service-\u003ecancelShipments([$shipmentNumber]);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetresearch%2Fdhl-sdk-api-parcel-de","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetresearch%2Fdhl-sdk-api-parcel-de","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetresearch%2Fdhl-sdk-api-parcel-de/lists"}