Zemdegas ZS API Documentatie

Geïntegreerd REST API

Volledige API referentie voor Zemdegas ZS verzendintegratie. Toegang tot boekingen, vrachttarieven, labelgeneratie en tracking via Cargoson's uniforme transportbeheer API.

Vraag uw API-sleutel aan

Zemdegas ZS API Overzicht

Deze API biedt programmatische toegang tot Zemdegas ZS verzendservices via Cargoson's uniforme transportbeheerplatform. Integreer Zemdegas ZS mogelijkheden inclusief zendingenboekingen, tracking, tariefoffertes en labelgeneratie in uw applicaties.

API Mogelijkheden

  • Creëer en beheer Zemdegas ZS zendingboekingen
  • Zendingtracking en statusupdates
  • Vraag vrachttariefoffertes en transittijden op
  • Genereer verzendlabels in meerdere formaten (PDF, PNG, ZPL)
  • Creëer retourlabels voor retourlogistiek
  • Zoek pakketautomaten en afhaalpunten
  • Lijst beschikbare vervoerdersdiensten
  • Geautomatiseerde koerier ophaalverzoeken

Basis URL & Authenticatie

Basis URL

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

Authenticatie

Alle verzoeken moeten uw API-sleutel en de juiste Accept header bevatten:

Authorization: Bearer UW_API_SLEUTEL
Accept: application/vnd.api.v1

Zemdegas ZS Boeking API

Cargoson Automatisering
Cargoson Verbetering:

Zemdegas ZS biedt geen boeking-API. Cargoson stuurt automatisch boekingsbevestigingen via e-mail namens u, terwijl u nog steeds dezelfde uniforme API-interface gebruikt.

Creëer Zemdegas ZS zendingen en verkrijg verzendlabels met behulp van het Queries endpoint. Boekingen worden in real-time naar het systeem van de vervoerder verzonden en labels worden onmiddellijk gegenereerd.

Query vs Directe Boeking

Het Queries endpoint ondersteunt twee boekingsmethoden:

  • Query modus - Creëer een transportverzoek zonder (nog) een vervoerder te specificeren. Hierdoor kunt u handmatig vervoerdersprijzen en levertijden vergelijken, nieuwe spot-prijzen aanvragen, aanpassingen/updates aan de zending maken en vervoerdersselectie delegeren aan anderen, voordat u de definitieve vervoerderskeuze maakt in Cargoson.
  • Directe boeking - Specificeer een vervoerdersservice-ID (van de Rate of Services API) om direct te boeken bij Zemdegas ZS. Dit zorgt ervoor dat uw zending de exacte service gebruikt die u heeft geselecteerd.

Om direct te boeken bij Zemdegas ZS, definieer altijd de direct_booking_service_id.

POST /queries

Creëer een zendingquery of directe boeking voor Zemdegas ZS. Voeg direct_booking_service_id toe om een onmiddellijke boeking te maken.

Request Parameters

collection_date string required

Ophaaldatum in JJJJ-MM-DD formaat

collection_country string required

Ophaallandcode (ISO 3166-1 alpha-2)

collection_postcode string required

Ophaalpostcode

collection_address_row_1 string required

Ophaalstraatadres

collection_city string required

Ophaalstad

collection_company_name string required

Afzender bedrijfsnaam

collection_contact_name string required

Afzender contactpersoon

collection_contact_phone string required

Afzender telefoonnummer

delivery_country string required

Afleveringslandcode

delivery_postcode string required

Afleveringspostcode

delivery_address_row_1 string required

Afleveringsstraatadres

delivery_city string required

Afleveringsstad

delivery_company_name string required

Ontvanger bedrijfsnaam

delivery_contact_name string required

Ontvanger contactpersoon

delivery_contact_phone string required

Ontvanger telefoonnummer

rows_attributes array required

Array van pakketten/pallets met hoeveelheid, pakkettype, gewicht en beschrijving

options[direct_booking_service_id] integer

Zemdegas ZS service-ID voor directe boeking

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"
}

Labelgeneratie

Zemdegas ZS verzendlabels worden automatisch gegenereerd wanneer u een boeking maakt. Labels zijn beschikbaar in meerdere formaten om verschillende printertypes te ondersteunen.

Ondersteunde Labelformaten

a4 - A4 PDF formaat voor desktopprinters (4 labels per pagina)
label_printer - 4x6in (~10x15cm) PDF formaat voor thermische printers

Labels zijn opgenomen in het boekingsantwoord via het label_url veld. Download en print het label van de verstrekte URL na het boeken.

Zemdegas ZS Tarief API (Vrachtprijzen)

Cargoson Engine
Cargoson Verbetering:

Zemdegas ZS biedt geen native tarief-API. Cargoson's vrachtprijsengine berekent prijzen met behulp van uw geüploade prijsafspraken, waardoor u dezelfde API-ervaring krijgt als vervoerders met native tarief-API's. U kunt vervoerderstarieven uploaden in elk formaat (Excel, PDF, zelfs handgeschreven prijslijsten) en wij digitaliseren ze.

Verkrijg real-time Zemdegas ZS vrachttarieven voordat u boekt. De Rate API retourneert beschikbare services, prijzen en geschatte levertijden.

POST /freightPrices/list

Verkrijg vrachttariefoffertes van Zemdegas ZS en andere geactiveerde vervoerders op uw account.

Request Parameters

collection_date string required

Ophaaldatum in JJJJ-MM-DD formaat

collection_country string required

Ophaallandcode (ISO 3166-1 alpha-2)

collection_postcode string required

Ophaalpostcode

delivery_country string required

Afleveringslandcode

delivery_postcode string required

Afleveringspostcode

rows_attributes array required

Array van pakketten/pallets met hoeveelheid, pakkettype, gewicht en beschrijving

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": "Zemdegas ZS",
        "reg_no": "42101023202",
        "id": 2390,
        "service": "Main",
        "service_id": 85,
        "price": "19.13",
        "unit": "payable_weight",
        "type": "price_list"
      },
      {
        "carrier": "Zemdegas ZS",
        "reg_no": "42101023202",
        "id": 2390,
        "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"
      }
    ]
  }
}

Zemdegas ZS Tracking API

Cargoson Automatisering
Cargoson Verbetering:

Zemdegas ZS biedt geen trackinggebeurtenissen via API. Cargoson biedt een trackingportaal waar de vervoerder handmatig de zendingstatus kan bijwerken, waardoor u en uw klanten een consistente trackingervaring krijgen.

Track Zemdegas ZS zendingen met behulp van het Cargoson referentienummer. Verkrijg huidige status, locatie-updates en geschatte levertijd.

GET /bookings/{reference}

Verkrijg trackingdetails voor een Zemdegas ZS zending met behulp van de Cargoson boekingsreferentie.

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"
}

Zemdegas ZS Retourlabels API

Mogelijk gemaakt door Cargoson
Cargoson Verbetering:

Zemdegas ZS ondersteunt native geen retourlabels. Cargoson genereert retourlabels en beheert het retourlogistiekproces via ons platform.

Genereer retourverzendlabels voor Zemdegas ZS zendingen. Retourlabels stellen klanten in staat om artikelen terug te sturen met vooruitbetaalde verzending.

POST /bookings/{reference}/return_labels

Creëer een retourlabel voor een bestaande Zemdegas ZS zending.

Request Parameters

label_format string

Labelformaat: a4 of label_printer (standaard: 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"
}

Retourlabel Functies

  • Vooruitbetaalde retourverzendlabels
  • Dezelfde formaatopties als uitgaande labels (A4, thermisch)
  • Aparte trackingreferentie voor retouren
  • Naadloze integratie met Zemdegas ZS retourservices

Zemdegas ZS Koerierverzoeken

Cargoson Automatisering

Cargoson automatiseert koerier ophaalverzoeken voor Zemdegas ZS zendingen, wat één taak minder is om over na te denken.

Hoe Cargoson Koerierverzoeken Afhandelt

Veel verzendvervoerders vereisen dat u labels apart aanmaakt en vervolgens handmatig een koerier ophaling aanvraagt. Anderen hebben geen apart label plus koerier oproepsysteem, en elke zending is een complete, aparte zending. Wij geloven dat er één standaard voor vervoerders-API's zou moeten zijn, maar momenteel creëert elke vervoerder zijn eigen unieke systeem, wat het moeilijk maakt voor hun gebruikers om de eigenaardigheden en complexiteiten van elk systeem te onthouden. Cargoson vereenvoudigt uw koerieroproepen door elke zending holistisch te behandelen: koerierverzoeken worden automatisch beheerd als onderdeel van het boekingsproces.

Slimme Ophaaloptimalisatie

Cargoson optimaliseert koerieroproepen om kosten te verlagen en efficiëntie te verbeteren.

  • 1. Batch consolidatie - Meerdere zendingen vanaf dezelfde locatie worden gegroepeerd in één ophaalverzoek
  • 2. Vervoerdersspecifieke afhandeling - Sommige vervoerders includeren ophaling in de boeking, anderen vereisen aparte verzoeken. Cargoson handelt beide varianten automatisch voor u af
  • 3. Reguliere ophaalschema's - Configureer vooraf geplande ophalingen op specifieke intervallen (bijv. dagelijks bij mijn hoofdmagazijn om 15:00 uur) en Cargoson zal individuele koerieroproepen volledig overslaan

Voordelen

  • Geen noodzaak om bij te houden welke vervoerders aparte koerierverzoeken vereisen
  • Automatische optimalisatie voorkomt onnodige ophaaloproepen
  • Ondersteuning voor reguliere ophaalschema's
  • Vereenvoudigde verzendworkflow - maak gewoon de boeking

Configuratie

Koerier ophaalautomatisering is standaard ingeschakeld voor alle Zemdegas ZS zendingen. Om reguliere ophaalschema's of aangepaste ophaaloptimalisatieregels te configureren, neem contact op met [email protected].

Zemdegas ZS Services API

Cargoson Engine
Cargoson Verbetering:

De Services API is een door Cargoson geleverde functie die een uniforme lijst retourneert van alle beschikbare services van Zemdegas ZS en andere vervoerders in uw netwerk. Hierdoor kunt u dynamisch verzendopties aan uw klanten tonen zonder service-ID's hard te coderen.

Verkrijg een lijst van beschikbare Zemdegas ZS verzendservices. Gebruik service-ID's bij het maken van directe boekingen om ervoor te zorgen dat u de exacte service krijgt die u wilt.

GET /services/list

Retourneer lijst van Zemdegas ZS services beschikbaar op uw bedrijfsaccount.

Example Response

{
  "services": [
    {
      "carrier": {
        "id": 2390,
        "name": "Zemdegas ZS",
        "short_name": "Zemdegas ZS",
        "reg_no": "42101023202"
      },
      "id": 85,
      "name": "Main",
      "service_type": "road_freight"
    },
    {
      "carrier": {
        "id": 2390,
        "name": "Zemdegas ZS",
        "short_name": "Zemdegas ZS",
        "reg_no": "42101023202"
      },
      "id": 123,
      "name": "Express Service",
      "service_type": "express"
    }
  ]
}

Service-ID's Gebruiken

Service-ID's van dit endpoint kunnen worden gebruikt met de direct_booking_service_id parameter bij het maken van boekingen om de juiste service te selecteren en de zending naar het Zemdegas ZS systeem te sturen.

Volledige Codevoorbeelden

Hieronder staan volledige werkende voorbeelden die de volledige workflow tonen: vraag tarieven op, selecteer een service, boek zending en verkrijg trackinginformatie.

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

# Step 1: Get freight prices for Zemdegas ZS
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 bookToZemdegasZS() {
  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
bookToZemdegasZS();
import requests

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

def book_to_zemdegas_zs():
    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_zemdegas_zs()
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://www.cargoson.com/api/v1';

define('CARRIER_SERVICE_ID', 85);

function bookToZemdegasZS($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
bookToZemdegasZS($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_zemdegas_zs
  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_zemdegas_zs

Waarom Cargoson API gebruiken voor Zemdegas ZS integratie

Direct integreren met Zemdegas ZS's native API betekent worstelen met vervoerdersspecifieke documentatie, omgaan met unieke dataformaten en apart onderhouden van code voor elke provider. Cargoson biedt één uniforme RESTful API die Zemdegas ZS en 2.000+ vervoerders ondersteunt in Europese en Noord-Amerikaanse markten, met wekelijks nieuwe integraties. We verminderen ontwikkeltijd van maanden naar dagen, handelen vervoerdersupdates automatisch af en beheren regionale uitzonderingen. Met Cargoson richt u zich op het laten groeien van uw bedrijf in plaats van het beheren van technische complexiteiten van vervoerders.

Voordelen van het integreren van Zemdegas ZS via Cargoson API

Eén API voor alle vervoerders

Vervang tientallen aparte vervoerdersintegraties met één verbinding naar Zemdegas ZS en 2.000+ andere providers via Cargoson API. Geen onderhoud meer van meerdere authenticatiesystemen, omgaan met verschillende dataformaten of updaten van code wanneer vervoerders hun endpoints wijzigen.

Duidelijke documentatie en ondersteuning

Toegang tot eenvoudige API-documentatie met werkende codevoorbeelden, gedetailleerde parameterbeschrijvingen en duidelijk gedefinieerde endpoints. Ons supportteam kent de logistieke industrie en kan u helpen integratie-uitdagingen snel op te lossen.

Codevoorbeelden in meerdere talen

Begin onmiddellijk met kant-en-klare codevoorbeelden in cURL, JavaScript, Python, PHP en Ruby. Kopieer, plak en pas ze aan uw stack aan, geen noodzaak om authenticatie, request formatting of error handling vanaf nul uit te zoeken.

Echte ondersteuning van logistieke experts

Krijg hulp van mensen die verzending begrijpen, niet alleen API's. Of u nu een integratieprobleem aan het oplossen bent of advies nodig heeft over de beste manier om internationale zendingen af te handelen, ons team is er om te helpen.

's Werelds meest geavanceerde vrachtprijsengine

Cargoson's vrachtprijzen API gaat veel verder dan eenvoudige tariefopzoekingen. Onze engine kan elke vervoerdersprijslijst lezen, analyseren en digitaliseren, ongeacht formaat of structuur, waardoor het de krachtigste vrachtprijsbeheeroplossing in de logistieke industrie is.

Universele formaatondersteuning

Onze vrachtprijsengine handelt elk formaat af: gestructureerde Excel-bestanden, complexe PDF's, vrije tekst of zelfs handgeschreven prijslijsten. Upload uw vervoerderscontracten in elk formaat en onze vrachtprijsengine zal de prijsregels, toeslagen en voorwaarden automatisch parseren.

Directe vervoerders API-integratie

Voor vervoerders met moderne systemen (meestal wereldwijde pakketvervoerders en tech-forward vrachtbedrijven) halen we tarieven direct uit hun API's in real-time. Dit zorgt ervoor dat u altijd de meest actuele prijzen krijgt zonder handmatige updates.

Openbare online prijzen

Heeft u nog geen contract met een vervoerder? Geen probleem. Cargoson kan openbare online prijzen van vervoerders ophalen, waardoor u opties kunt vergelijken zelfs voordat u formele overeenkomsten aangaat.

Spot-tariefverzoeken

Voor complexe zendingen of speciale gevallen, vraag spot-tarieven aan waarbij vervoerders uw specifieke vereisten beoordelen en een aangepaste offerte verstrekken. Allemaal beheerd via dezelfde uniforme API.

Zemdegas ZS verzend-API: Vereenvoudigde logistieke automatisering

Automatiseer uw fulfillmentproces door Cargoson's Verzend-API te integreren met Zemdegas ZS en 2.000+ vervoerders wereldwijd. Creëer verzendlabels, boek ophalingen en beheer al uw vervoerders vanaf één platform terwijl u uw onderhandelde tarieven bij elke provider behoudt.

Geautomatiseerde labelgeneratie

Genereer door vervoerders goedgekeurde verzendlabels in één API-verzoek. Ondersteuning voor meerdere labelformaten (A4, thermische printer) en automatische douanedocumentatie voor internationale zendingen betekent minder handmatig werk en minder verzendfouten.

Real-time tariefvergelijking

Vergelijk live tarieven tussen Zemdegas ZS en uw andere geactiveerde vervoerders om de beste optie te kiezen op basis van kosten, snelheid en serviceniveau.

Behoud uw onderhandelde tarieven

Verbind uw bestaande Zemdegas ZS account om uw onderhandelde verzendtarieven te behouden. Cargoson biedt simpelweg de technische integratie: u behoudt uw directe vervoerdersrelaties en aangepaste prijsafspraken.

Enterprise-grade beveiliging voor Zemdegas ZS API-integratie

Cargoson's API-infrastructuur voldoet aan Europese nalevingsnormen, die veilige, audit-ready Zemdegas ZS integratie voor uw bedrijf garanderen:

  • AVG-conforme gegevensverwerking en -opslag in heel Europa
  • ISO 27001 gecertificeerd informatiebeveiligingsbeheer
  • End-to-end encryptie voor alle API-communicatie

Klaar om Zemdegas ZS verzending te integreren in uw platform?

Boek een demo om te zien hoe Cargoson's uniforme API uw logistieke operaties kan vereenvoudigen

Boek een Demo

Veelgestelde Vragen

Cargoson is een TMS (Transport Management System) voor Europese en Noord-Amerikaanse fabrikanten. Onze centrale visie is eenvoud: integreer alle vervoerders en vrachtmodaliteiten (weg, pakket, lucht, zee, spoor) in één venster en één API. Of u nu pallets door Europa verzendt of containers overzee, beheer alles vanaf één platform.

Beginnen is eenvoudig. Meld u eerst aan voor een Cargoson-account en verkrijg uw API-sleutel. Verbind vervolgens uw Zemdegas ZS account in het Cargoson-dashboard. Zodra dat is gebeurd, kunt u API-verzoeken gaan doen met behulp van onze documentatie en codevoorbeelden. De hele setup duurt meestal minder dan een uur.

Ja, u heeft uw eigen Zemdegas ZS account nodig om Zemdegas ZS services via Cargoson te gebruiken. Dit zorgt ervoor dat u uw onderhandelde tarieven behoudt en uw directe relatie met Zemdegas ZS handhaaft. Cargoson biedt simpelweg de technische integratielaag die het gemakkelijker maakt om met Zemdegas ZS en andere vervoerders te werken via één uniforme API.

Cargoson werkt met een transparant maandelijks abonnementsmodel zonder kosten per zending of commissies, ooit. Uw plan omvat API-toegang, documentatie, ondersteuning en automatische updates wanneer vervoerders hun systemen wijzigen. U betaalt Zemdegas ZS rechtstreeks voor verzending tegen uw onderhandelde tarieven. Geen verborgen kosten, geen verrassingen.

Absoluut! Dat is het belangrijkste voordeel van het gebruik van Cargoson. Zodra u onze API integreert, kunt u met Zemdegas ZS en 2.000+ andere vervoerders werken met dezelfde endpoints, authenticatie en dataformaten. Voeg nieuwe vervoerders toe zonder nieuwe integratiecode te schrijven, activeer ze gewoon in uw Cargoson-dashboard.

Ja! We integreren elke vervoerder die u nodig heeft zonder extra kosten. Dit is inbegrepen in uw Cargoson-abonnement. Stel ons gewoon voor aan uw vervoerderscontacten en wij handelen de technische integratie af. Nieuwe integraties worden dagelijks toegevoegd op basis van klantverzoeken.

Ja, we kunnen webhooks instellen om uw systeem op de hoogte te stellen op basis van gebeurtenissen en triggers in Cargoson, zoals zendingstatusupdates, boekingsbevestigingen of wijzigingen aan uw zendingen. Neem contact op met ons supportteam of boek een demo om uw webhook-vereisten en setup te bespreken.

Cargoson kan overdreven zijn als u een klein bedrijf bent dat slechts een paar keer per maand verzendt met één vervoerder. U kunt die zendingen waarschijnlijk prima beheren zonder een TMS. We zijn ook niet de juiste keuze als u een vervoerder of expediteur bent. Cargoson is specifiek gebouwd voor ladingseigenaren (BCO's) zoals fabrikanten en distributeurs die eigenaar zijn van de goederen die worden verzonden. Als u op zoek bent naar een TMS om uw expeditie- of vervoerdersbedrijf te beheren, zijn we niet ontworpen voor die use case.

Onze API retourneert duidelijke foutmeldingen met specifieke foutcodes en beschrijvingen. Veelvoorkomende problemen zijn gedocumenteerd met oplossingen in onze ontwikkelaarsdocumentatie. Als u vastloopt, kan ons supportteam helpen bij het oplossen van integratieproblemen.

We implementeren redelijke limieten om systeemstabiliteit voor alle klanten te garanderen. Er zijn zowel langetermijnlimieten als burst-limieten, met waarden die meer dan voldoende zouden moeten zijn voor de meeste bedrijven. Als u hogere limieten nodig heeft voor enterprise-schaal operaties, neem dan contact met ons op om aangepaste limieten voor uw account te bespreken.

Begin met het Gebruiken van de Zemdegas ZS API

Verkrijg uw API-inloggegevens om te beginnen met integratie

Vraag uw API-sleutel aan