EXOFEX BV API-dokumentasjon

Integrert REST API

Komplett API-referanse for EXOFEX BV forsendelseintegrasjon. Få tilgang til booking, fraktrater, etikettgenerering og sporing gjennom Cargosons enhetlige API for transportadministrasjon.

Få din API-nøkkel

EXOFEX BV API-oversikt

Dette API-et gir programmatisk tilgang til EXOFEX BV forsendelsetjenester gjennom Cargosons enhetlige plattform for transportadministrasjon. Integrer EXOFEX BV-funksjoner inkludert forsendelsebooking, sporing, ratetilbud og etikettgenerering i applikasjonene dine.

API-funksjoner

  • Opprett og administrer EXOFEX BV forsendelsebookinger
  • Forsendelsesporing og statusoppdateringer
  • Få fraktpristilbud og transittider
  • Generer fraktetiketter i flere formater (PDF, PNG, ZPL)
  • Opprett returfraktetiketter for returlogistikk
  • Søk etter pakkebokser og hentepunkter
  • List tilgjengelige transportørtjenester
  • Automatiserte budforespørsler

Basis-URL og autentisering

Basis-URL

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

Autentisering

Alle forespørsler må inkludere din API-nøkkel og riktig Accept-header:

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

EXOFEX BV Booking-API

Cargoson-automatisering
Cargoson-forbedring:

EXOFEX BV tilbyr ikke et booking-API. Cargoson sender automatisk bookingbekreftelser via e-post på dine vegne, mens du fortsatt bruker samme enhetlige API-grensesnitt.

Opprett EXOFEX BV forsendelser og hent fraktetiketter ved hjelp av Queries-endepunktet. Bookinger sendes til transportørens system i sanntid og etiketter genereres umiddelbart.

Query vs direkte booking

Queries-endepunktet støtter to bookingmetoder:

  • Query-modus - Opprett en transportforespørsel uten å spesifisere en transportør (ennå). Dette lar deg manuelt sammenligne transportørpriser og leveringstider, be om nye spot-priser, gjøre justeringer/oppdateringer til forsendelsen, og delegere transportørvalg til andre, før du gjør det endelige transportørvalget i Cargoson.
  • Direkte booking - Spesifiser en transportørtjeneste-ID (fra Rate- eller Services-API) for å booke direkte med EXOFEX BV. Dette sikrer at forsendelsen din bruker nøyaktig den tjenesten du valgte.

For å booke direkte til EXOFEX BV, definer alltid direct_booking_service_id.

POST /queries

Opprett en forsendelseforespørsel eller direkte booking for EXOFEX BV. Inkluder direct_booking_service_id for å opprette en umiddelbar booking.

Request Parameters

collection_date string required

Hentedato i ÅÅÅÅ-MM-DD-format

collection_country string required

Hentelandskode (ISO 3166-1 alpha-2)

collection_postcode string required

Hentepostnummer

collection_address_row_1 string required

Hentegateadresse

collection_city string required

Henteby

collection_company_name string required

Avsenders firmanavn

collection_contact_name string required

Avsenders kontaktperson

collection_contact_phone string required

Avsenders telefonnummer

delivery_country string required

Leveringslandskode

delivery_postcode string required

Leveringspostnummer

delivery_address_row_1 string required

Leveringsgateadresse

delivery_city string required

Leveringsby

delivery_company_name string required

Mottakers firmanavn

delivery_contact_name string required

Mottakers kontaktperson

delivery_contact_phone string required

Mottakers telefonnummer

rows_attributes array required

Array av pakker/paller med antall, pakketype, vekt og beskrivelse

options[direct_booking_service_id] integer

EXOFEX BV tjeneste-ID for direkte booking

Example: Direct Booking Request

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

Example Response

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

Etikettgenerering

EXOFEX BV fraktetiketter genereres automatisk når du oppretter en booking. Etiketter er tilgjengelige i flere formater for å støtte forskjellige skrivertyper.

Støttede etikettformater

a4 - A4 PDF-format for skrivebordsskrivere (4 etiketter per side)
label_printer - 4x6in (~10x15cm) PDF-format for termoskrivere

Etiketter er inkludert i bookingsvaret via label_url-feltet. Last ned og skriv ut etiketten fra den oppgitte URL-en etter booking.

EXOFEX BV Rate-API (fraktprising)

Cargoson-motor
Cargoson-forbedring:

EXOFEX BV tilbyr ikke et native rate-API. Cargosons fraktprismotor beregner priser ved hjelp av dine opplastede prisavtaler, og gir deg samme API-opplevelse som transportører med native rate-API-er. Du kan laste opp transportørpriser i hvilket som helst format (Excel, PDF, til og med håndskrevne prislister) og vi vil digitalisere dem.

Få sanntids EXOFEX BV fraktrater før booking. Rate-API returnerer tilgjengelige tjenester, priser og estimerte leveringstider.

POST /freightPrices/list

Få fraktpristilbud fra EXOFEX BV og andre aktiverte transportører på kontoen din.

Request Parameters

collection_date string required

Hentedato i ÅÅÅÅ-MM-DD-format

collection_country string required

Hentelandskode (ISO 3166-1 alpha-2)

collection_postcode string required

Hentepostnummer

delivery_country string required

Leveringslandskode

delivery_postcode string required

Leveringspostnummer

rows_attributes array required

Array av pakker/paller med antall, pakketype, vekt og beskrivelse

Example Request

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

Example Response

{
  "status": 200,
  "object": {
    "prices": [
      {
        "carrier": "EXOFEX B.V.",
        "reg_no": "854870076",
        "id": 5064,
        "service": "Main",
        "service_id": 85,
        "price": "19.13",
        "unit": "payable_weight",
        "type": "price_list"
      },
      {
        "carrier": "EXOFEX B.V.",
        "reg_no": "854870076",
        "id": 5064,
        "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"
      }
    ]
  }
}

EXOFEX BV Sporing-API

Cargoson-automatisering
Cargoson-forbedring:

EXOFEX BV tilbyr ikke sporingshendelser via API. Cargoson tilbyr en sporingsportal hvor transportøren kan oppdatere forsendelsestatus manuelt, noe som gir deg og kundene dine en konsistent sporingsopplevelse.

Spor EXOFEX BV forsendelser ved hjelp av Cargoson-referansenummeret. Få gjeldende status, posisjonsoppdateringer og estimert leveringstid.

GET /bookings/{reference}

Hent sporingsdetaljer for en EXOFEX BV forsendelse ved hjelp av Cargoson-bookingreferansen.

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

EXOFEX BV Returfraktetiketter-API

Drevet av Cargoson
Cargoson-forbedring:

EXOFEX BV støtter ikke native returfraktetiketter. Cargoson genererer returfraktetiketter og administrerer returlogistikkprosessen gjennom vår plattform.

Generer returfraktetiketter for EXOFEX BV forsendelser. Returfraktetiketter lar kunder sende varer tilbake med forhåndsbetalt frakt.

POST /bookings/{reference}/return_labels

Opprett en returfraktetikett for en eksisterende EXOFEX BV forsendelse.

Request Parameters

label_format string

Etikettformat: a4 eller label_printer (standard: a4)

Example Request

{
  "label_format": "a4"
}

Example Response

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

Returfraktetikett-funksjoner

  • Forhåndsbetalte returfraktetiketter
  • Samme formatalternativer som utgående etiketter (A4, termisk)
  • Separat sporingsreferanse for returer
  • Sømløs integrasjon med EXOFEX BV returtjenester

EXOFEX BV budforespørsler

Cargoson-automatisering

Cargoson automatiserer budhenteforespørsler for EXOFEX BV forsendelser, noe som gjør det til én oppgave mindre du trenger å tenke på.

Hvordan Cargoson håndterer budforespørsler

Mange frakttransportører krever at du oppretter etiketter separat og deretter manuelt ber om budhenting. Andre har ikke et separat system for etikett pluss budbestilling, og hver forsendelse er en komplett, separat forsendelse. Vi mener det bør være én enkelt standard for transportør-API-er, men for øyeblikket lager hver transportør sitt eget unike system, noe som gjør det vanskelig for brukerne å huske hver enkelt sine særegenheter og forviklinger. Cargoson forenkler budbestillingene dine ved å behandle hver forsendelse helhetlig: budforespørsler administreres automatisk som en del av bookingprosessen.

Smart henteoptimalisering

Cargoson optimaliserer budbestillinger for å redusere kostnader og forbedre effektiviteten.

  • 1. Batchkonsolidering - Flere forsendelser fra samme sted grupperes i én henteforespørsel
  • 2. Transportørspesifikk håndtering - Noen transportører inkluderer henting i bookingen, andre krever separate forespørsler. Cargoson håndterer begge varianter automatisk for deg
  • 3. Regelmessige henteplaner - Konfigurer forhåndsplanlagte hentinger med spesifikke intervaller (f.eks. daglig til hovedlageret mitt kl. 15.00) og Cargoson vil hoppe over individuelle budbestillinger helt

Fordeler

  • Ingen behov for å spore hvilke transportører som krever separate budforespørsler
  • Automatisk optimalisering forhindrer unødvendige hentebestillinger
  • Støtte for regelmessige henteplaner
  • Forenklet forsendelsesarbeidsflyt - bare opprett bookingen

Konfigurasjon

Automatisering av budhenting er aktivert som standard for alle EXOFEX BV forsendelser. For å konfigurere regelmessige henteplaner eller tilpassede henteoptimaliseringsregler, kontakt [email protected].

EXOFEX BV Tjenester-API

Cargoson-motor
Cargoson-forbedring:

Services-API er en Cargoson-levert funksjon som returnerer en enhetlig liste over alle tilgjengelige tjenester fra EXOFEX BV og andre transportører i nettverket ditt. Dette lar deg dynamisk vise fraktalternativer til kundene dine uten å hardkode tjeneste-ID-er.

Hent en liste over tilgjengelige EXOFEX BV forsendelsetjenester. Bruk tjeneste-ID-er når du gjør direkte bookinger for å sikre at du får nøyaktig den tjenesten du ønsker.

GET /services/list

Returner liste over EXOFEX BV tjenester tilgjengelig på din firmakonto.

Example Response

{
  "services": [
    {
      "carrier": {
        "id": 5064,
        "name": "EXOFEX B.V.",
        "short_name": "EXOFEX BV",
        "reg_no": "854870076"
      },
      "id": 85,
      "name": "Main",
      "service_type": "road_freight"
    },
    {
      "carrier": {
        "id": 5064,
        "name": "EXOFEX B.V.",
        "short_name": "EXOFEX BV",
        "reg_no": "854870076"
      },
      "id": 123,
      "name": "Express Service",
      "service_type": "express"
    }
  ]
}

Bruke tjeneste-ID-er

Tjeneste-ID-er fra dette endepunktet kan brukes med direct_booking_service_id-parameteren når du oppretter bookinger for å velge riktig tjeneste og sende forsendelsen til EXOFEX BV-systemet.

Komplette kodeeksempler

Nedenfor er komplette fungerende eksempler som viser hele arbeidsflyten: få rater, velg en tjeneste, book forsendelse og hent sporingsinformasjon.

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

# Step 1: Get freight prices for EXOFEX BV
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 bookToEXOFEXBV() {
  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
bookToEXOFEXBV();
import requests

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

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

define('CARRIER_SERVICE_ID', 85);

function bookToEXOFEXBV($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
bookToEXOFEXBV($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_exofex_bv
  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_exofex_bv

Hvorfor bruke Cargoson API for EXOFEX BV integrasjon

Å integrere direkte med EXOFEX BVs native API betyr å slite med transportørspesifikk dokumentasjon, håndtere unike dataformater og vedlikeholde separat kode for hver leverandør. Cargoson tilbyr ett enkelt enhetlig RESTful API som støtter EXOFEX BV og 2000+ transportører på tvers av europeiske og nordamerikanske markeder, med nye integrasjoner lagt til ukentlig. Vi reduserer utviklingstiden fra måneder til dager, håndterer transportøroppdateringer automatisk og administrerer regionale unntak. Med Cargoson fokuserer du på å vokse virksomheten din i stedet for å håndtere transportørers tekniske kompleksiteter.

Fordeler ved å integrere EXOFEX BV via Cargoson API

Ett API for alle transportører

Erstatt dusinvis av separate transportørintegrasjoner med én tilkobling til EXOFEX BV og 2000+ andre leverandører via Cargoson API. Ikke mer vedlikehold av flere autentiseringssystemer, håndtering av forskjellige dataformater eller oppdatering av kode når transportører endrer sine endepunkter.

Klar dokumentasjon og støtte

Få tilgang til enkel API-dokumentasjon med fungerende kodeeksempler, detaljerte parameterbeskrivelser og klart definerte endepunkter. Vårt supportteam kjenner logistikkbransjen og kan hjelpe deg med å løse integrasjonsutfordringer raskt.

Kodeeksempler på flere språk

Kom i gang umiddelbart med klare til bruk kodeeksempler i cURL, JavaScript, Python, PHP og Ruby. Kopier, lim inn og tilpass dem til din stack, ingen behov for å finne ut autentisering, forespørselsformatering eller feilhåndtering fra bunnen av.

Ekte støtte fra logistikkeksperter

Få hjelp fra folk som forstår frakt, ikke bare API-er. Enten du feilsøker et integrasjonsproblem eller trenger råd om den beste måten å håndtere internasjonale forsendelser på, er teamet vårt her for å hjelpe.

Verdens mest avanserte fraktprismotor

Cargosons fraktpris-API går langt utover enkle rateoppslag. Vår motor kan lese, analysere og digitalisere enhver transportørprisliste uavhengig av format eller struktur, noe som gjør den til den kraftigste fraktadministrasjonsløsningen i logistikkbransjen.

Universell formatstøtte

Vår fraktprismotor håndterer alle formater: strukturerte Excel-filer, komplekse PDF-er, friteksttekst eller til og med håndskrevne prislister. Last opp transportørkontraktene dine i hvilket som helst format, og vår fraktprismotor vil parse prisreglene, tilleggsavgiftene og betingelsene automatisk.

Direkte transportør-API-integrasjon

For transportører med moderne systemer (typisk globale pakketransportører og teknologifremmede fraktselskaper), henter vi rater direkte fra deres API-er i sanntid. Dette sikrer at du alltid får den mest oppdaterte prisingen uten manuelle oppdateringer.

Offentlige online-priser

Har du ikke en kontrakt med en transportør ennå? Ikke noe problem. Cargoson kan hente offentlige online-priser fra transportører, slik at du kan sammenligne alternativer selv før du etablerer formelle avtaler.

Spot-rateforespørsler

For komplekse forsendelser eller spesielle tilfeller, be om spot-rater hvor transportører gjennomgår dine spesifikke krav og gir et tilpasset tilbud. Alt administrert gjennom samme enhetlige API.

EXOFEX BV forsendelses-API: Forenklet logistikkautomatisering

Automatiser oppfyllelsesprosessen din ved å integrere Cargosons forsendelses-API med EXOFEX BV og 2000+ transportører over hele verden. Opprett fraktetiketter, book hentinger og administrer alle transportørene dine fra én plattform samtidig som du beholder dine forhandlede priser med hver leverandør.

Automatisert etikettgenerering

Generer transportørgodkjente fraktetiketter i én enkelt API-forespørsel. Støtte for flere etikettformater (A4, termoskriver) og automatisk tolldokumentasjon for internasjonale forsendelser betyr mindre manuelt arbeid og færre fraktefeil.

Sanntids ratesammenligning

Sammenlign live-rater på tvers av EXOFEX BV og dine andre aktiverte transportører for å velge det beste alternativet basert på kostnad, hastighet og tjenestenivå.

Behold dine forhandlede priser

Koble til din eksisterende EXOFEX BV-konto for å beholde dine forhandlede fraktpriser. Cargoson tilbyr ganske enkelt den tekniske integrasjonen: du beholder dine direkte transportørforhold og tilpassede prisavtaler.

Sikkerhet på bedriftsnivå for EXOFEX BV API-integrasjon

Cargosons API-infrastruktur oppfyller europeiske samsvarsstandarder, som sikrer sikker, revisjonsklar EXOFEX BV-integrasjon for virksomheten din:

  • GDPR-kompatibel datahåndtering og lagring over hele Europa
  • ISO 27001-sertifisert informasjonssikkerhetsstyring
  • Ende-til-ende-kryptering for all API-kommunikasjon

Klar til å integrere EXOFEX BV forsendelse i plattformen din?

Book en demo for å se hvordan Cargosons enhetlige API kan forenkle logistikkoperasjonene dine

Book en demo

Ofte stilte spørsmål

Cargoson er et TMS (Transport Management System) for europeiske og nordamerikanske produsenter. Vår sentrale visjon er enkelhet: integrer alle transportører og fraktmoduser (vei, pakke, fly, sjø, jernbane) i ett vindu og ett API. Enten du sender paller over Europa eller containere over havet, administrer alt fra én enkelt plattform.

Å komme i gang er enkelt. Først, registrer deg for en Cargoson-konto og få din API-nøkkel. Deretter kobler du til din EXOFEX BV-konto i Cargoson-dashbordet. Når det er gjort, kan du begynne å gjøre API-forespørsler ved hjelp av vår dokumentasjon og kodeeksempler. Hele oppsettet tar vanligvis mindre enn en time.

Ja, du trenger din egen EXOFEX BV-konto for å bruke EXOFEX BV-tjenester gjennom Cargoson. Dette sikrer at du beholder dine forhandlede priser og opprettholder ditt direkte forhold til EXOFEX BV. Cargoson tilbyr ganske enkelt det tekniske integrasjonslaget som gjør det enklere å jobbe med EXOFEX BV og andre transportører gjennom ett enhetlig API.

Cargoson opererer med en transparent månedlig abonnementsmodell uten gebyrer per forsendelse eller provisjoner, noensinne. Planen din inkluderer API-tilgang, dokumentasjon, støtte og automatiske oppdateringer når transportører endrer systemene sine. Du betaler EXOFEX BV direkte for frakt til dine forhandlede priser. Ingen skjulte kostnader, ingen overraskelser.

Absolutt! Det er hovedfordelen med å bruke Cargoson. Når du integrerer vårt API, kan du jobbe med EXOFEX BV og 2000+ andre transportører ved å bruke samme endepunkter, autentisering og dataformater. Legg til nye transportører uten å skrive ny integrasjonskode, bare aktiver dem i Cargoson-dashbordet ditt.

Ja! Vi integrerer hvilken som helst transportør du trenger uten ekstra kostnad. Dette er inkludert i Cargoson-abonnementet ditt. Bare introduser oss for transportørkontaktene dine, så håndterer vi den tekniske integrasjonen. Nye integrasjoner legges til daglig basert på kundeforespørsler.

Ja, vi kan sette opp webhooks for å varsle systemet ditt basert på hendelser og triggere i Cargoson, som forsendelsesstatusoppdateringer, bookingbekreftelser eller endringer i forsendelsene dine. Kontakt supportteamet vårt eller book en demo for å diskutere dine webhook-krav og oppsett.

Cargoson kan være overkill hvis du er et lite selskap som sender bare noen få ganger per måned med én enkelt transportør. Du kan sannsynligvis administrere disse forsendelsene fint uten et TMS. Vi er heller ikke riktig valg hvis du er en transportør eller speditør. Cargoson er bygget spesifikt for vareeiere (BCO-er) som produsenter og distributører som eier varene som sendes. Hvis du leter etter et TMS for å administrere din spedisjonsbedrift eller transportøroperasjoner, er vi ikke designet for det bruksområdet.

Vårt API returnerer klare feilmeldinger med spesifikke feilkoder og beskrivelser. Vanlige problemer er dokumentert med løsninger i utviklerdokumentasjonen vår. Hvis du står fast, kan supportteamet vårt hjelpe med å feilsøke integrasjonsproblemer.

Vi implementerer rimelige rategrenser for å sikre systemstabilitet for alle kunder. Det er både langtidsrategrenser og burst-rategrenser, med verdier som bør være mer enn nok for de fleste virksomheter. Hvis du trenger høyere grenser for bedriftsskala-operasjoner, kontakt oss for å diskutere tilpassede rategrenser for kontoen din.

Begynn å bruke EXOFEX BV API

Få dine API-legitimasjoner for å starte integrasjonen

Få din API-nøkkel