openapi: 3.2.0 info: title: Tracking Pull Retrieve last event API description: Documentation on using the Tracking Pull API contact: name: Find an up-to-date version of this API's docs in Confluence. url: https://paacklogistics.atlassian.net/wiki/spaces/PD/pages/3353903120/Pull+API email: tech.writers@paack.co version: 1.0.0 servers: - url: https://tracking.paack.io description: Production environment - url: https://tracking-sta.paack.io description: Staging environment security: - api_key: [] tags: - name: Retrieve last event paths: /api/v3/tracking/events/latest: get: description: Retrieves the last event of the specified orders. operationId: get-events parameters: - name: externalIds in: query description: Comma-separated external IDs for which to retrieve the last event. required: false schema: $ref: '#/components/schemas/ExternalId' - name: saleNumbers in: query description: Comma-separated IDs of the orders for which to retrieve the last event for. schema: $ref: '#/components/schemas/SaleNumber' - name: barcodes in: query description: Comma-separated barcodes of the orders for which to retrieve the last event for. Note that you **cannot** receive an individual parcel querying by barcode because tracking is always done at order level. This query returns the order(s) that include this barcode. schema: $ref: '#/components/schemas/Barcode' - name: deliveryDetails in: query description: 'Sends detailed events for a delivery or a delivery attempt. For example if you use deliveryDetails you will get `SP004` - `DELIVERED THIRD PARTY` for orders delivered to a third party, otherwise you will always get `SP003` - `DELIVERED` for all orders. The same will happen for delivery attempts, if you use deliveryDetails you will get further details about the delivery attempts, otherwise you''ll recieve `SA005` - `ATTEMPTED OTHER`. Existing events for delivery which you can get in case of using this parameter: `SP004` `Delivered to 3rd party` Events that will be available in the future for delivery: `SP022` `Delivered in safe place` `SP027` `Delivered to household member` Existing events for delivery attempts which you can get using this parameter: `SA012` - `ATTEMPTED DAMAGED` , `SA013` - `ATTEMPTED POD NOT PROVIDED` , `SA014` - `ATTEMPTED WEATHER OR DISTURBANCE` , `SA015` - `ATTEMPTED BUSINESS IS CLOSED`' schema: $ref: '#/components/schemas/DeliveryDetails' tags: - Retrieve last event responses: '200': description: Returns information, including the last event, of the orders specified in the query parameter. content: application/json: schema: $ref: '#/components/schemas/statusGetResponse' example: data: - id: 8ba85474-c659-41a4-b5ad-fdd715995f49 external_id: c91db975-32d2-4059-96e3-c5b214b86d94 event_id: SP003 event_name: DELIVERED event_description: The order is being processed in Paack’s network order_status: draft is_open: true parcels: - barcode: '32349234032944' height: 10 length: 40 weight: 3.4 width: 60 - barcode: 05349234032940 height: 10 length: 40 weight: 3.4 width: 60 - barcode: '95349234031144' height: 10 length: 40 weight: 3.4 width: 60 delivery_attempt: 1 delivery_type: direct updated_at: 2023-04-08 12:16:54.949096403 +0000 UTC service_type: ST2 customer: first_name: Antonia Jacobi phone: '+34666666666' email: example@paack.co delivery_address: city: Barcelona country: ES line1: Via Augusta 16 post_code: 08006 expected_delivery_ts: start: '2023-04-08T16:11:00+00:00' end: '2023-04-08T18:22:00+00:00' expected_pickup_ts: start: '2023-04-08T16:01:00+00:00' end: '2023-04-08T16:02:00+00:00' pick_up_address: city: Barcelona country: ES line1: Avenida Diagonal 490 post_code: 08006 order_details: - name: sale_number type: string value: 575a7acd25 - name: paack_order_number type: string value: 575a7acd25c5c91db975-32d2-4059-96e3-c5b214b86d94 - name: retailer_order_number type: string value: c91db975-32d2-4059-96e3-c5b214b86d94 delivery_instructions: Deliver to a neighbour vehicle_type: motorbike pick_up_instructions: The entrance is in Carrer Balmes tracking_url: https://t.staging.paack.co/order_tracking?postal_code=1000-01&tracking_number=c91db975-32d2-4059-96e3-c5b214b86d94 tracking_id: 2e6da281-687b-543e-8cd0-56870fadfff4 error: null '400': $ref: '#/components/responses/getResponse400' '401': $ref: '#/components/responses/unauthorizedError' '404': $ref: '#/components/responses/resourceNotFound' '500': $ref: '#/components/responses/serverError' summary: Get events x-summary-source: derived components: schemas: Parcel: title: Parcel description: ' The Parcels included in the order.' type: object properties: barcode: description: ' Barcode identifier.' type: string height: description: ' The height of the parcel.' type: number id: description: ' Parcel UUID indentifier.' type: string length: description: ' The length of the parcel.' type: number order_id: description: The internal unique ID of an order in Paack. type: string status: description: Information about what is happening to a parcel. type: string weight: description: ' Parcel weight.' type: number width: description: ' Parcel width.' type: number DeliveryDetails: description: Option to show delivery events in details. example: true type: boolean statusGetResponse: title: statusGetResponse type: object properties: data: $ref: '#/components/schemas/OrderStatus' error: type: 'null' example: data: - id: 0e5a1edf-456e-4a74-a9b5-ddef1ddb2d9a external_id: 5CVB4l54_p7sd353a event_id: SM001 event_name: MANIFESTED event_description: The order data has been received in our systems is_open: true parcels: - barcode: 034724878233029421 height: 28.2 length: 38 weight: 12.1 width: 48.2 delivery_attempt: 1 delivery_type: direct updated_at: 2022-08-11 06:31:21.508207777 +0000 UTC service_type: ST2 customer: first_name: Martín Fierro email: martin.fierro@example.es delivery_address: city: Barcelona country: ES line1: Via Augusta 17, Principal post_code: 08006 expected_delivery_ts: start: '2022-09-08T08:00:00+00:00' end: '2022-09-08T10:01:00+00:00' expected_pickup_ts: start: '2022-08-08T16:00:00+00:00' end: '2022-08-08T16:01:00+00:00' pick_up_address: city: Barcelona country: ES line1: Avinguda Diagonal 1234 post_code: 08021 order_details: - name: sale_number type: string value: g_328294984981 - name: paack_order_number type: string value: c348446eee4e5CVB4l54_p7sd353a - name: retailer_order_number type: string value: 5CVB4l54_p7sd353a delivery_instructions: Leave at the door pick_up_instructions: Check opening hours tracking_url: https://t.paack.co/order_tracking?postal_code=08006&tracking_number=5CVB4l54_p7sd353a tracking_id: 4d44aff8-c4d7-5459-8544-d357a1b7c5ab error: null Address: description: Address definition title: Address type: object properties: city: description: City. type: string country: description: Country in ISO 3166 alpha 2 format. type: string example: '`ES` `FR` `GB` `PT` `IT`' county: description: County or region. type: string line_1: description: Primary address. type: string line_2: description: Additional address information. type: string post_code: description: Zip code. type: string Detail: title: Detail type: object description: 'Specifies additional properties of the order. A property called `sale_number` stores the order''s custom identifier. Note that the properties are persisted by Paack although you cannot retrieve them through the GET method. The supported types are `string`, `number`, `boolean`, `object`, `array`, and `null`. For better user experience, only `string`, `number`, and `boolean` are displayed in this documentation.' properties: name: type: string type: type: string value: type: object WindowObject: title: WindowObject description: Timeslot defined by the objects start and end. type: object properties: end: $ref: '#/components/schemas/WindowDatetime' start: $ref: '#/components/schemas/WindowDatetime' SaleNumber: description: Sale ID assigned by the retailer; unique within all the retailer's orders manifested to Paack. Can include special characters but excluding a comma. Note that if you use special characters in a sale number, you will have to convert them to retrieve the order through our tracking. For this reason, we recommend not using special characters. example: V3004 type: string ExternalId: description: Order's ID assigned by the retailer; unique within all the retailer's orders manifested to Paack. Can include special characters but excluding a comma. Note that if you use special characters in an external ID, you will have to convert them to retrieve the order through our tracking. For this reason, we recommend not using special characters. example: 200000V3004 type: string Customer: title: Customer type: object properties: customer_details: description: customer data type: array items: $ref: '#/components/schemas/Detail' customer_type: type: string email: description: Customer's email address. Required if `phone` not provided. type: string external_id: $ref: '#/components/schemas/ExternalId' first_name: description: Customer's first name. type: string last_name: description: Customer's last name. type: string phone: description: Customer's phone number with the country prefix. Required if `email` not provided. type: string WindowDatetime: title: WindowDatetime type: object properties: date: type: string time: type: string OrderStatus: title: OrderStatus type: object properties: cod_currency: type: string description: Currency code in ISO 4217 format. enum: - EUR - GBP cod_value: description: Amount of cash on delivery. type: number customer: description: Customer name. $ref: '#/components/schemas/Customer' delivery_address: $ref: '#/components/schemas/Address' delivery_attempt: description: Number of delivery attempts made. type: integer format: int64 delivery_instructions: description: Optional delivery instructions for Paack. type: string delivery_type: description: Whether delivery is direct or reverse. type: string event_description: description: Description of an event that happens on route. Events trigger information that affect an order's status in the Paack system. type: string event_id: description: Unique ID identifying an event. type: string event_name: description: Name of an event. type: string expected_delivery_ts: $ref: '#/components/schemas/WindowObject' expected_pick_up_ts: $ref: '#/components/schemas/WindowObject' external_order_id: description: Unique external identifier of an order. type: string id: description: Universal unique ID of the order returned by the Pull API. This is different from the order_id returned by the Order Management API. type: string insured_currency: description: Amount of money insured. type: string insured_value: format: double type: number is_open: description: A boolean value which is stored for each order. type: boolean order_details: type: array items: $ref: '#/components/schemas/Detail' order_id: description: The internal unique ID of an order in Paack. type: string order_status: description: Status of an order which gives information about what stage an order is at. type: string parcels: type: array items: $ref: '#/components/schemas/Parcel' parent_id: description: Unique order ID that is created and assigned to an order when a delivery attempt has failed. type: string pick_up_address: $ref: '#/components/schemas/Address' pick_up_instructions: description: Specific instructions for Paack to follow when picking up an order. type: string proof_of_delivery: description: Unique base 64 image that provides proof that a delivery was made. type: string retailer_id: description: A GUID identifying the retailer; assigned by Paack. type: string service_type: description: Code that identifies the delivery day type, timeslot type, and available slot length. type: string enum: - ST2 (Same day delivery) - NT2 (Next day delivery) tracking_id: description: The unique ID assigned to an order for tracking purposes. type: string tracking_url: description: The endpoint that stores the tracking data of an order. It is used to access the end customer tracking page. type: string updated_at: description: A timestamp field specifying when the order was updated. type: string vehicle_type: description: The type of vehicle used to make the order. type: string Barcode: description: Barcode identifier of a parcel within an order. example: '1223738849595004' type: string responses: getResponse400: description: Returned in case of validation errors.

To ensure a correct validation of a request:
- All mandatory query parameters must be defined.
- Values for query parameters in the request must match the specific data type and format, including all limitations (e.g., `externalId` must be unique). content: application/json: schema: properties: code: description: HTTP response code. type: number enum: - 400 message: description: 'invalid request: Query parameters are mandatory.' type: string enum: - invalid request example: code: 400 message: invalid request unauthorizedError: description: Unauthorized because of a missing or expired token. content: application/json: schema: properties: code: description: HTTP response code. type: number enum: - 401 message: description: Error details. type: string enum: - Jwt is missing - Jwt is expired example: code: 401 message: Jwt is missing resourceNotFound: description: The order for the specified parameters could not be found. content: application/json: schema: properties: message: description: '' type: string enum: - Resource not found. serverError: description: Returned in case of an internal server error. content: application/json: schema: properties: message: description: '' type: string enum: - 500 Internal Server Error. securitySchemes: api_key: in: header name: Authorization type: apiKey x-provenance: method: searched source: https://paack.readme.io/reference harvested: '2026-10-14' tool: harvest-readme-openapi.py note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored. assembled_from: - https://paack.readme.io/reference/get-events-1.md - https://paack.readme.io/reference/list-events-1.md merge: pages: 2 deduped: 15 conflicts_kept_first: 0