Documentación API de Schenker UAB

Integrado REST API

Referencia completa de la API para la integración de envíos con Schenker UAB. Accede a reservas, tarifas de carga, generación de etiquetas y seguimiento a través de la API unificada de gestión de transporte de Cargoson.

Obtén tu Clave API

Descripción General de la API de Schenker UAB

Esta API proporciona acceso programático a los servicios de envío de Schenker UAB a través de la plataforma unificada de gestión de transporte de Cargoson. Integra las capacidades de Schenker UAB incluyendo reservas de envíos, seguimiento, presupuestos de tarifas y generación de etiquetas en tus aplicaciones.

Capacidades de la API

  • Crear y gestionar reservas de envíos con Schenker UAB
  • Seguimiento de envíos y actualizaciones de estado
  • Obtener presupuestos de tarifas de carga y tiempos de tránsito
  • Generar etiquetas de envío en múltiples formatos (PDF, PNG, ZPL)
  • Crear etiquetas de devolución para logística inversa
  • Consultar ubicaciones de taquillas de paquetería y puntos de recogida
  • Listar servicios disponibles del transportista
  • Solicitudes automáticas de recogida por mensajero

URL Base y Autenticación

URL Base

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

Autenticación

Todas las solicitudes deben incluir tu clave API y el encabezado Accept correcto:

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

API de Reservas de Schenker UAB

API Directa del Transportista

Crea envíos con Schenker UAB y obtén etiquetas de envío utilizando el endpoint Queries. Las reservas se envían al sistema del transportista en tiempo real y las etiquetas se generan inmediatamente.

Consulta vs Reserva Directa

El endpoint Queries admite dos métodos de reserva:

  • Modo consulta - Crea una solicitud de transporte sin especificar un transportista (todavía). Esto te permite comparar manualmente precios y tiempos de entrega de transportistas, solicitar nuevos precios spot, realizar ajustes/actualizaciones al envío y delegar la selección del transportista a otros, antes de hacer la selección final del transportista en Cargoson.
  • Reserva directa - Especifica un ID de servicio del transportista (de la API de Tarifas o Servicios) para reservar directamente con Schenker UAB. Esto asegura que tu envío utilice el servicio exacto que seleccionaste.

Para reservar directamente con Schenker UAB, siempre define el direct_booking_service_id.

POST /queries

Crear una consulta de envío o reserva directa para Schenker UAB. Incluye direct_booking_service_id para crear una reserva inmediata.

Request Parameters

collection_date string required

Fecha de recogida en formato AAAA-MM-DD

collection_country string required

Código de país de recogida (ISO 3166-1 alpha-2)

collection_postcode string required

Código postal de recogida

collection_address_row_1 string required

Dirección de calle de recogida

collection_city string required

Ciudad de recogida

collection_company_name string required

Nombre de la empresa remitente

collection_contact_name string required

Persona de contacto del remitente

collection_contact_phone string required

Número de teléfono del remitente

delivery_country string required

Código de país de entrega

delivery_postcode string required

Código postal de entrega

delivery_address_row_1 string required

Dirección de calle de entrega

delivery_city string required

Ciudad de entrega

delivery_company_name string required

Nombre de la empresa destinataria

delivery_contact_name string required

Persona de contacto del destinatario

delivery_contact_phone string required

Número de teléfono del destinatario

rows_attributes array required

Array de paquetes/palés con cantidad, tipo de paquete, peso y descripción

options[direct_booking_service_id] integer

ID de servicio de Schenker UAB para reserva directa

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

Generación de Etiquetas

Las etiquetas de envío de Schenker UAB se generan automáticamente cuando creas una reserva. Las etiquetas están disponibles en múltiples formatos para admitir diferentes tipos de impresoras.

Formatos de Etiqueta Soportados

a4 - Formato PDF A4 para impresoras de escritorio (4 etiquetas por página)
label_printer - Formato PDF de 4x6in (~10x15cm) para impresoras térmicas

Las etiquetas se incluyen en la respuesta de la reserva a través del campo label_url. Descarga e imprime la etiqueta desde la URL proporcionada después de la reserva.

API de Tarifas de Schenker UAB (Precios de Carga)

Motor de Cargoson
Mejora de Cargoson:

Schenker UAB no proporciona una API de tarifas nativa. El motor de tarifas de carga de Cargoson calcula precios utilizando tus acuerdos de precios cargados, proporcionándote la misma experiencia API que los transportistas con APIs de tarifas nativas. Puedes cargar tarifas de transportistas en cualquier formato (Excel, PDF, incluso listas de precios escritas a mano) y las digitalizaremos.

Obtén tarifas de carga de Schenker UAB en tiempo real antes de reservar. La API de Tarifas devuelve servicios disponibles, precios y tiempos de entrega estimados.

POST /freightPrices/list

Obtener presupuestos de tarifas de carga de Schenker UAB y otros transportistas activados en tu cuenta.

Request Parameters

collection_date string required

Fecha de recogida en formato AAAA-MM-DD

collection_country string required

Código de país de recogida (ISO 3166-1 alpha-2)

collection_postcode string required

Código postal de recogida

delivery_country string required

Código de país de entrega

delivery_postcode string required

Código postal de entrega

rows_attributes array required

Array de paquetes/palés con cantidad, tipo de paquete, peso y descripción

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": "Schenker UAB",
        "reg_no": "111552645",
        "id": 1273,
        "service": "Main",
        "service_id": 85,
        "price": "19.13",
        "unit": "payable_weight",
        "type": "price_list"
      },
      {
        "carrier": "Schenker UAB",
        "reg_no": "111552645",
        "id": 1273,
        "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"
      }
    ]
  }
}

API de Seguimiento de Schenker UAB

API Directa del Transportista

Rastrea envíos de Schenker UAB utilizando el número de referencia de Cargoson. Obtén el estado actual, actualizaciones de ubicación y tiempo estimado de entrega.

GET /bookings/{reference}

Recuperar detalles de seguimiento de un envío de Schenker UAB utilizando la referencia de reserva de Cargoson.

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

API de Etiquetas de Devolución de Schenker UAB

Impulsado por Cargoson
Mejora de Cargoson:

Schenker UAB no admite de forma nativa etiquetas de devolución. Cargoson genera etiquetas de devolución y gestiona el proceso de logística de devolución a través de nuestra plataforma.

Genera etiquetas de envío de devolución para envíos de Schenker UAB. Las etiquetas de devolución permiten a los clientes devolver artículos utilizando envío prepagado.

POST /bookings/{reference}/return_labels

Crear una etiqueta de devolución para un envío existente de Schenker UAB.

Request Parameters

label_format string

Formato de etiqueta: a4 o label_printer (predeterminado: 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"
}

Características de Etiquetas de Devolución

  • Etiquetas de envío de devolución prepagadas
  • Las mismas opciones de formato que las etiquetas de salida (A4, térmica)
  • Referencia de seguimiento separada para devoluciones
  • Integración perfecta con los servicios de devolución de Schenker UAB

Solicitudes de Mensajero de Schenker UAB

Automatización de Cargoson

Cargoson automatiza las solicitudes de recogida por mensajero para envíos de Schenker UAB, lo que hace que sea una tarea menos en la que pensar.

Cómo Maneja Cargoson las Solicitudes de Mensajero

Muchos transportistas requieren que crees etiquetas por separado y luego solicites manualmente la recogida por mensajero. Otros no tienen un sistema separado de etiqueta más llamada de mensajero, y cada envío es un envío completo y separado. Creemos que debería haber un estándar único de APIs de transportistas, pero actualmente, cada transportista crea su propio sistema único, lo que dificulta que sus usuarios recuerden las peculiaridades y complejidades de cada uno. Cargoson simplifica tus llamadas de mensajero tratando cada envío de manera integral: las solicitudes de mensajero se gestionan automáticamente como parte del proceso de reserva.

Optimización Inteligente de Recogidas

Cargoson optimiza las llamadas de mensajero para reducir costos y mejorar la eficiencia.

  • 1. Consolidación por lotes - Múltiples envíos desde la misma ubicación se agrupan en una única solicitud de recogida
  • 2. Manejo específico del transportista - Algunos transportistas incluyen la recogida en la reserva, otros requieren solicitudes separadas. Cargoson maneja ambas variantes automáticamente para ti
  • 3. Horarios de recogida regulares - Configura recogidas preprogramadas en intervalos específicos (ej., diariamente en mi almacén principal a las 3 PM) y Cargoson omitirá por completo las llamadas de mensajero individuales

Beneficios

  • No es necesario rastrear qué transportistas requieren solicitudes de mensajero separadas
  • La optimización automática previene llamadas de recogida innecesarias
  • Soporte para horarios de recogida regulares
  • Flujo de trabajo de envío simplificado - solo crea la reserva

Configuración

La automatización de recogida por mensajero está habilitada por defecto para todos los envíos de Schenker UAB. Para configurar horarios de recogida regulares o reglas de optimización de recogida personalizadas, contacta a [email protected].

API de Servicios de Schenker UAB

Motor de Cargoson
Mejora de Cargoson:

La API de Servicios es una característica proporcionada por Cargoson que devuelve una lista unificada de todos los servicios disponibles de Schenker UAB y otros transportistas en tu red. Esto te permite mostrar dinámicamente opciones de envío a tus clientes sin codificar IDs de servicio.

Obtén una lista de servicios de envío disponibles de Schenker UAB. Utiliza los IDs de servicio al realizar reservas directas para asegurarte de obtener el servicio exacto que deseas.

GET /services/list

Devolver lista de servicios de Schenker UAB disponibles en tu cuenta de empresa.

Example Response

{
  "services": [
    {
      "carrier": {
        "id": 1273,
        "name": "Schenker UAB",
        "short_name": "Schenker UAB",
        "reg_no": "111552645"
      },
      "id": 85,
      "name": "Main",
      "service_type": "road_freight"
    },
    {
      "carrier": {
        "id": 1273,
        "name": "Schenker UAB",
        "short_name": "Schenker UAB",
        "reg_no": "111552645"
      },
      "id": 123,
      "name": "Express Service",
      "service_type": "express"
    }
  ]
}

Uso de IDs de Servicio

Los IDs de servicio de este endpoint se pueden utilizar con el parámetro direct_booking_service_id al crear reservas para seleccionar el servicio correcto y enviar el envío al sistema de Schenker UAB.

Ejemplos de Código Completos

A continuación se muestran ejemplos completos y funcionales que muestran el flujo de trabajo completo: obtener tarifas, seleccionar un servicio, reservar envío y extraer información de seguimiento.

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

# Step 1: Get freight prices for Schenker UAB
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 bookToSchenkerUAB() {
  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
bookToSchenkerUAB();
import requests

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

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

define('CARRIER_SERVICE_ID', 85);

function bookToSchenkerUAB($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
bookToSchenkerUAB($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_schenker_uab
  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_schenker_uab

Por qué usar la API de Cargoson para la integración con Schenker UAB

Integrar directamente con la API nativa de Schenker UAB significa lidiar con documentación específica del transportista, manejar formatos de datos únicos y mantener código separado para cada proveedor. Cargoson ofrece una única API RESTful unificada que admite Schenker UAB y más de 2,000 transportistas en los mercados europeos y norteamericanos, con nuevas integraciones agregadas semanalmente. Reducimos el tiempo de desarrollo de meses a días, manejamos actualizaciones de transportistas automáticamente y gestionamos excepciones regionales. Con Cargoson, te enfocas en hacer crecer tu negocio en lugar de gestionar complejidades técnicas de transportistas.

Beneficios de integrar Schenker UAB a través de la API de Cargoson

Una API para todos los transportistas

Reemplaza docenas de integraciones de transportistas separadas con una conexión a Schenker UAB y más de 2,000 otros proveedores a través de la API de Cargoson. No más mantenimiento de múltiples sistemas de autenticación, manejo de diferentes formatos de datos o actualización de código cuando los transportistas cambian sus endpoints.

Documentación clara y soporte

Accede a documentación API clara con ejemplos de código funcionales, descripciones detalladas de parámetros y endpoints claramente definidos. Nuestro equipo de soporte conoce la industria logística y puede ayudarte a resolver desafíos de integración rápidamente.

Ejemplos de código en múltiples lenguajes

Comienza inmediatamente con ejemplos de código listos para usar en cURL, JavaScript, Python, PHP y Ruby. Copia, pega y adáptalos a tu stack, no es necesario descifrar la autenticación, el formato de solicitudes o el manejo de errores desde cero.

Soporte real de expertos en logística

Obtén ayuda de personas que entienden de envíos, no solo de APIs. Ya sea que estés solucionando un problema de integración o necesites asesoramiento sobre la mejor manera de manejar envíos internacionales, nuestro equipo está aquí para ayudar.

El motor de precios de carga más avanzado del mundo

La API de precios de carga de Cargoson va mucho más allá de simples búsquedas de tarifas. Nuestro motor puede leer, analizar y digitalizar cualquier lista de precios de transportista independientemente del formato o estructura, convirtiéndolo en la solución de gestión de tarifas de carga más potente de la industria logística.

Soporte de formato universal

Nuestro motor de precios de carga maneja cualquier formato: archivos Excel estructurados, PDFs complejos, texto libre o incluso listas de precios escritas a mano. Sube tus contratos de transportista en cualquier formato, y nuestro motor de tarifas de carga analizará las reglas de precios, recargos y condiciones automáticamente.

Integración directa con API del transportista

Para transportistas con sistemas modernos (típicamente transportistas de paquetería globales y empresas de carga con orientación tecnológica), obtenemos tarifas directamente de sus APIs en tiempo real. Esto asegura que siempre obtengas los precios más actuales sin actualizaciones manuales.

Precios públicos en línea

¿Aún no tienes un contrato con un transportista? No hay problema. Cargoson puede obtener precios públicos en línea de los transportistas, permitiéndote comparar opciones incluso antes de establecer acuerdos formales.

Solicitudes de tarifas spot

Para envíos complejos o casos especiales, solicita tarifas spot donde los transportistas revisan tus requisitos específicos y proporcionan un presupuesto personalizado. Todo gestionado a través de la misma API unificada.

API de envío de Schenker UAB: Automatización logística simplificada

Automatiza tu proceso de cumplimiento integrando la API de Envío de Cargoson con Schenker UAB y más de 2,000 transportistas en todo el mundo. Crea etiquetas de envío, reserva recogidas y gestiona todos tus transportistas desde una plataforma mientras mantienes tus tarifas negociadas con cada proveedor.

Generación automática de etiquetas

Genera etiquetas de envío aprobadas por el transportista en una única solicitud API. El soporte para múltiples formatos de etiquetas (A4, impresora térmica) y documentación aduanera automática para envíos internacionales significa menos trabajo manual y menos errores de envío.

Comparación de tarifas en tiempo real

Compara tarifas en vivo entre Schenker UAB y tus otros transportistas activados para elegir la mejor opción según costo, velocidad y nivel de servicio.

Mantén tus tarifas negociadas

Conecta tu cuenta existente de Schenker UAB para conservar tus tarifas de envío negociadas. Cargoson simplemente proporciona la integración técnica: mantienes tus relaciones directas con transportistas y acuerdos de precios personalizados.

Seguridad de nivel empresarial para la integración API de Schenker UAB

La infraestructura API de Cargoson cumple con los estándares de cumplimiento europeos, que aseguran una integración segura y lista para auditoría con Schenker UAB para tu negocio:

  • Manejo y almacenamiento de datos conforme a GDPR en toda Europa
  • Gestión de seguridad de la información certificada ISO 27001
  • Cifrado de extremo a extremo para todas las comunicaciones API

¿Listo para integrar el envío de Schenker UAB en tu plataforma?

Reserva una demo para ver cómo la API unificada de Cargoson puede simplificar tus operaciones logísticas

Reservar una Demo

Preguntas Frecuentes

Cargoson es un TMS (Sistema de Gestión de Transporte) para fabricantes europeos y norteamericanos. Nuestra visión central es la simplicidad: integrar cualquier y todos los transportistas y modos de carga (carretera, paquetería, aéreo, marítimo, ferroviario) en una ventana y una API. Ya sea que estés enviando palés por Europa o contenedores al extranjero, gestiona todo desde una única plataforma.

Comenzar es simple. Primero, regístrate para obtener una cuenta de Cargoson y obtén tu clave API. Luego conecta tu cuenta de Schenker UAB en el panel de Cargoson. Una vez hecho esto, puedes comenzar a realizar solicitudes API utilizando nuestra documentación y ejemplos de código. Toda la configuración normalmente toma menos de una hora.

Sí, necesitarás tu propia cuenta de Schenker UAB para usar los servicios de Schenker UAB a través de Cargoson. Esto asegura que mantengas tus tarifas negociadas y mantengas tu relación directa con Schenker UAB. Cargoson simplemente proporciona la capa de integración técnica que facilita trabajar con Schenker UAB y otros transportistas a través de una API unificada.

Cargoson opera con un modelo de suscripción mensual transparente sin tarifas por envío ni comisiones, nunca. Tu plan incluye acceso API, documentación, soporte y actualizaciones automáticas cuando los transportistas cambian sus sistemas. Pagas a Schenker UAB directamente por el envío a tus tarifas negociadas. Sin costos ocultos, sin sorpresas.

¡Absolutamente! Ese es el principal beneficio de usar Cargoson. Una vez que integras nuestra API, puedes trabajar con Schenker UAB y más de 2,000 otros transportistas utilizando los mismos endpoints, autenticación y formatos de datos. Agrega nuevos transportistas sin escribir nuevo código de integración, solo actívalos en tu panel de Cargoson.

¡Sí! Integramos cualquier transportista que necesites sin costo adicional. Esto está incluido en tu suscripción de Cargoson. Solo preséntanos a tus contactos de transportista y nosotros nos encargaremos de la integración técnica. Se agregan nuevas integraciones diariamente según las solicitudes de los clientes.

Sí, podemos configurar webhooks para notificar a tu sistema según eventos y activadores en Cargoson, como actualizaciones de estado de envío, confirmaciones de reserva o cambios en tus envíos. Contacta a nuestro equipo de soporte o reserva una demo para discutir tus requisitos y configuración de webhooks.

Cargoson podría ser excesivo si eres una pequeña empresa que envía solo unas pocas veces al mes con un solo transportista. Probablemente puedas gestionar esos envíos bien sin un TMS. Tampoco somos la opción adecuada si eres un transportista o transitario. Cargoson está diseñado específicamente para propietarios de carga beneficiarios (BCOs) como fabricantes y distribuidores que poseen las mercancías que se envían. Si estás buscando un TMS para gestionar tu negocio de transitario u operaciones de transportista, no estamos diseñados para ese caso de uso.

Nuestra API devuelve mensajes de error claros con códigos de error específicos y descripciones. Los problemas comunes están documentados con soluciones en nuestra documentación para desarrolladores. Si te quedas atascado, nuestro equipo de soporte puede ayudar a solucionar problemas de integración.

Implementamos límites de tasa razonables para garantizar la estabilidad del sistema para todos los clientes. Hay límites de tasa tanto de largo período como de ráfaga, con valores que deberían ser más que suficientes para la mayoría de las empresas. Si necesitas límites más altos para operaciones a escala empresarial, contáctanos para discutir límites de tasa personalizados para tu cuenta.

Comienza a Usar la API de Schenker UAB

Obtén tus credenciales API para comenzar la integración

Obtén tu Clave API