Spedair DE API-dokumentation

Integreret REST API

Komplet API-reference til Spedair DE forsendelseintegration. Få adgang til booking, fragtrater, labelgenerering og sporing gennem Cargosons samlede transportstyring-API.

Få din API-nøgle

Spedair DE API-oversigt

Denne API giver programmatisk adgang til Spedair DE forsendelseservices gennem Cargosons samlede transportstyringplatform. Integrer Spedair DE funktioner, herunder forsendelsesbooking, sporing, ratetilbud og labelgenerering i dine applikationer.

API-funktioner

  • Opret og administrer Spedair DE forsendelsesbookinger
  • Forsendelsessporing og statusopdateringer
  • Få fragtratetilbud og transittider
  • Generer forsendelselabels i flere formater (PDF, PNG, ZPL)
  • Opret returlabels til returlogistik
  • Forespørg pakkeboks- og afhentningsstedplaceringer
  • Vis tilgængelige fragtmandservices
  • Automatiserede kurérafhentningsanmodninger

Base URL & godkendelse

Base URL

https://www.cargoson.com/api/v1

Godkendelse

Alle anmodninger skal inkludere din API-nøgle og den korrekte Accept-header:

Authorization: Bearer DIN_API_NØGLE
Accept: application/vnd.api.v1

Spedair DE booking-API

Cargoson-automatisering
Cargoson-forbedring:

Spedair DE leverer ikke en booking-API. Cargoson sender automatisk bookingbekræftelser via e-mail på dine vegne, mens du stadig bruger den samme samlede API-grænseflade.

Opret Spedair DE forsendelser og hent forsendelselabels ved hjælp af Queries-endpointet. Bookinger sendes til fragtmandens system i realtid, og labels genereres øjeblikkeligt.

Query vs direkte booking

Queries-endpointet understøtter to bookingmetoder:

  • Query-tilstand - Opret en transportanmodning uden at specificere en fragtmand (endnu). Dette giver dig mulighed for manuelt at sammenligne fragtmandpriser og leveringstider, anmode om nye spotpriser, foretage justeringer/opdateringer til forsendelsen og delegere fragtmandvalg til andre, før du foretager det endelige fragtmandvalg i Cargoson.
  • Direkte booking - Angiv et fragtmandservice-ID (fra Rate- eller Services-API'en) for at booke direkte med Spedair DE. Dette sikrer, at din forsendelse bruger præcis den service, du har valgt.

For at booke direkte til Spedair DE, skal du altid definere direct_booking_service_id.

POST /queries

Opret en forsendelsesforespørgsel eller direkte booking til Spedair DE. Inkluder direct_booking_service_id for at oprette en øjeblikkelig booking.

Request Parameters

collection_date string required

Afhentningsdato i ÅÅÅÅ-MM-DD format

collection_country string required

Afhentningslandekode (ISO 3166-1 alpha-2)

collection_postcode string required

Afhentningspostnummer

collection_address_row_1 string required

Afhentningsgadeadresse

collection_city string required

Afhentningsby

collection_company_name string required

Afsendervirksomhedsnavn

collection_contact_name string required

Afsenderkontaktperson

collection_contact_phone string required

Afsendertelefonnummer

delivery_country string required

Leveringslandekode

delivery_postcode string required

Leveringspostnummer

delivery_address_row_1 string required

Leveringsgadeadresse

delivery_city string required

Leveringsby

delivery_company_name string required

Modtagervirksomhedsnavn

delivery_contact_name string required

Modtagerkontaktperson

delivery_contact_phone string required

Modtagertelefonnummer

rows_attributes array required

Array af pakker/paller med antal, pakketype, vægt og beskrivelse

options[direct_booking_service_id] integer

Spedair DE service-ID til direkte booking

Example: Direct Booking Request

{
  "collection_date": "2026-02-15",
  "collection_country": "DE",
  "collection_postcode": "10115",
  "collection_address_row_1": "Hauptstraße 123",
  "collection_city": "Berlin",
  "collection_company_name": "Demo GmbH",
  "collection_contact_name": "Max Mustermann",
  "collection_contact_phone": "+4930123456",
  "delivery_country": "SE",
  "delivery_postcode": "11122",
  "delivery_address_row_1": "Drottninggatan 45",
  "delivery_city": "Stockholm",
  "delivery_company_name": "Demo Sweden AB",
  "delivery_contact_name": "Erik Andersson",
  "delivery_contact_phone": "+46812345678",
  "rows_attributes": [
    {
      "quantity": 1,
      "package_type": "EUR",
      "weight": 100.0,
      "description": "Goods on EUR pallet"
    }
  ],
  "options": {
    "direct_booking_service_id": 1234
  }
}

Example Response

{
  "id": 12345,
  "reference": "CG12345",
  "status": "booked",
  "latest_status": "confirmed",
  "tracking_reference": "ABC1234567890",
  "tracking_url": "https://tracking.carrier.com/ABC1234567890",
  "label_url": "https://www.cargoson.com/labels/abc123.pdf",
  "confirmed_at": "2026-02-15T10:30:00Z"
}

Labelgenerering

Spedair DE forsendelselabels genereres automatisk, når du opretter en booking. Labels er tilgængelige i flere formater for at understøtte forskellige printertyper.

Understøttede labelformater

a4 - A4 PDF-format til skrivebordsprintere (4 labels pr. side)
label_printer - 4x6in (~10x15cm) PDF-format til termoprintere

Labels er inkluderet i bookingreaktionen via label_url-feltet. Download og print labelen fra den angivne URL efter booking.

Spedair DE rate-API (fragtpriser)

Cargoson-motor
Cargoson-forbedring:

Spedair DE leverer ikke en native rate-API. Cargosons fragtprismotor beregner priser ved hjælp af dine uploadede prisaftaler, hvilket giver dig den samme API-oplevelse som fragtmænd med native rate-API'er. Du kan uploade fragtmandrater i ethvert format (Excel, PDF, endda håndskrevne prislister), og vi digitaliserer dem.

Få realtids Spedair DE fragtrater før booking. Rate-API'en returnerer tilgængelige services, priser og estimerede leveringstider.

POST /freightPrices/list

Få fragtratetilbud fra Spedair DE og andre aktiverede fragtmænd på din konto.

Request Parameters

collection_date string required

Afhentningsdato i ÅÅÅÅ-MM-DD format

collection_country string required

Afhentningslandekode (ISO 3166-1 alpha-2)

collection_postcode string required

Afhentningspostnummer

delivery_country string required

Leveringslandekode

delivery_postcode string required

Leveringspostnummer

rows_attributes array required

Array af pakker/paller med antal, pakketype, vægt og beskrivelse

Example Request

{
  "collection_date": "2026-02-15",
  "collection_postcode": "10115",
  "collection_country": "DE",
  "collection_with_tail_lift": true,
  "collection_prenotification": true,
  "delivery_postcode": "11122",
  "delivery_country": "SE",
  "delivery_with_tail_lift": true,
  "delivery_prenotification": true,
  "delivery_return_document": true,
  "delivery_to_private_person": true,
  "frigo": true,
  "adr": false,
  "rows_attributes": [
    {
      "quantity": 1,
      "package_type": "EUR",
      "weight": 100.0,
      "description": "Goods on EUR pallet"
    },
    {
      "quantity": 2,
      "package_type": "FIN",
      "weight": 300.0,
      "description": "Goods on two FIN pallets"
    }
  ],
  "request_external_partners": false
}

Example Response

{
  "status": 200,
  "object": {
    "prices": [
      {
        "carrier": "Spedair UG",
        "reg_no": "55116B45207",
        "id": 4698,
        "service": "Main",
        "service_id": 85,
        "price": "19.13",
        "unit": "payable_weight",
        "type": "price_list"
      },
      {
        "carrier": "Spedair UG",
        "reg_no": "55116B45207",
        "id": 4698,
        "service": "Express Service",
        "service_id": 123,
        "price": "32.50",
        "unit": "real_weight",
        "type": "online"
      },
      {
        "carrier": "Demo Logistics GmbH",
        "reg_no": "87654321",
        "id": 456,
        "service": "Main",
        "service_id": 555,
        "price": "20.00",
        "unit": "payable_weight",
        "type": "price_list"
      }
    ]
  }
}

Spedair DE sporings-API

Cargoson-automatisering
Cargoson-forbedring:

Spedair DE leverer ikke sporingshændelser via API. Cargoson leverer en sporingsportal, hvor fragtmanden manuelt kan opdatere forsendelsesstatus, hvilket giver dig og dine kunder en konsistent sporingsoplevelse.

Spor Spedair DE forsendelser ved hjælp af Cargoson-referencenummeret. Få aktuel status, placeringsopdateringer og estimeret leveringstid.

GET /bookings/{reference}

Hent sporingsdetaljer for en Spedair DE forsendelse ved hjælp af Cargoson-bookingreferencen.

Example Response

{
  "reference": "CG12345",
  "status": "in_transit",
  "latest_status": "collected",
  "tracking_reference": "ABC1234567890",
  "tracking_url": "https://tracking.carrier.com/ABC1234567890",
  "confirmed_at": "2026-02-15T10:30:00Z",
  "collected_at": "2026-02-15T14:20:00Z",
  "estimated_delivery": "2026-02-18T16:00:00Z"
}

Spedair DE returlabel-API

Drevet af Cargoson
Cargoson-forbedring:

Spedair DE understøtter ikke native returlabels. Cargoson genererer returlabels og administrerer returlogistikprocessen gennem vores platform.

Generer returforsendelselabels til Spedair DE forsendelser. Returlabels giver kunderne mulighed for at sende varer retur ved hjælp af forudbetalt forsendelse.

POST /bookings/{reference}/return_labels

Opret et returlabel til en eksisterende Spedair DE forsendelse.

Request Parameters

label_format string

Labelformat: a4 eller label_printer (standard: a4)

Example Request

{
  "label_format": "a4"
}

Example Response

{
  "return_label_url": "https://www.cargoson.com/labels/return_abc123.pdf",
  "tracking_reference": "RETURN9876543210",
  "tracking_url": "https://tracking.carrier.com/RETURN9876543210"
}

Returlabel-funktioner

  • Forudbetalte returforsendelselabels
  • Samme formatmuligheder som udgående labels (A4, termo)
  • Separat sporingreference til returer
  • Problemfri integration med Spedair DE returservices

Spedair DE kurérforespørgsler

Cargoson-automatisering

Cargoson automatiserer kurérafhentningsanmodninger til Spedair DE forsendelser, hvilket gør det til én opgave mindre, du skal tænke på.

Hvordan Cargoson håndterer kurérforespørgsler

Mange fragtmænd kræver, at du opretter labels separat og derefter manuelt anmoder om kurérafhentning. Andre har ikke et separat label plus kurérkaldsystem, og hver forsendelse er en komplet, separat forsendelse. Vi mener, at der bør være en enkelt standard for fragtmand-API'er, men i øjeblikket opretter hver fragtmand sit eget unikke system, hvilket gør det svært for deres brugere at huske hver enkelt særegenhed og indviklethed. Cargoson forenkler dine kurérkald ved at behandle hver forsendelse holistisk: kurérforespørgsler administreres automatisk som en del af bookingprocessen.

Smart afhentningsoptimering

Cargoson optimerer kurérkald for at reducere omkostninger og forbedre effektiviteten.

  • 1. Batchkonsolidering - Flere forsendelser fra samme placering grupperes i en enkelt afhentningsanmodning
  • 2. Fragtmandspecifik håndtering - Nogle fragtmænd inkluderer afhentning i bookingen, andre kræver separate anmodninger. Cargoson håndterer begge varianter automatisk for dig
  • 3. Regelmæssige afhentningsplaner - Konfigurer forudplanlagte afhentninger med bestemte intervaller (f.eks. dagligt til mit hovedlager kl. 15) og Cargoson vil helt springe individuelle kurérkald over

Fordele

  • Ingen grund til at holde styr på, hvilke fragtmænd der kræver separate kurérforespørgsler
  • Automatisk optimering forhindrer unødvendige afhentningskald
  • Understøttelse af regelmæssige afhentningsplaner
  • Forenklet forsendelsesworkflow - opret bare bookingen

Konfiguration

Kurérafhentningsautomatisering er aktiveret som standard for alle Spedair DE forsendelser. For at konfigurere regelmæssige afhentningsplaner eller tilpassede afhentningsoptimeringsregler, kontakt [email protected].

Spedair DE services-API

Cargoson-motor
Cargoson-forbedring:

Services-API'en er en Cargoson-leveret funktion, der returnerer en samlet liste over alle tilgængelige services fra Spedair DE og andre fragtmænd i dit netværk. Dette giver dig mulighed for dynamisk at vise forsendelsesvalgmuligheder til dine kunder uden at hardcode service-ID'er.

Hent en liste over tilgængelige Spedair DE forsendelseservices. Brug service-ID'er, når du foretager direkte bookinger for at sikre, at du får præcis den service, du ønsker.

GET /services/list

Returner liste over Spedair DE services tilgængelige på din virksomhedskonto.

Example Response

{
  "services": [
    {
      "carrier": {
        "id": 4698,
        "name": "Spedair UG",
        "short_name": "Spedair DE",
        "reg_no": "55116B45207"
      },
      "id": 85,
      "name": "Main",
      "service_type": "road_freight"
    },
    {
      "carrier": {
        "id": 4698,
        "name": "Spedair UG",
        "short_name": "Spedair DE",
        "reg_no": "55116B45207"
      },
      "id": 123,
      "name": "Express Service",
      "service_type": "express"
    }
  ]
}

Brug af service-ID'er

Service-ID'er fra dette endpoint kan bruges med direct_booking_service_id-parameteren, når du opretter bookinger for at vælge den rigtige service og sende forsendelsen til Spedair DE systemet.

Komplette kodeeksempler

Nedenfor er komplette fungerende eksempler, der viser hele workflowet: få rater, vælg en service, book forsendelse og udtræk sporingsinformation.

# Define the service ID you want to use
CARRIER_SERVICE_ID=85

# Step 1: Get freight prices for Spedair DE
curl -X POST https://www.cargoson.com/api/v1/freightPrices/list \
  -H "Content-Type: application/json" \
  -H "Accept: application/vnd.api.v1" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "collection_date": "2026-02-15",
    "collection_country": "DE",
    "collection_postcode": "10115",
    "delivery_country": "SE",
    "delivery_postcode": "11122",
    "rows_attributes": [{
      "quantity": 1,
      "package_type": "EUR",
      "weight": 100.0,
      "description": "Goods on EUR pallet"
    }]
  }'

# Extract the price for your service from response:
# transport_price=$(echo "$response" | jq '.object.prices[] | select(.service_id==85) | .price')

# Step 2: Book shipment using the service_id
curl -X POST https://www.cargoson.com/api/v1/queries \
  -H "Content-Type: application/json" \
  -H "Accept: application/vnd.api.v1" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "collection_date": "2026-02-15",
    "collection_country": "DE",
    "collection_postcode": "10115",
    "collection_address_row_1": "Hauptstraße 123",
    "collection_city": "Berlin",
    "collection_company_name": "Demo GmbH",
    "collection_contact_name": "Max Mustermann",
    "collection_contact_phone": "+4930123456",
    "delivery_country": "SE",
    "delivery_postcode": "11122",
    "delivery_address_row_1": "Drottninggatan 45",
    "delivery_city": "Stockholm",
    "delivery_company_name": "Demo Sweden AB",
    "delivery_contact_name": "Erik Andersson",
    "delivery_contact_phone": "+46812345678",
    "rows_attributes": [{
      "quantity": 1,
      "package_type": "EUR",
      "weight": 100.0,
      "description": "Goods on EUR pallet"
    }],
    "options": {
      "direct_booking_service_id": '$CARRIER_SERVICE_ID'
    }
  }'

# Response contains:
# - reference: "CG12345"
# - tracking_url: "https://tracking.carrier.com/..."
# - label_url: "https://www.cargoson.com/labels/abc123.pdf"
const axios = require('axios');

const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://www.cargoson.com/api/v1';
const CARRIER_SERVICE_ID = 85;

async function bookToSpedairDE() {
  try {
    // Step 1: Get freight prices
    const pricesResponse = await axios.post(`${BASE_URL}/freightPrices/list`, {
      collection_date: '2026-02-15',
      collection_country: 'DE',
      collection_postcode: '10115',
      delivery_country: 'SE',
      delivery_postcode: '11122',
      rows_attributes: [{
        quantity: 1,
        package_type: 'EUR',
        weight: 100.0,
        description: 'Goods on EUR pallet'
      }]
    }, {
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/vnd.api.v1',
        'Authorization': `Bearer ${API_KEY}`
      }
    });

    // Step 2: Find service by ID and extract price
    const prices = pricesResponse.data.object.prices;
    const selectedService = prices.find(p => p.service_id === CARRIER_SERVICE_ID);

    if (!selectedService) {
      throw new Error(`Service ID ${CARRIER_SERVICE_ID} not found in prices`);
    }

    const transportPrice = selectedService.price;
    console.log(`Selected service price: €${transportPrice}`);

    // Step 3: Book shipment using the service_id
    const bookingResponse = await axios.post(`${BASE_URL}/queries`, {
      collection_date: '2026-02-15',
      collection_country: 'DE',
      collection_postcode: '10115',
      collection_address_row_1: 'Hauptstraße 123',
      collection_city: 'Berlin',
      collection_company_name: 'Demo GmbH',
      collection_contact_name: 'Max Mustermann',
      collection_contact_phone: '+4930123456',
      delivery_country: 'SE',
      delivery_postcode: '11122',
      delivery_address_row_1: 'Drottninggatan 45',
      delivery_city: 'Stockholm',
      delivery_company_name: 'Demo Sweden AB',
      delivery_contact_name: 'Erik Andersson',
      delivery_contact_phone: '+46812345678',
      rows_attributes: [{
        quantity: 1,
        package_type: 'EUR',
        weight: 100.0,
        description: 'Goods on EUR pallet'
      }],
      options: {
        direct_booking_service_id: CARRIER_SERVICE_ID
      }
    }, {
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/vnd.api.v1',
        'Authorization': `Bearer ${API_KEY}`
      }
    });

    // Extract important fields
    const reference = bookingResponse.data.reference;
    const trackingUrl = bookingResponse.data.tracking_url;
    const labelUrl = bookingResponse.data.label_url;

    console.log('Shipment booked successfully!');
    console.log(`Reference: ${reference}`);
    console.log(`Tracking: ${trackingUrl}`);
    console.log(`Label: ${labelUrl}`);

    return { reference, trackingUrl, labelUrl };
  } catch (error) {
    console.error('Error:', error.response?.data || error.message);
  }
}

// Usage
bookToSpedairDE();
import requests

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://www.cargoson.com/api/v1'
CARRIER_SERVICE_ID = 85

def book_to_spedair_de():
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/vnd.api.v1',
        'Authorization': f'Bearer {API_KEY}'
    }

    # Step 1: Get freight prices
    prices_data = {
        'collection_date': '2026-02-15',
        'collection_country': 'DE',
        'collection_postcode': '10115',
        'delivery_country': 'SE',
        'delivery_postcode': '11122',
        'rows_attributes': [{
            'quantity': 1,
            'package_type': 'EUR',
            'weight': 100.0,
            'description': 'Goods on EUR pallet'
        }]
    }

    prices_response = requests.post(
        f'{BASE_URL}/freightPrices/list',
        headers=headers,
        json=prices_data
    )
    prices_response.raise_for_status()

    # Step 2: Find service by ID and extract price
    prices = prices_response.json()['object']['prices']
    selected_service = next(
        (p for p in prices if p['service_id'] == CARRIER_SERVICE_ID),
        None
    )

    if not selected_service:
        raise ValueError(f'Service ID {CARRIER_SERVICE_ID} not found in prices')

    transport_price = selected_service['price']
    print(f'Selected service price: €{transport_price}')

    # Step 3: Book shipment using the service_id
    booking_data = {
        'collection_date': '2026-02-15',
        'collection_country': 'DE',
        'collection_postcode': '10115',
        'collection_address_row_1': 'Hauptstraße 123',
        'collection_city': 'Berlin',
        'collection_company_name': 'Demo GmbH',
        'collection_contact_name': 'Max Mustermann',
        'collection_contact_phone': '+4930123456',
        'delivery_country': 'SE',
        'delivery_postcode': '11122',
        'delivery_address_row_1': 'Drottninggatan 45',
        'delivery_city': 'Stockholm',
        'delivery_company_name': 'Demo Sweden AB',
        'delivery_contact_name': 'Erik Andersson',
        'delivery_contact_phone': '+46812345678',
        'rows_attributes': [{
            'quantity': 1,
            'package_type': 'EUR',
            'weight': 100.0,
            'description': 'Goods on EUR pallet'
        }],
        'options': {
            'direct_booking_service_id': CARRIER_SERVICE_ID
        }
    }

    booking_response = requests.post(
        f'{BASE_URL}/queries',
        headers=headers,
        json=booking_data
    )
    booking_response.raise_for_status()
    booking = booking_response.json()

    # Extract important fields
    reference = booking['reference']
    tracking_url = booking['tracking_url']
    label_url = booking['label_url']

    print('Shipment booked successfully!')
    print(f'Reference: {reference}')
    print(f'Tracking: {tracking_url}')
    print(f'Label: {label_url}')

    return {
        'reference': reference,
        'tracking_url': tracking_url,
        'label_url': label_url
    }

# Usage
if __name__ == '__main__':
    book_to_spedair_de()
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://www.cargoson.com/api/v1';

define('CARRIER_SERVICE_ID', 85);

function bookToSpedairDE($apiKey, $baseUrl) {
    $headers = [
        'Content-Type: application/json',
        'Accept: application/vnd.api.v1',
        'Authorization: Bearer ' . $apiKey
    ];

    // Step 1: Get freight prices
    $pricesData = [
        'collection_date' => '2026-02-15',
        'collection_country' => 'DE',
        'collection_postcode' => '10115',
        'delivery_country' => 'SE',
        'delivery_postcode' => '11122',
        'rows_attributes' => [[
            'quantity' => 1,
            'package_type' => 'EUR',
            'weight' => 100.0,
            'description' => 'Goods on EUR pallet'
        ]]
    ];

    $ch = curl_init($baseUrl . '/freightPrices/list');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($pricesData));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $pricesResponse = curl_exec($ch);
    curl_close($ch);
    $prices = json_decode($pricesResponse, true)['object']['prices'];

    // Step 2: Find service by ID and extract price
    $selectedService = null;
    foreach ($prices as $price) {
        if ($price['service_id'] === CARRIER_SERVICE_ID) {
            $selectedService = $price;
            break;
        }
    }

    if (!$selectedService) {
        throw new Exception('Service ID ' . CARRIER_SERVICE_ID . ' not found in prices');
    }

    $transportPrice = $selectedService['price'];
    echo "Selected service price: €$transportPrice
";

    // Step 3: Book shipment using the service_id
    $bookingData = [
        'collection_date' => '2026-02-15',
        'collection_country' => 'DE',
        'collection_postcode' => '10115',
        'collection_address_row_1' => 'Hauptstraße 123',
        'collection_city' => 'Berlin',
        'collection_company_name' => 'Demo GmbH',
        'collection_contact_name' => 'Max Mustermann',
        'collection_contact_phone' => '+4930123456',
        'delivery_country' => 'SE',
        'delivery_postcode' => '11122',
        'delivery_address_row_1' => 'Drottninggatan 45',
        'delivery_city' => 'Stockholm',
        'delivery_company_name' => 'Demo Sweden AB',
        'delivery_contact_name' => 'Erik Andersson',
        'delivery_contact_phone' => '+46812345678',
        'rows_attributes' => [[
            'quantity' => 1,
            'package_type' => 'EUR',
            'weight' => 100.0,
            'description' => 'Goods on EUR pallet'
        ]],
        'options' => [
            'direct_booking_service_id' => CARRIER_SERVICE_ID
        ]
    ];

    $ch = curl_init($baseUrl . '/queries');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($bookingData));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $bookingResponse = curl_exec($ch);
    curl_close($ch);
    $booking = json_decode($bookingResponse, true);

    // Extract important fields
    $reference = $booking['reference'];
    $trackingUrl = $booking['tracking_url'];
    $labelUrl = $booking['label_url'];

    echo "Shipment booked successfully!
";
    echo "Reference: $reference
";
    echo "Tracking: $trackingUrl
";
    echo "Label: $labelUrl
";

    return [
        'reference' => $reference,
        'tracking_url' => $trackingUrl,
        'label_url' => $labelUrl
    ];
}

// Usage
bookToSpedairDE($apiKey, $baseUrl);
?>
require 'net/http'
require 'json'

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://www.cargoson.com/api/v1'
CARRIER_SERVICE_ID = 85

def book_to_spedair_de
  headers = {
    'Content-Type' => 'application/json',
    'Accept' => 'application/vnd.api.v1',
    'Authorization' => "Bearer #{API_KEY}"
  }

  # Step 1: Get freight prices
  prices_uri = URI("#{BASE_URL}/freightPrices/list")
  prices_data = {
    collection_date: '2026-02-15',
    collection_country: 'DE',
    collection_postcode: '10115',
    delivery_country: 'SE',
    delivery_postcode: '11122',
    rows_attributes: [{
      quantity: 1,
      package_type: 'EUR',
      weight: 100.0,
      description: 'Goods on EUR pallet'
    }]
  }

  http = Net::HTTP.new(prices_uri.host, prices_uri.port)
  http.use_ssl = true

  prices_request = Net::HTTP::Post.new(prices_uri)
  headers.each { |k, v| prices_request[k] = v }
  prices_request.body = prices_data.to_json

  prices_response = http.request(prices_request)
  prices = JSON.parse(prices_response.body)['object']['prices']

  # Step 2: Find service by ID and extract price
  selected_service = prices.find { |p| p['service_id'] == CARRIER_SERVICE_ID }

  raise "Service ID #{CARRIER_SERVICE_ID} not found in prices" unless selected_service

  transport_price = selected_service['price']
  puts "Selected service price: €#{transport_price}"

  # Step 3: Book shipment using the service_id
  booking_uri = URI("#{BASE_URL}/queries")
  booking_data = {
    collection_date: '2026-02-15',
    collection_country: 'DE',
    collection_postcode: '10115',
    collection_address_row_1: 'Hauptstraße 123',
    collection_city: 'Berlin',
    collection_company_name: 'Demo GmbH',
    collection_contact_name: 'Max Mustermann',
    collection_contact_phone: '+4930123456',
    delivery_country: 'SE',
    delivery_postcode: '11122',
    delivery_address_row_1: 'Drottninggatan 45',
    delivery_city: 'Stockholm',
    delivery_company_name: 'Demo Sweden AB',
    delivery_contact_name: 'Erik Andersson',
    delivery_contact_phone: '+46812345678',
    rows_attributes: [{
      quantity: 1,
      package_type: 'EUR',
      weight: 100.0,
      description: 'Goods on EUR pallet'
    }],
    options: {
      direct_booking_service_id: CARRIER_SERVICE_ID
    }
  }

  booking_request = Net::HTTP::Post.new(booking_uri)
  headers.each { |k, v| booking_request[k] = v }
  booking_request.body = booking_data.to_json

  booking_response = http.request(booking_request)
  booking = JSON.parse(booking_response.body)

  # Extract important fields
  reference = booking['reference']
  tracking_url = booking['tracking_url']
  label_url = booking['label_url']

  puts 'Shipment booked successfully!'
  puts "Reference: #{reference}"
  puts "Tracking: #{tracking_url}"
  puts "Label: #{label_url}"

  {
    reference: reference,
    tracking_url: tracking_url,
    label_url: label_url
  }
end

# Usage
book_to_spedair_de

Hvorfor bruge Cargoson API til Spedair DE integration

At integrere direkte med Spedair DE's native API betyder at kæmpe med fragtmandspecifik dokumentation, håndtere unikke dataformater og vedligeholde separat kode for hver udbyder. Cargoson tilbyder en enkelt samlet RESTful API, der understøtter Spedair DE og 2.000+ fragtmænd på tværs af europæiske og nordamerikanske markeder, med nye integrationer tilføjet ugentligt. Vi reducerer udviklingstiden fra måneder til dage, håndterer fragtmandopdateringer automatisk og administrerer regionale undtagelser. Med Cargoson fokuserer du på at vokse din forretning i stedet for at administrere fragtmandtekniske kompleksiteter.

Fordele ved at integrere Spedair DE via Cargoson API

Én API til alle fragtmænd

Erstat snesevis af separate fragtmandintegrationer med én forbindelse til Spedair DE og 2.000+ andre udbydere via Cargoson API. Ikke mere vedligeholdelse af flere godkendelsessystemer, håndtering af forskellige dataformater eller opdatering af kode, når fragtmænd ændrer deres endpoints.

Klar dokumentation og support

Få adgang til ligetil API-dokumentation med fungerende kodeeksempler, detaljerede parameterbeskrivelser og klart definerede endpoints. Vores supportteam kender logistikbranchen og kan hjælpe dig med at løse integrationsudfordringer hurtigt.

Kodeeksempler på flere sprog

Kom i gang med det samme med klar-til-brug kodeeksempler i cURL, JavaScript, Python, PHP og Ruby. Kopier, indsæt og tilpas dem til din stack, ingen grund til at finde ud af godkendelse, anmodningsformatering eller fejlhåndtering fra bunden.

Reel support fra logistikeksperter

Få hjælp fra folk, der forstår forsendelse, ikke kun API'er. Uanset om du fejlsøger et integrationsproblem eller har brug for råd om den bedste måde at håndtere internationale forsendelser på, er vores team her for at hjælpe.

Verdens mest avancerede fragtprismotor

Cargosons fragtpris-API går langt ud over simple rateopslag. Vores motor kan læse, analysere og digitalisere enhver fragtmandprisliste uanset format eller struktur, hvilket gør den til den mest kraftfulde fragtratestyringsløsning i logistikbranchen.

Universel formatunderstøttelse

Vores fragtprismotor håndterer ethvert format: strukturerede Excel-filer, komplekse PDF'er, fri tekst eller endda håndskrevne prislister. Upload dine fragtmandkontrakter i ethvert format, og vores fragtratemotor vil parse prisreglerne, tillæg og betingelser automatisk.

Direkte fragtmand-API-integration

For fragtmænd med moderne systemer (typisk globale pakkeoperatører og teknologifremadrettede fragtvirksomheder) trækker vi rater direkte fra deres API'er i realtid. Dette sikrer, at du altid får de mest aktuelle priser uden manuelle opdateringer.

Offentlige onlinepriser

Har du ikke en kontrakt med en fragtmand endnu? Intet problem. Cargoson kan trække offentlige onlinepriser fra fragtmænd, hvilket giver dig mulighed for at sammenligne muligheder, selv før du etablerer formelle aftaler.

Spotprisanmodninger

For komplekse forsendelser eller særlige tilfælde, anmod om spotpriser, hvor fragtmænd gennemgår dine specifikke krav og giver et tilpasset tilbud. Alt administreret gennem den samme samlede API.

Spedair DE forsendelses-API: Forenklet logistikautomatisering

Automatiser din opfyldelsesproces ved at integrere Cargosons forsendelses-API med Spedair DE og 2.000+ fragtmænd verden over. Opret forsendelselabels, book afhentninger og administrer alle dine fragtmænd fra én platform, mens du beholder dine forhandlede rater med hver udbyder.

Automatiseret labelgenerering

Generer fragtmandgodkendte forsendelselabels i en enkelt API-anmodning. Understøttelse af flere labelformater (A4, termoprinter) og automatisk tolddokumentation til internationale forsendelser betyder mindre manuelt arbejde og færre forsendelsesfejl.

Realtids ratesammenligning

Sammenlign live rater på tværs af Spedair DE og dine andre aktiverede fragtmænd for at vælge den bedste mulighed baseret på pris, hastighed og serviceniveau.

Behold dine forhandlede rater

Tilslut din eksisterende Spedair DE konto for at beholde dine forhandlede forsendelsespriser. Cargoson leverer blot den tekniske integration: du beholder dine direkte fragtmandrelationer og tilpassede prisaftaler.

Virksomhedssikkerhed i verdensklasse til Spedair DE API-integration

Cargosons API-infrastruktur opfylder europæiske overholdelsesstandarder, som sikrer sikker, revisionsklar Spedair DE integration til din virksomhed:

  • GDPR-kompatibel datahåndtering og -lagring på tværs af Europa
  • ISO 27001-certificeret informationssikkerhedsstyring
  • End-to-end kryptering for al API-kommunikation

Klar til at integrere Spedair DE forsendelse i din platform?

Book en demo for at se, hvordan Cargosons samlede API kan forenkle dine logistikoperationer

Book en demo

Ofte stillede spørgsmål

Cargoson er et TMS (transportstyringssystem) til europæiske og nordamerikanske producenter. Vores centrale vision er enkelhed: integrer alle fragtmænd og fragtmåder (vej, pakke, luft, hav, jernbane) i ét vindue og én API. Uanset om du sender paller på tværs af Europa eller containere oversøisk, administrer alt fra en enkelt platform.

Det er nemt at komme i gang. Først skal du tilmelde dig en Cargoson-konto og få din API-nøgle. Tilslut derefter din Spedair DE konto i Cargoson-dashboardet. Når det er gjort, kan du begynde at lave API-anmodninger ved hjælp af vores dokumentation og kodeeksempler. Hele opsætningen tager typisk mindre end en time.

Ja, du skal bruge din egen Spedair DE konto for at bruge Spedair DE services gennem Cargoson. Dette sikrer, at du beholder dine forhandlede rater og opretholder dit direkte forhold til Spedair DE. Cargoson leverer blot det tekniske integrationslag, der gør det lettere at arbejde med Spedair DE og andre fragtmænd gennem én samlet API.

Cargoson opererer på en gennemsigtig månedlig abonnementsmodel uden gebyrer pr. forsendelse eller provisioner, nogensinde. Din plan inkluderer API-adgang, dokumentation, support og automatiske opdateringer, når fragtmænd ændrer deres systemer. Du betaler Spedair DE direkte for forsendelse til dine forhandlede rater. Ingen skjulte omkostninger, ingen overraskelser.

Absolut! Det er hovedfordelen ved at bruge Cargoson. Når du har integreret vores API, kan du arbejde med Spedair DE og 2.000+ andre fragtmænd ved hjælp af de samme endpoints, godkendelse og dataformater. Tilføj nye fragtmænd uden at skrive ny integrationskode, bare aktiver dem i dit Cargoson-dashboard.

Ja! Vi integrerer enhver fragtmand, du har brug for, uden ekstra omkostninger. Dette er inkluderet i dit Cargoson-abonnement. Bare præsenter os for dine fragtmandkontakter, og vi håndterer den tekniske integration. Nye integrationer tilføjes dagligt baseret på kundeanmodninger.

Ja, vi kan opsætte webhooks til at underrette dit system baseret på begivenheder og triggere i Cargoson, såsom forsendelsestatusopdateringer, bookingbekræftelser eller ændringer til dine forsendelser. Kontakt vores supportteam eller book en demo for at diskutere dine webhook-krav og opsætning.

Cargoson kan være overkill, hvis du er en lille virksomhed, der kun sender et par gange om måneden med en enkelt fragtmand. Du kan sandsynligvis administrere disse forsendelser fint uden et TMS. Vi er heller ikke det rigtige valg, hvis du er en fragtmand eller speditør. Cargoson er bygget specifikt til gavnlige lastejere (BCO'er) som producenter og distributører, der ejer de varer, der sendes. Hvis du leder efter et TMS til at administrere din speditørvirksomhed eller fragtmandoperationer, er vi ikke designet til det anvendelsestilfælde.

Vores API returnerer klare fejlmeddelelser med specifikke fejlkoder og beskrivelser. Almindelige problemer er dokumenteret med løsninger i vores udvikler-docs. Hvis du sidder fast, kan vores supportteam hjælpe med at fejlsøge integrationsproblemer.

Vi implementerer rimelige rategrænser for at sikre systemstabilitet for alle kunder. Der er både langperiode-rategrænser og burst-rategrænser med værdier, der burde være mere end nok for de fleste virksomheder. Hvis du har brug for højere grænser til virksomhedsskala-operationer, kontakt os for at diskutere tilpassede rategrænser for din konto.

Begynd at bruge Spedair DE API'en

Få dine API-legitimationsoplysninger for at begynde integration

Få din API-nøgle