---
title: "Trackflow"
description: "Så kopplar ni Trackflow från Triona till Wellfish med en API-nyckel, vad Wellfish gör med varje transportorder, och API-specifikationen för Triona."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.wellfish.se/llms.txt
> Use this file to discover all available pages before exploring further.

# Trackflow

Trackflow körs hos varje åkeri och **skickar** transportordrar till Wellfish med fordon, bränsletyp och bränsleförbrukning. Wellfish anropar aldrig Trackflow. Varje order får ett exakt avtryck från källa till hjul (well-to-wheel), och ni kan filtrera på fordonstyp, bränsle och fordon i klimatöversikten.

## Koppla

1. **Skapa en API-nyckel**

   Öppna **Integrationer** i Wellfish och klicka på **Lägg till integration** på kortet Trackflow. Klicka på **Skapa API-nyckel**. Kopiera nyckeln och spara den säkert. Nyckeln visas bara en gång.
2. **Ge nyckeln till Triona**

   Triona lägger in nyckeln i er Trackflow-installation. Trackflow skickar den i rubriken `X-Api-Key` när ordrar skickas.
3. **Ordrarna dyker upp**

   Ordrarna visas under **Transaktioner** så snart Trackflow har skickat dem. De är godkända direkt, eftersom beräkningen inte använder AI.

### Byta nyckel

Klicka på **Ansluten** på kortet och sedan på **Rotera API-nyckel**. Den gamla nyckeln slutar fungera direkt. Trackflow kan inte skicka ordrar förrän Triona har lagt in den nya nyckeln.

## Vad Wellfish gör med en order

- Skapar en godkänd transaktion av typen **Transport** under ert företag, daterad ordens datum, med dimensionerna **Fordonstyp**, **Bränsle** och **Fordon**.
- Räknar utsläppet som bränslemängd gånger Wellfish well-to-wheel-faktor för bränslet, med den emissionsfaktor som gällde på ordens datum. Utsläppet hamnar i scope 1.
- Visar ordern i klimatöversikten som alla andra transaktioner.

Skickas samma order igen med nya uppgifter, till exempel uppmätt förbrukning i stället för uppskattad, ersätts den tidigare versionen. En order som någon har ändrat för hand i Wellfish skrivs inte över.

## För Triona: API-specifikation

### Anrop

```text
POST https://app.wellfish.se/api/trackflow/transport-orders
Content-Type: application/json
X-Api-Key: <företagets API-nyckel>
```

Nyckeln hör till ett företag, så anropet behöver inget företags-ID. För test mot staging används `https://staging.wellfish.se/api/trackflow/transport-orders` med en nyckel skapad på staging. OpenAPI-dokumentet finns på `/api/swagger/v1/swagger.json`.

Högst **1000 ordrar** per anrop. Dela upp längre perioder i flera anrop.

```json title="Exempel på anrop"
{
  "orders": [
    {
      "externalId": "TF-2026-000123",
      "date": "2026-08-14",
      "vehicleType": "Lastbil med släp",
      "vehicleId": "ABC123",
      "fuelType": "HVO100",
      "fuelQuantity": 132.5,
      "fuelUnit": "liter",
      "consumptionSource": "estimated",
      "distanceKm": 412.0,
      "customerReference": "Order 88123",
      "description": "Grus Borlänge–Falun"
    }
  ]
}
```

| Fält | Typ | Krävs | Beskrivning |
| --- | --- | --- | --- |
| `externalId` | text, högst 100 tecken | ja | Trackflows order-ID. Skickas samma ID igen ersätts den tidigare versionen. |
| `date` | `YYYY-MM-DD` | ja | Dagen ordern utfördes. För ordrar över flera dagar, sista dagen. |
| `vehicleType` | text | ja | Fordonsklass som den heter i Trackflow. Visas som dimensionen Fordonstyp. |
| `vehicleId` | text | nej | Registreringsnummer eller liknande. Visas som dimensionen Fordon. |
| `fuelType` | text | ja | Bränslets namn i Trackflow. Matchas på nyckelord, se nedan. |
| `fuelQuantity` | tal större än 0 | ja | Förbrukat bränsle för ordern, i `fuelUnit`. |
| `fuelUnit` | `liter` eller `kg` | nej | Standard `liter`. Måste vara `kg` för gas. |
| `consumptionSource` | `estimated` eller `measured` | nej | Standard `estimated`. Använd `measured` när värdet kommer från fordonet. |
| `distanceKm` | tal, 0 eller mer | nej | Sparas och visas. Används inte i beräkningen. |
| `customerReference` | text | nej | Visas i transaktionstexten. |
| `description` | text | nej | Visas i transaktionstexten. |

### Bränsletyper

Matchningen är skiftlägesokänslig och sker på nyckelord, så Trackflows egna bränslenamn kan skickas som de är.

| Exempel på namn | Bränsle i Wellfish | Enhet |
| --- | --- | --- |
| Diesel, Diesel B7, MK1, Preem Evolution Diesel | Diesel | liter |
| HVO100, HVO 100, Neste MY HVO | HVO100 | liter |
| Bensin, Bensin 95, Petrol | Bensin | liter |
| RME100, RME, FAME, Biodiesel | RME100 | liter |
| Etanol, ED95, E85 | Etanol | liter |
| Fordonsgas, Biogas, CBG, LBG, CNG, LNG | Fordonsgas | kg |

Eldrivna fordon stöds inte ännu. Sådana ordrar avvisas rad för rad med `UnsupportedFuelType`, och resten av anropet behandlas.

### Svar

`200 OK` så snart nyckeln är giltig och innehållet går att läsa. Giltiga ordrar sparas alltid. Varje order som inte sparades listas i `errors` med sitt index i anropet, räknat från 0.

```json title="Exempel på svar"
{
  "received": 3,
  "created": 1,
  "updated": 1,
  "unchanged": 0,
  "rejected": 1,
  "errors": [
    {
      "index": 2,
      "externalId": "TF-2026-000125",
      "code": 1,
      "message": "Unsupported fuel type 'El'. Supported: Diesel, HVO100, Bensin, RME100, Etanol, Fordonsgas"
    }
  ]
}
```

| `code` | Betydelse |
| --- | --- |
| 0 `ValidationError` | Ett fält saknas eller är ogiltigt, eller samma `externalId` förekommer två gånger i anropet. Meddelandet anger fältet. |
| 1 `UnsupportedFuelType` | `fuelType` kändes inte igen, eller är el. |
| 2 `FuelCategoryMissing` | Emissionsfaktorn för bränslet saknas i miljön. Kontakta Wellfish. |
| 3 `ManuallyChanged` | Ordern har ändrats av en person i Wellfish och skrivs därför inte över. |
| 4 `CreateFailed` | Wellfish kunde inte spara ordern. Försök igen senare. Kontakta Wellfish om felet kvarstår. |

| Status | Orsak |
| --- | --- |
| `400 Bad Request` | Innehållet är inte giltig JSON, `orders` är tom, eller fler än 1000 ordrar. |
| `401 Unauthorized` | `X-Api-Key` saknas eller är okänd. |

### Samma order flera gånger

`externalId` är nyckeln. Skickas en order igen:

- med samma uppgifter räknas den som `unchanged`, och ingenting händer;
- med andra uppgifter ersätts den tidigare versionen, och den räknas som `updated`;
- efter att en person har ändrat ordern i Wellfish avvisas den med `ManuallyChanged`, och personens version behålls.

Det säkraste är därför att skicka om en hel period, till exempel föregående månad, när något ändras i Trackflow.

### Exempel med curl

```bash
curl -X POST https://staging.wellfish.se/api/trackflow/transport-orders \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $TRACKFLOW_API_KEY" \
  -d '{"orders":[{"externalId":"TF-1","date":"2026-08-14","vehicleType":"Lastbil med släp","fuelType":"HVO100","fuelQuantity":132.5}]}'
```

Source: https://docs.wellfish.se/integrationer/transport/trackflow/index.mdx
