GLS Belgium API Documentatie
Volledige API referentie voor GLS Belgium verzendintegratie. Toegang tot boekingen, vrachttarieven, labelgeneratie en tracking via Cargoson's uniforme transportbeheer API.
Vraag uw API-sleutel aanGLS Belgium API Overzicht
Deze API biedt programmatische toegang tot GLS Belgium verzendservices via Cargoson's uniforme transportbeheerplatform. Integreer GLS Belgium mogelijkheden inclusief zendingenboekingen, tracking, tariefoffertes en labelgeneratie in uw applicaties.
API Mogelijkheden
- Creëer en beheer GLS Belgium 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
GLS Belgium Boeking API
Directe Vervoerders APICreëer GLS Belgium 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 GLS Belgium. Dit zorgt ervoor dat uw zending de exacte service gebruikt die u heeft geselecteerd.
Om direct te boeken bij GLS Belgium, definieer altijd de direct_booking_service_id.
/queries
Creëer een zendingquery of directe boeking voor GLS Belgium. 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
GLS Belgium 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
GLS Belgium 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.
GLS Belgium Tarief API (Vrachtprijzen)
Cargoson EngineGLS Belgium 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 GLS Belgium vrachttarieven voordat u boekt. De Rate API retourneert beschikbare services, prijzen en geschatte levertijden.
/freightPrices/list
Verkrijg vrachttariefoffertes van GLS Belgium 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": "General Logistics Systems Belgium NV/SA",
"reg_no": "BE0479101608",
"id": 3864,
"service": "Main",
"service_id": 85,
"price": "19.13",
"unit": "payable_weight",
"type": "price_list"
},
{
"carrier": "General Logistics Systems Belgium NV/SA",
"reg_no": "BE0479101608",
"id": 3864,
"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"
}
]
}
}
GLS Belgium Tracking API
Directe Vervoerders APITrack GLS Belgium zendingen met behulp van het Cargoson referentienummer. Verkrijg huidige status, locatie-updates en geschatte levertijd.
/bookings/{reference}
Verkrijg trackingdetails voor een GLS Belgium 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"
}
GLS Belgium Retourlabels API
Mogelijk gemaakt door CargosonGLS Belgium ondersteunt native geen retourlabels. Cargoson genereert retourlabels en beheert het retourlogistiekproces via ons platform.
Genereer retourverzendlabels voor GLS Belgium zendingen. Retourlabels stellen klanten in staat om artikelen terug te sturen met vooruitbetaalde verzending.
/bookings/{reference}/return_labels
Creëer een retourlabel voor een bestaande GLS Belgium 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 GLS Belgium retourservices
GLS Belgium Koerierverzoeken
Cargoson AutomatiseringCargoson automatiseert koerier ophaalverzoeken voor GLS Belgium 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 GLS Belgium zendingen. Om reguliere ophaalschema's of aangepaste ophaaloptimalisatieregels te configureren, neem contact op met [email protected].
GLS Belgium Pakketautomaten API
Directe Vervoerders APIZoek beschikbare GLS Belgium pakketautomaten en afhaalpuntlocaties. Gebruik dit endpoint om klanten een lijst van nabijgelegen pakketautomaten te tonen tijdens het afrekenen.
/parcelMachines
Zoek naar GLS Belgium pakketautomaten en afhaalpunten op locatie of postcode.
Request Parameters
country
string
required
Landcode (ISO 3166-1 alpha-2)
postcode
string
Filter op postcode
carrier_id
integer
Filter op specifieke vervoerder
reference
string
Vind specifieke pakketautomaat op referentie
Example Response
{
"parcel_machines": [
{
"id": 123,
"reference": "PM12345",
"name": "Parcel Locker - Hauptstraße",
"carrier_id": 3864,
"carrier_name": "General Logistics Systems Belgium NV/SA",
"address_row_1": "Hauptstraße 123",
"city": "Berlin",
"postcode": "10115",
"country": "DE",
"latitude": 52.52,
"longitude": 13.405
}
]
}
GLS Belgium Services API
Cargoson EngineDe Services API is een door Cargoson geleverde functie die een uniforme lijst retourneert van alle beschikbare services van GLS Belgium 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 GLS Belgium verzendservices. Gebruik service-ID's bij het maken van directe boekingen om ervoor te zorgen dat u de exacte service krijgt die u wilt.
/services/list
Retourneer lijst van GLS Belgium services beschikbaar op uw bedrijfsaccount.
Example Response
{
"services": [
{
"carrier": {
"id": 3864,
"name": "General Logistics Systems Belgium NV/SA",
"short_name": "GLS Belgium",
"reg_no": "BE0479101608"
},
"id": 85,
"name": "Main",
"service_type": "road_freight"
},
{
"carrier": {
"id": 3864,
"name": "General Logistics Systems Belgium NV/SA",
"short_name": "GLS Belgium",
"reg_no": "BE0479101608"
},
"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 GLS Belgium 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 GLS Belgium
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 bookToGLSBelgium() {
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
bookToGLSBelgium();
import requests
API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://www.cargoson.com/api/v1'
CARRIER_SERVICE_ID = 85
def book_to_gls_belgium():
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_gls_belgium()
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://www.cargoson.com/api/v1';
define('CARRIER_SERVICE_ID', 85);
function bookToGLSBelgium($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
bookToGLSBelgium($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_gls_belgium
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_gls_belgium
Waarom Cargoson API gebruiken voor GLS Belgium integratie
Direct integreren met GLS Belgium'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 GLS Belgium 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 GLS Belgium via Cargoson API
Eén API voor alle vervoerders
Vervang tientallen aparte vervoerdersintegraties met één verbinding naar GLS Belgium 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.
GLS Belgium verzend-API: Vereenvoudigde logistieke automatisering
Automatiseer uw fulfillmentproces door Cargoson's Verzend-API te integreren met GLS Belgium 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 GLS Belgium 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 GLS Belgium 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 GLS Belgium API-integratie
Cargoson's API-infrastructuur voldoet aan Europese nalevingsnormen, die veilige, audit-ready GLS Belgium 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 GLS Belgium verzending te integreren in uw platform?
Boek een demo om te zien hoe Cargoson's uniforme API uw logistieke operaties kan vereenvoudigen
Boek een DemoInhoudsopgave
Veelgestelde Vragen
Begin met het Gebruiken van de GLS Belgium API
Verkrijg uw API-inloggegevens om te beginnen met integratie