Skip to main content
Available to all Logistics customers with booking enabled. No separate PUDO setting is needed.

Summary

PUDO Delivery lets you book an outbound shipment to a pick-up or drop-off point (a parcel locker, parcel shop or post office) instead of the shopper’s home, by passing one Perform.AI location ID in the booking. Perform.AI resolves the carrier’s own location ID, validates the booking and produces a label routed to that point, and the shipment keeps a record of every PUDO location involved in its journey.

Who it’s for

Engineering teams that offer pick-up points at checkout and want one booking integration rather than one per carrier, and operations teams that need to see where a parcel was actually delivered when a carrier diverts it to a locker or shop.

Key benefits

  • One ID across carriers. The pudo_location_uuid from the PUDO Locations API is carrier-agnostic; Perform.AI maps it to the carrier-specific ID the label needs.
  • Errors before the label. Three checks run at booking time: the shipping service supports PUDO, the location exists and is still active, and the carrier accepts it. Each failure returns a named error.
  • The home address is preserved. to_address on the shipment is never changed; the label uses the PUDO address while notifications and returns keep the shopper’s address.
  • The full PUDO history on the shipment. Both the point you booked and any point the carrier reports in tracking are stored, with live opening hours.

How it works

The flow

  1. Retrieve the point the shopper chose with the PUDO Locations API. The response contains a pudo_location_uuid.
  2. Pass that pudo_location_uuid in the Create Booking request. A booking without it is a normal home delivery.
  3. Perform.AI validates the request, resolves the carrier-specific PUDO ID and sends it to the carrier’s label API.
  4. On success the label is routed to the PUDO point, and the location is stored on the shipment as an Outbound Delivery entry. On failure nothing is written.

Validation at booking time

The location is re-validated at booking, which catches points that closed between the shopper’s choice and the booking. PUDO master data is refreshed on a schedule, so a location that closed since the last refresh can still fail at the carrier.

PUDO-supported shipping services

Under Settings > Carriers > carrier > Booking, the Shipping Service dropdown marks services that support PUDO delivery with a PUDO Supported tag. The tag is informational and does not restrict selection; the booking validation enforces compatibility.

Supported carriers

Outbound PUDO booking is live for PostNord, DPD Germany, Colissimo and InPost. Other carriers are added after carrier assessment; ask your account team about a carrier not listed.

PUDO history on a shipment

Each shipment keeps an append-only list of PUDO locations. Entries are added, never changed or removed: Each entry stores the Perform.AI location ID, the carrier’s location ID at the time of booking, the name and the address on the label, the type and the time added. Opening hours, cut-off hours and closing periods are looked up live from the location each time they are displayed, so they are current when the shopper collects.

Where it appears

  • Shipment Details and Booking Details show a PUDO Location section, directly after the tracking or booking details, whenever the shipment has at least one entry. It shows the most recent entry: location ID, PUDO type, name, address and opening hours. If the location has expired, the section shows “PUDO Location is no longer supported. Please contact us for assistance.”
  • The Create Booking response echoes the confirmed location details.

Limitations

  • Return PUDO bookings (shopper drop-off for a return) are not supported through this flow.
  • PUDO details are not yet included in Perform.AI delivery notification emails; retrieve them from the booking and include them in your own shopper communication.
  • A pudo_location_uuid cannot be stored at shipment creation; pass it in the booking request.

Set up in the portal

  1. Go to Settings > Carriers, open the carrier and its Booking section.
  2. In the Shipping Service dropdown, choose a service that carries the PUDO Supported tag.
  3. Confirm the carrier’s booking connection is active. See Multi-Carrier Shipping.
  4. In your integration, add pudo_location_uuid to booking requests whenever the shopper selected a pick-up point. There is no further portal setting.

Use via API and MCP

To offer pick-up points at checkout, see Pick-Up Point Selector.

FAQ

How do I know which shipping services support PUDO delivery?

Open the carrier’s Booking section under Settings > Carriers; PUDO-capable services carry the PUDO Supported tag in the Shipping Service dropdown. If a service you need is not tagged, ask your account team.

What happens to the shopper’s home address?

to_address is never modified. The label uses the PUDO address resolved from pudo_location_uuid, and the home address stays on the shipment for notifications, return labels and reconciliation.

My booking returned PUDO_LOCATION_INACTIVE. What does it mean?

The location exists but is expired or closed, usually because the ID came from an older PUDO Locations response. Query the PUDO Locations API again for an active point and book again.

Why is there no PUDO Location section on my shipment?

The section appears only when the shipment has at least one PUDO entry: the booking was a home delivery, the PUDO booking failed (nothing is written on failure), or no carrier event has reported a point yet.

Why are opening hours blank?

Opening hours are fetched live from the location. If the location returns no hours, the section is hidden; if the location has expired, an error message is shown instead.

Troubleshooting