OMS · API Reference

Pulpo Flow API

Flow tar emot ordrar från shop/WooCommerce, håller orderdomän och status, och kan trigga Reach för leveransmail.

Bas-URL
http://localhost:3848
Auth
X-API-Key: <FLOW_API_KEY>
Notering
Alla order-endpoints kräver API-nyckel. Health är publik.

Om Flow

Felformat

Error responsejson
{
  "ok": false,
  "error": "Unauthorized"
}

System

GET/api/healthPublik

Health check

Request

Ingen request body

Response

Service-info

Exampleapplication/json
{
  "ok": true,
  "service": "pulpo-flow",
  "product": "OMS"
}

Ordrar

GET/api/ordersAuth

Lista ordrar

Request

Ingen request body

Response

Orderlista

Exampleapplication/json
{
  "ok": true,
  "orders": [
    {
      "id": "ord_…",
      "orderNumber": "PF-1002",
      "brand": "trirebels",
      "status": "confirmed",
      "totalOre": 34800,
      "currency": "SEK",
      "createdAt": "2026-09-12T10:00:00.000Z"
    }
  ]
}
POST/api/ordersAuth

Skapa order

Status blir confirmed. Belopp i öre.

Request

FältTypBeskrivning
brand*stringVarumärkes-slug
customer.email*stringKundens e-post
customer.name*stringKundens namn
shippingAddress*objectLeveransadress (country default SE)
items[]*arrayMinst en rad · belopp i öre
sourcestringdefault manual · t.ex. shop, woocommerce
wooOrderIdnumberLänkar Woo-order
shippingOrenumberFrakt i öre · default 0
Bodyapplication/json
{
  "externalId": "shop-abc-123",
  "wooOrderId": 18421,
  "brand": "trirebels",
  "source": "woocommerce",
  "customer": {
    "email": "kund@example.com",
    "name": "Kim Kund",
    "phone": "+46701234567"
  },
  "shippingAddress": {
    "name": "Kim Kund",
    "street": "Kungsgatan 1",
    "postalCode": "111 43",
    "city": "Stockholm",
    "country": "SE"
  },
  "items": [
    {
      "sku": "DEMO-1",
      "name": "Demo-produkt",
      "qty": 1,
      "unitPriceOre": 29900,
      "totalOre": 29900
    }
  ],
  "currency": "SEK",
  "shippingOre": 4900,
  "notes": "valfri notis"
}

Response

Order skapad

Exampleapplication/json
{
  "ok": true,
  "order": {
    "id": "ord_…",
    "orderNumber": "PF-1002",
    "brand": "trirebels",
    "source": "woocommerce",
    "status": "confirmed",
    "customer": {
      "email": "kund@example.com",
      "name": "Kim Kund"
    },
    "items": [
      {
        "sku": "DEMO-1",
        "name": "Demo-produkt",
        "qty": 1,
        "unitPriceOre": 29900,
        "totalOre": 29900
      }
    ],
    "subtotalOre": 29900,
    "shippingOre": 4900,
    "totalOre": 34800,
    "currency": "SEK",
    "events": [
      {
        "id": "evt_…",
        "at": "2026-09-12T10:00:00.000Z",
        "type": "created",
        "message": "Order skapad"
      }
    ],
    "createdAt": "2026-09-12T10:00:00.000Z",
    "updatedAt": "2026-09-12T10:00:00.000Z"
  },
  "notify": {},
  "woo": {}
}
GET/api/orders/:idAuth

Hämta order

Parameters

NamnInTypBeskrivning
id*pathstringOrder-id

Request

Ingen request body

Response

Order-objekt

Exampleapplication/json
{
  "ok": true,
  "order": {
    "id": "ord_…",
    "orderNumber": "PF-1002",
    "status": "shipped",
    "carrier": "PostNord",
    "trackingNumber": "SE123",
    "totalOre": 34800
  }
}
PATCH/api/orders/:idAuth

Uppdatera status / tracking

syncWoo default true. Leveransmail via Reach när status/shipped och Reach är konfigurerat.

Parameters

NamnInTypBeskrivning
id*pathstringOrder-id

Request

FältTypBeskrivning
statusOrderStatusNy status
carrierstringVisningsnamn, t.ex. PostNord
trackingNumberstringSpårningsnummer
trackingUrlstringSpårningslänk
syncWoobooleandefault true
Bodyapplication/json
{
  "status": "shipped",
  "carrier": "PostNord",
  "trackingNumber": "SE123",
  "trackingUrl": "https://www.postnord.se/",
  "note": "Skickad från lagret",
  "syncWoo": true
}

Response

Uppdaterad order

Exampleapplication/json
{
  "ok": true,
  "order": {
    "id": "ord_…",
    "orderNumber": "PF-1002",
    "status": "shipped",
    "carrier": "PostNord",
    "trackingNumber": "SE123",
    "trackingUrl": "https://www.postnord.se/",
    "updatedAt": "2026-09-12T14:00:00.000Z"
  }
}
POST/api/orders/:id/delivery-mailAuth

Omskick av leveransmail

Skickar delivery_confirmation via Pulpo Reach.

Parameters

NamnInTypBeskrivning
id*pathstringOrder-id

Request

Ingen request body

Response

Mail skickat / mockat

Exampleapplication/json
{
  "ok": true,
  "mailed": true,
  "mocked": false
}

Att tänka på

  • Belopp i öre (unitPriceOre, totalOre, shippingOre)
  • Status: draft · confirmed · paid · fulfilling · shipped · delivered · cancelled · returned
  • Orderbekräftelse ägs av shoppen — Flow skickar leveransmail via Reach