Personal Freight Services API Documentatie

Geïntegreerd REST API

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

Vraag uw API-sleutel aan

Personal Freight Services API Overzicht

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

API Mogelijkheden

  • Creëer en beheer Personal Freight Services 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

Personal Freight Services Boeking API

Cargoson Automatisering
Cargoson Verbetering:

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

Creëer Personal Freight Services 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 Personal Freight Services. Dit zorgt ervoor dat uw zending de exacte service gebruikt die u heeft geselecteerd.

Om direct te boeken bij Personal Freight Services, definieer altijd de direct_booking_service_id.

POST /queries

Creëer een zendingquery of directe boeking voor Personal Freight Services. 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

Personal Freight Services 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

Personal Freight Services 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.

Personal Freight Services Tarief API (Vrachtprijzen)

Cargoson Engine
Cargoson Verbetering:

Personal Freight Services 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 Personal Freight Services vrachttarieven voordat u boekt. De Rate API retourneert beschikbare services, prijzen en geschatte levertijden.

POST /freightPrices/list

Verkrijg vrachttariefoffertes van Personal Freight Services 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": "Air Sea Containers Ireland Limited",
        "reg_no": "233489",
        "id": 4760,
        "service": "Main",
        "service_id": 85,
        "price": "19.13",
        "unit": "payable_weight",
        "type": "price_list"
      },
      {
        "carrier": "Air Sea Containers Ireland Limited",
        "reg_no": "233489",
        "id": 4760,
        "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"
      }
    ]
  }
}

Personal Freight Services Tracking API

Cargoson Automatisering
Cargoson Verbetering:

Personal Freight Services 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 Personal Freight Services zendingen met behulp van het Cargoson referentienummer. Verkrijg huidige status, locatie-updates en geschatte levertijd.

GET /bookings/{reference}

Verkrijg trackingdetails voor een Personal Freight Services 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"
}

Personal Freight Services Retourlabels API

Mogelijk gemaakt door Cargoson
Cargoson Verbetering:

Personal Freight Services ondersteunt native geen retourlabels. Cargoson genereert retourlabels en beheert het retourlogistiekproces via ons platform.

Genereer retourverzendlabels voor Personal Freight Services 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 Personal Freight Services 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 Personal Freight Services retourservices

Personal Freight Services Koerierverzoeken

Cargoson Automatisering

Cargoson automatiseert koerier ophaalverzoeken voor Personal Freight Services 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 Personal Freight Services zendingen. Om reguliere ophaalschema's of aangepaste ophaaloptimalisatieregels te configureren, neem contact op met [email protected].

Personal Freight Services 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 Personal Freight Services 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 Personal Freight Services 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 Personal Freight Services services beschikbaar op uw bedrijfsaccount.

Example Response

{
  "services": [
    {
      "carrier": {
        "id": 4760,
        "name": "Air Sea Containers Ireland Limited",
        "short_name": "Personal Freight Services",
        "reg_no": "233489"
      },
      "id": 85,
      "name": "Main",
      "service_type": "road_freight"
    },
    {
      "carrier": {
        "id": 4760,
        "name": "Air Sea Containers Ireland Limited",
        "short_name": "Personal Freight Services",
        "reg_no": "233489"
      },
      "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 Personal Freight Services 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 Personal Freight Services
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 bookToPersonalFreightServices() {
  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
bookToPersonalFreightServices();
import requests

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

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

define('CARRIER_SERVICE_ID', 85);

function bookToPersonalFreightServices($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
bookToPersonalFreightServices($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_personal_freight_services
  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_personal_freight_services

Waarom Cargoson API gebruiken voor Personal Freight Services integratie

Direct integreren met Personal Freight Services'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 Personal Freight Services 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 Personal Freight Services via Cargoson API

Eén API voor alle vervoerders

Vervang tientallen aparte vervoerdersintegraties met één verbinding naar Personal Freight Services 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.

Personal Freight Services verzend-API: Vereenvoudigde logistieke automatisering

Automatiseer uw fulfillmentproces door Cargoson's Verzend-API te integreren met Personal Freight Services 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 Personal Freight Services 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 Personal Freight Services 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 Personal Freight Services API-integratie

Cargoson's API-infrastructuur voldoet aan Europese nalevingsnormen, die veilige, audit-ready Personal Freight Services 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 Personal Freight Services 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 Personal Freight Services 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 Personal Freight Services account nodig om Personal Freight Services services via Cargoson te gebruiken. Dit zorgt ervoor dat u uw onderhandelde tarieven behoudt en uw directe relatie met Personal Freight Services handhaaft. Cargoson biedt simpelweg de technische integratielaag die het gemakkelijker maakt om met Personal Freight Services 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 Personal Freight Services 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 Personal Freight Services 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 Personal Freight Services API

Verkrijg uw API-inloggegevens om te beginnen met integratie

Vraag uw API-sleutel aan