Pulpo WMS connector

Updated May 26, 20262 min read

Use this connector to create Carriyo shipments automatically as your warehouse packs orders in Pulpo WMS. Carriyo receives a webhook from Pulpo when packing finishes, either for the whole order or per box, depending on your configuration. Once Carriyo generates the label, it uploads the PDF or PNG back to the Pulpo box. Warehouse staff can then print directly from the Pulpo UI.

Capabilities

  • Webhook-driven shipment creation. One Carriyo shipment per Pulpo packing box. Parcel dimensions and weight come straight from the box.
  • Label round-trip. When the Carriyo label is generated, the connector uploads it to the matching Pulpo box via the Pulpo packing API.
  • Per-box tracking events. Carriyo writes label-generation milestones (started, failed, generated) back as Pulpo shipment-tracking events on each box.
  • Auto-managed webhook subscriptions. On connector save, Carriyo creates or updates the Pulpo webhook client and one webhook per mapped warehouse.

Setup

Configure in the Carriyo Dashboard under Connectors → Pulpo WMS.

  • Pulpo WMS Domain: eu-show.pulpo.co for the Pulpo test environment, or eu.pulpo.co for live.
  • Username and Password: Pulpo credentials used to fetch an OAuth token. Carriyo caches the token between calls.
  • Pulpowms Merchant: your numeric Pulpo merchant id.
  • Trigger on order finished: when on, the connector listens for packing_order_finished (the whole order packed). When off, it listens for packing_box_closed (every box).
  • Locations mapping: Pulpo warehouse name to Carriyo location.

After the first save, the connector displays a read-only apiKey. Pulpo must send this value in the X-API-KEY header on every inbound webhook. Carriyo rejects requests that omit or mismatch the key.

Once the connector is saved, set up your automation rules so Carriyo assigns the carrier automatically. When creating an order in Pulpo, leave the Ship with field empty so Carriyo's rules pick the carrier. If the field contains an unrecognized value, the shipment may error and Carriyo returns no label to Pulpo. In that case, download the label directly from Carriyo.

Data mapping

PulpoCarriyo
salesOrder.orderNumreferences.partner_order_reference
{sequenceNumber}-{boxId}references.partner_shipment_reference
Each packing boxone parcel (dimension {width, height, depth}, weight)
packingBoxItemsparcel_items (sku, description, costPrice, weight, hsCode, originCountry, first barcode)
shippingMethod.namecarrier_account.carrier_account_name
salesOrder.shipTodropoff (street and house number concatenated into address1)
Pulpo warehouse name (via Locations mapping)pickup.partner_location_id

Limits and cadence

  • Cadence. Webhook-driven only. No polling.
  • Currency. Hard-coded to AED: not suitable for tenants outside the MENA region without a customization.
  • Payment. Hard-coded to PRE_PAID with total_amount: 0. COD is not supported via this connector.
  • No retry loop. If the label upload back to Pulpo fails, the Carriyo shipment remains but the Pulpo box is tracked as failed/attach.
  • Label staging. Labels are staged in /tmp on the connector runtime before being POSTed to Pulpo's attach endpoint.