VulCode

InPost ShipX integration: lockers and labels

The customer picks a locker on the map at checkout, your system creates the shipment and label through the ShipX API, and the parcel status flows back to the order by itself, via InPost webhooks.

Couriers and shipping
Today's InPost shipments to dispatch in the store panel: orders with the destination locker, the sending method and statuses
Picking a parcel locker on the map at a store checkout on a phone

From picking a locker to a status on the order

The whole shipment path in an InPost integration. Each step is a different part of the API.

Ttwojsklep.pl
Choose a parcel locker
Nearest, 350 mEXA01M, 12 Przykładowa Stselected
600 mEXA07M, 7 Pokazowa Ave
750 mEXA12M, 3 Testowa St
Pick up at EXA01M
Ttwojsklep.pl
Order #20447
Statusnewprepared
PickupLocker EXA01M
Shipment details
MMailtwojsklep.pl
Your companyOrder #20447 received. Pickup at locker EXA01M.
Your companyOrder #20447 has been dispatched. You will collect it at locker EXA01M.
Track the parcel
Store paneltoday
Orders delivered to a parcel locker
OrderRecipientLockerStatus
#20447Client 11EXA01Mdispatched
#20446Client 10EXA12Mprepared
#20441Client 05EXA15Mdispatched
#20440Client 04EXA01Mready for pickup
#20438Client 02EXA07Mready for pickup
#20447Client 11EXA01M
newpreparedPDF labeldispatchedstored_by_sender
  1. CustomerPicks a point on the Geowidget map at checkout.Store panelThe locker code is stored with the order.UnderneathGeowidget hands over the point with the onpoint event. The map needs only a public token, separate from the ShipX token.
  2. CustomerSees in the client panel that the parcel is prepared.Store panelThe shipment has a PDF label and a sending method.UnderneathA shipment POST to ShipX. A validation error comes back with a key and description, so the team knows what to fix.
  3. CustomerGets a message that the parcel is on its way.Store panelThe order status changes to dispatched.UnderneathThe shipment_status_changed webhook, e.g. with the stored_by_sender status.

Sending methods in ShipX

A shipment in the API names its sending method. It decides how the parcel reaches InPost. Available methods depend on the shipment service.

Your warehouse
A ShipX shipment with its sending method and label.
  • Parcel locker

    parcel_locker

    Dispatch at a parcel locker.

    When we choose itA small shop that drops parcels itself.

  • Any locker or ParcelPoint

    any_point

    Dispatch at any locker or ParcelPoint.

    When we choose itWhen the sender wants flexibility.

  • Parcel service point

    pop

    Dispatch at a parcel service point.

    When we choose itParcels that do not fit a locker.

  • A courier from your warehouse

    dispatch_order

    A pickup order, i.e. booking a courier.

    When we choose itA warehouse with more parcels a day.

  • InPost branch

    branch

    Delivery to an InPost branch.

    When we choose itLarge volumes per agreement.

The InPost network
The hub and the route to the recipient's locker.

The parcel status in your system

InPost has a long status list. In the client panel we fold it into a few the customer understands, with the full status in the log.

  1. Prepared

    Shipment created in ShipX, label ready. The shipment_confirmed webhook.

    InPost event: shipment_confirmed
  2. Dispatched

    The parcel is in the sending locker or picked up by a courier, e.g. status stored_by_sender.

    #20441
    EXA15M, Client 05
    InPost event: e.g. stored_by_sender
  3. In transit

    The parcel is at a hub and on its way. The customer is informed by the panel and by InPost.

  4. Ready for pickup

    At the destination locker. The moment the customer most wants to know about.

    #20447
    EXA01M, Client 11
  5. Delivered

    Picked up by the customer. The order can be closed.

    #20438
    EXA07M, Client 02
The InPost integration log in the store panel: webhooks from InPost, the shipment status read from one and what the store did

Where the panel gets the status

Every change arrives as a webhook from InPost. The integration log shows what came in and what the store did with it.

  1. Events from the documentation

    InPost sends shipment_confirmed, shipment_status_changed and offers_prepared, among others. The integration accepts them from 91.216.25.0/24.

  2. The full status stays in the log

    The InPost status, e.g. stored_by_sender, goes into the log, while the customer sees a shorter name: dispatched.

  3. One event, three effects

    A new status in the client panel, an entry in the order history and a message to the customer.

Off the path: not collected in time, returned to sender. An uncollected parcel comes back. The panel shows support before the customer asks.

A plugin, an aggregator or ShipX directly

InPost lists platforms integrated with its services. We write code where that is not enough.

Shipping scale
  1. A small store on a platform
    A platform plugin or an aggregator such as Furgonetka or Apaczka, with a point map at checkout.
    At this stage
    • WhenThe store runs on a platform from InPost's list.
    • CarriersYou ship with several carriers and want one panel.
    • DispatchDispatch at a parcel locker. A small shop that drops parcels itself.
    Sending method in ShipX
    parcel_locker
  2. A custom store or warehouse
    A ShipX API and Geowidget integration in your code, with status webhooks.
    At this stage
    • WhenThe store or warehouse is custom-built.
    • PanelParcel statuses should live in your client panel.
    • DispatchDispatch at any locker or ParcelPoint. Dispatch at a parcel service point.
    Sending method in ShipX
    any_pointpop
  3. A warehouse shipping more parcels a day
    You book the courier for your parcels from the store panel, through a ShipX pickup order.
    At this stage
    • WhenYou need pickup orders and your own dispatch rules.
    • DispatchA pickup order, i.e. booking a courier.
    Sending method in ShipX
    dispatch_order
  4. Large volumes per agreement
    Delivery to an InPost branch.
    At this stage
    • AgreementShipX needs a Manager Paczek account with company details, and you can generate the API token only after you fill in the invoice details there. Service terms depend on your InPost agreement.
    • DispatchAvailable methods depend on the shipment service.
    Sending method in ShipX
    branch
The scale has no parcel-count thresholds, as service terms depend on your InPost agreement.

Before the first parcel goes through the API

Details from the InPost documentation that block the launch if forgotten.

Request or settingPer the InPost documentationWhat the integration doesBefore launch
Request or settingGET /api/inpost/webhookInPost checks the address when the webhook is saved
Per the InPost documentationAn HTTP 200 response
What the integration does200, the address saved in Manager Paczek
Handled before launch
Request or setting91.216.25.14A webhook from the InPost range
Per the InPost documentationAccepted
What the integration does200, the status reaches the order
Handled before launch
Request or setting203.0.113.7A webhook from outside 91.216.25.0/24
Per the InPost documentationRejected
What the integration doesRejected, with a log entry
Handled before launch
Request or settingsandbox-api-shipx-pl.easypack24.netA token from the production Manager Paczek
Per the InPost documentationDoes not work, the sandbox has a separate account
What the integration doesA separate token and organisation id for the sandbox
Handled before launch
Request or settingparcel_lockerThe first locker shipment
Per the InPost documentationNeeds funds on the account, virtual ones in the sandbox
What the integration doesThe account topped up before the first batch of shipments
Handled before launch

5 checks before the first parcel through the API

Common questions about InPost integration

Answers about the InPost agreement, the locker map, statuses and the quote.

How many parcels do you ship a day?

Tell us where orders are created and how you ship today. We will reply within an hour with questions and a quote.