From 6ae1d70bc6361b17888137419542ce75712ca483 Mon Sep 17 00:00:00 2001 From: Zwaans Date: Tue, 10 Mar 2026 14:34:33 +0100 Subject: [PATCH 1/2] :sparkles: Renamed references to the website to solutions --- specification/info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specification/info.json b/specification/info.json index cfc8438f..dbe34b26 100644 --- a/specification/info.json +++ b/specification/info.json @@ -1,15 +1,15 @@ { "title": "MyParcel.com API Specification", "description": "**Introduction**
This is the technical reference for the MyParcel.com API implementing the [OpenApi 3.0 Specification](https://github.com/OAI/OpenAPI-Specification) according to [JSON API](https://jsonapi.org) conventions.
Check our [API documentation](https://docs.myparcel.com) for more information and code examples.
Check our [GitHub releases](https://github.com/MyParcelCOM/api-specification/releases) for a complete version history.

⚠ Some endpoints are marked as experimental, which means their implementation might change within this major version.

**Units**
Some attributes in the API have values in one of the following units:
Currencycents / pence
Distancesmeters
Dimensionsmillimeters
TimestampsCoordinated Universal Time (UTC)
Volumesliters (dm3)
Weightsgrams
", - "termsOfService": "https://www.myparcel.com/legal", + "termsOfService": "https://solutions.myparcel.com/legal", "contact": { "name": "Tech Support", - "url": "https://www.myparcel.com/contact", + "url": "https://solutions.myparcel.com/contact", "email": "support@myparcel.com" }, "license": { "name": "pricing", - "url": "https://www.myparcel.com/pricing" + "url": "https://solutions.myparcel.com/pricing" }, "version": "$RELEASE_VERSION", "x-logo": { From 9661f214afadc8cbcea03e73ea14e88a62045db7 Mon Sep 17 00:00:00 2001 From: Daniel Verner Date: Mon, 23 Mar 2026 17:04:03 +0100 Subject: [PATCH 2/2] Implemented + moved PUDO to dedicated schemas --- specification/paths/RegisteredShipments.json | 6 +++++ specification/paths/Shipments.json | 6 +++++ specification/schemas.json | 6 +++++ .../schemas/shipments/DropOffLocation.json | 15 ++++++++++++ .../schemas/shipments/PickupLocation.json | 14 +++++++++++ specification/schemas/shipments/Shipment.json | 23 +++++++++---------- .../schemas/shipments/ShipmentResponse.json | 6 +++++ 7 files changed, 64 insertions(+), 12 deletions(-) create mode 100644 specification/schemas/shipments/DropOffLocation.json create mode 100644 specification/schemas/shipments/PickupLocation.json diff --git a/specification/paths/RegisteredShipments.json b/specification/paths/RegisteredShipments.json index 4bd14198..31a231cd 100644 --- a/specification/paths/RegisteredShipments.json +++ b/specification/paths/RegisteredShipments.json @@ -80,6 +80,12 @@ "address" ] }, + "drop_off_location": { + "required": [ + "code", + "address" + ] + }, "tracking_code": { "readOnly": true }, diff --git a/specification/paths/Shipments.json b/specification/paths/Shipments.json index 2bc7a877..ea2adba5 100644 --- a/specification/paths/Shipments.json +++ b/specification/paths/Shipments.json @@ -237,6 +237,12 @@ "address" ] }, + "drop_off_location": { + "required": [ + "code", + "address" + ] + }, "tracking_code": { "readOnly": true }, diff --git a/specification/schemas.json b/specification/schemas.json index 80c981d5..7c45ff17 100644 --- a/specification/schemas.json +++ b/specification/schemas.json @@ -170,6 +170,12 @@ "DocumentType": { "$ref": "./schemas/files/DocumentType.json" }, + "PickupLocation": { + "$ref": "./schemas/shipments/PickupLocation.json" + }, + "DropOffLocation": { + "$ref": "./schemas/shipments/DropOffLocation.json" + }, "DemoOrder": { "$ref": "./schemas/return-orders/DemoOrder.json" }, diff --git a/specification/schemas/shipments/DropOffLocation.json b/specification/schemas/shipments/DropOffLocation.json new file mode 100644 index 00000000..3505f383 --- /dev/null +++ b/specification/schemas/shipments/DropOffLocation.json @@ -0,0 +1,15 @@ +{ + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "example": "205604", + "description": "Code of the drop-off location, retrieved from the `pickup-dropoff-locations` endpoint." + }, + "address": { + "$ref": "#/components/schemas/BaseAddress" + } + }, + "description": "Required if the service handover method is `drop-off`." +} diff --git a/specification/schemas/shipments/PickupLocation.json b/specification/schemas/shipments/PickupLocation.json new file mode 100644 index 00000000..743c2e6e --- /dev/null +++ b/specification/schemas/shipments/PickupLocation.json @@ -0,0 +1,14 @@ +{ + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "example": "205604" + }, + "address": { + "$ref": "#/components/schemas/BaseAddress" + } + }, + "description": "Required if the service delivery method is `pick-up`." +} diff --git a/specification/schemas/shipments/Shipment.json b/specification/schemas/shipments/Shipment.json index 7f28b894..65404c05 100644 --- a/specification/schemas/shipments/Shipment.json +++ b/specification/schemas/shipments/Shipment.json @@ -52,18 +52,17 @@ "pickup_location": { "oneOf": [ { - "type": "object", - "additionalProperties": false, - "properties": { - "code": { - "type": "string", - "example": "205604" - }, - "address": { - "$ref": "#/components/schemas/BaseAddress" - } - }, - "description": "Required if the service delivery method is `pick-up`." + "$ref": "#/components/schemas/PickupLocation" + }, + { + "type": "null" + } + ] + }, + "drop_off_location": { + "oneOf": [ + { + "$ref": "#/components/schemas/DropOffLocation" }, { "type": "null" diff --git a/specification/schemas/shipments/ShipmentResponse.json b/specification/schemas/shipments/ShipmentResponse.json index a0c5e4b9..7db2de99 100644 --- a/specification/schemas/shipments/ShipmentResponse.json +++ b/specification/schemas/shipments/ShipmentResponse.json @@ -51,6 +51,12 @@ "address" ] }, + "drop_off_location": { + "required": [ + "code", + "address" + ] + }, "physical_properties": { "required": [ "weight"