Документація API Logwin Baltics

Інтегровано REST API

Повний довідник API для інтеграції відправлень Logwin Baltics. Доступ до бронювання, тарифів, генерації етикеток та відстеження через уніфікований API управління транспортом Cargoson.

Отримати API ключ

Огляд API Logwin Baltics

Цей API надає програмний доступ до послуг відправлення Logwin Baltics через уніфіковану платформу управління транспортом Cargoson. Інтегруйте можливості Logwin Baltics, включаючи бронювання відправлень, відстеження, тарифні пропозиції та генерацію етикеток у ваші додатки.

Можливості API

  • Створення та управління бронюваннями відправлень Logwin Baltics
  • Відстеження відправлень та оновлення статусу
  • Отримання тарифних пропозицій та часу доставки
  • Генерація етикеток відправлення в кількох форматах (PDF, PNG, ZPL)
  • Створення етикеток повернення для зворотної логістики
  • Запит розташування поштоматів та пунктів видачі
  • Перелік доступних послуг перевізника
  • Автоматизовані запити на забір кур'єром

Базова URL-адреса та автентифікація

Базова URL-адреса

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

Автентифікація

Усі запити повинні включати ваш API ключ та правильний заголовок Accept:

Authorization: Bearer ВАШ_API_КЛЮЧ
Accept: application/vnd.api.v1

API бронювання Logwin Baltics

Автоматизація Cargoson
Покращення Cargoson:

Logwin Baltics не надає API бронювання. Cargoson автоматично надсилає підтвердження бронювання електронною поштою від вашого імені, поки ви все ще використовуєте той самий уніфікований інтерфейс API.

Створюйте відправлення Logwin Baltics та отримуйте етикетки відправлення, використовуючи ендпоінт Queries. Бронювання надсилаються в систему перевізника в реальному часі, а етикетки генеруються миттєво.

Запит vs пряме бронювання

Ендпоінт Queries підтримує два методи бронювання:

  • Режим запиту - Створіть запит на транспортування без вказівки перевізника (поки що). Це дозволяє вам вручну порівняти ціни та час доставки перевізників, запитати нові spot-ціни, внести зміни/оновлення до відправлення та делегувати вибір перевізника іншим, перш ніж зробити остаточний вибір перевізника в Cargoson.
  • Пряме бронювання - Вкажіть ID послуги перевізника (з Rate або Services API), щоб забронювати безпосередньо з Logwin Baltics. Це гарантує, що ваше відправлення використовує саме ту послугу, яку ви обрали.

Щоб забронювати безпосередньо з Logwin Baltics, завжди вказуйте direct_booking_service_id.

POST /queries

Створити запит на відправлення або пряме бронювання для Logwin Baltics. Включіть direct_booking_service_id для створення негайного бронювання.

Request Parameters

collection_date string required

Дата забору у форматі РРРР-ММ-ДД

collection_country string required

Код країни забору (ISO 3166-1 alpha-2)

collection_postcode string required

Поштовий індекс забору

collection_address_row_1 string required

Адреса вулиці забору

collection_city string required

Місто забору

collection_company_name string required

Назва компанії відправника

collection_contact_name string required

Контактна особа відправника

collection_contact_phone string required

Номер телефону відправника

delivery_country string required

Код країни доставки

delivery_postcode string required

Поштовий індекс доставки

delivery_address_row_1 string required

Адреса вулиці доставки

delivery_city string required

Місто доставки

delivery_company_name string required

Назва компанії одержувача

delivery_contact_name string required

Контактна особа одержувача

delivery_contact_phone string required

Номер телефону одержувача

rows_attributes array required

Масив упаковок/палет з кількістю, типом упаковки, вагою та описом

options[direct_booking_service_id] integer

ID послуги Logwin Baltics для прямого бронювання

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

Генерація етикеток

Етикетки відправлення Logwin Baltics автоматично генеруються при створенні бронювання. Етикетки доступні в кількох форматах для підтримки різних типів принтерів.

Підтримувані формати етикеток

a4 - формат PDF A4 для настільних принтерів (4 етикетки на сторінці)
label_printer - формат PDF 4x6 дюймів (~10x15 см) для термопринтерів

Етикетки включені у відповідь на бронювання через поле label_url. Завантажте та роздрукуйте етикетку за наданою URL-адресою після бронювання.

API тарифів Logwin Baltics (ціноутворення вантажоперевезень)

Механізм Cargoson
Покращення Cargoson:

Logwin Baltics не надає нативний API тарифів. Механізм тарифів вантажоперевезень Cargoson розраховує ціни, використовуючи ваші завантажені цінові угоди, надаючи вам той самий досвід API, що й перевізники з нативними API тарифів. Ви можете завантажувати тарифи перевізників у будь-якому форматі (Excel, PDF, навіть рукописні прайс-листи), і ми їх оцифруємо.

Отримуйте тарифи вантажоперевезень Logwin Baltics в реальному часі перед бронюванням. Rate API повертає доступні послуги, ціни та орієнтовний час доставки.

POST /freightPrices/list

Отримати тарифні пропозиції від Logwin Baltics та інших активованих перевізників на вашому обліковому записі.

Request Parameters

collection_date string required

Дата забору у форматі РРРР-ММ-ДД

collection_country string required

Код країни забору (ISO 3166-1 alpha-2)

collection_postcode string required

Поштовий індекс забору

delivery_country string required

Код країни доставки

delivery_postcode string required

Поштовий індекс доставки

rows_attributes array required

Масив упаковок/палет з кількістю, типом упаковки, вагою та описом

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": "Logwin Baltics SIA",
        "reg_no": "40203564689",
        "id": 4135,
        "service": "Main",
        "service_id": 85,
        "price": "19.13",
        "unit": "payable_weight",
        "type": "price_list"
      },
      {
        "carrier": "Logwin Baltics SIA",
        "reg_no": "40203564689",
        "id": 4135,
        "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 відстеження Logwin Baltics

Автоматизація Cargoson
Покращення Cargoson:

Logwin Baltics не надає події відстеження через API. Cargoson надає портал відстеження, де перевізник може вручну оновлювати статус відправлення, надаючи вам та вашим клієнтам послідовний досвід відстеження.

Відстежуйте відправлення Logwin Baltics, використовуючи довідковий номер Cargoson. Отримуйте поточний статус, оновлення місцезнаходження та орієнтовний час доставки.

GET /bookings/{reference}

Отримати деталі відстеження для відправлення Logwin Baltics, використовуючи довідковий номер бронювання 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 етикеток повернення Logwin Baltics

На базі Cargoson
Покращення Cargoson:

Logwin Baltics не підтримує етикетки повернення нативно. Cargoson генерує етикетки повернення та керує процесом зворотної логістики через нашу платформу.

Генеруйте етикетки повернення для відправлень Logwin Baltics. Етикетки повернення дозволяють клієнтам повертати товари, використовуючи попередньо оплачену доставку.

POST /bookings/{reference}/return_labels

Створити етикетку повернення для існуючого відправлення Logwin Baltics.

Request Parameters

label_format string

Формат етикетки: a4 або label_printer (за замовчуванням: 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"
}

Функції етикеток повернення

  • Попередньо оплачені етикетки повернення
  • Ті самі варіанти формату, що й для вихідних етикеток (A4, термопринтер)
  • Окремий довідковий номер відстеження для повернень
  • Безшовна інтеграція з послугами повернення Logwin Baltics

Запити на кур'єра Logwin Baltics

Автоматизація Cargoson

Cargoson автоматизує запити на забір кур'єром для відправлень Logwin Baltics, що робить це одним завданням менше, про яке вам потрібно думати.

Як Cargoson обробляє запити на кур'єра

Багато перевізників вимагають створювати етикетки окремо, а потім вручну запитувати забір кур'єром. Інші не мають окремої системи етикеток плюс виклик кур'єра, і кожне відправлення є повним, окремим відправленням. Ми вважаємо, що має бути єдиний стандарт API перевізників, але наразі кожен перевізник створює свою унікальну систему, що ускладнює користувачам запам'ятовування особливостей та складнощів кожного. Cargoson спрощує ваші виклики кур'єра, розглядаючи кожне відправлення цілісно: запити на кур'єра автоматично керуються як частина процесу бронювання.

Розумна оптимізація забору

Cargoson оптимізує виклики кур'єра для зниження витрат та підвищення ефективності.

  • 1. Пакетна консолідація - Кілька відправлень з одного місця групуються в один запит на забір
  • 2. Обробка, специфічна для перевізника - Деякі перевізники включають забір у бронювання, інші вимагають окремих запитів. Cargoson автоматично обробляє обидва варіанти для вас
  • 3. Регулярні графіки забору - Налаштуйте попередньо заплановані забори в певні інтервали (наприклад, щодня на мій головний склад о 15:00), і Cargoson повністю пропустить окремі виклики кур'єра

Переваги

  • Не потрібно відстежувати, які перевізники вимагають окремих запитів на кур'єра
  • Автоматична оптимізація запобігає непотрібним викликам забору
  • Підтримка регулярних графіків забору
  • Спрощений робочий процес відправлення - просто створіть бронювання

Налаштування

Автоматизація забору кур'єром увімкнена за замовчуванням для всіх відправлень Logwin Baltics. Щоб налаштувати регулярні графіки забору або спеціальні правила оптимізації забору, зв'яжіться з [email protected].

API послуг Logwin Baltics

Механізм Cargoson
Покращення Cargoson:

API послуг - це функція, надана Cargoson, яка повертає уніфікований список усіх доступних послуг від Logwin Baltics та інших перевізників у вашій мережі. Це дозволяє вам динамічно відображати варіанти відправлення вашим клієнтам без жорсткого кодування ID послуг.

Отримайте список доступних послуг відправлення Logwin Baltics. Використовуйте ID послуг при прямому бронюванні, щоб переконатися, що ви отримуєте саме ту послугу, яку хочете.

GET /services/list

Повернути список послуг Logwin Baltics, доступних на обліковому записі вашої компанії.

Example Response

{
  "services": [
    {
      "carrier": {
        "id": 4135,
        "name": "Logwin Baltics SIA",
        "short_name": "Logwin Baltics",
        "reg_no": "40203564689"
      },
      "id": 85,
      "name": "Main",
      "service_type": "road_freight"
    },
    {
      "carrier": {
        "id": 4135,
        "name": "Logwin Baltics SIA",
        "short_name": "Logwin Baltics",
        "reg_no": "40203564689"
      },
      "id": 123,
      "name": "Express Service",
      "service_type": "express"
    }
  ]
}

Використання ID послуг

ID послуг з цього ендпоінту можна використовувати з параметром direct_booking_service_id при створенні бронювань для вибору правильної послуги та надсилання відправлення в систему Logwin Baltics.

Повні приклади коду

Нижче наведені повні робочі приклади, що показують повний робочий процес: отримання тарифів, вибір послуги, бронювання відправлення та отримання інформації про відстеження.

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

# Step 1: Get freight prices for Logwin Baltics
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 bookToLogwinBaltics() {
  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
bookToLogwinBaltics();
import requests

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

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

define('CARRIER_SERVICE_ID', 85);

function bookToLogwinBaltics($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
bookToLogwinBaltics($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_logwin_baltics
  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_logwin_baltics

Чому використовувати API Cargoson для інтеграції Logwin Baltics

Інтеграція безпосередньо з нативним API Logwin Baltics означає боротьбу з документацією, специфічною для перевізника, обробку унікальних форматів даних та підтримку окремого коду для кожного постачальника. Cargoson пропонує єдиний уніфікований RESTful API, який підтримує Logwin Baltics та 2000+ перевізників на європейських та північноамериканських ринках, з новими інтеграціями, що додаються щотижня. Ми скорочуємо час розробки з місяців до днів, автоматично обробляємо оновлення перевізників та керуємо регіональними винятками. З Cargoson ви зосереджуєтесь на розвитку свого бізнесу замість управління технічними складнощами перевізників.

Переваги інтеграції Logwin Baltics через API Cargoson

Один API для всіх перевізників

Замініть десятки окремих інтеграцій перевізників одним підключенням до Logwin Baltics та 2000+ інших постачальників через API Cargoson. Більше не потрібно підтримувати кілька систем автентифікації, обробляти різні формати даних або оновлювати код, коли перевізники змінюють свої ендпоінти.

Чітка документація та підтримка

Доступ до зрозумілої документації API з робочими прикладами коду, детальними описами параметрів та чітко визначеними ендпоінтами. Наша команда підтримки знає логістичну галузь і може допомогти вам швидко вирішити проблеми інтеграції.

Приклади коду кількома мовами

Почніть негайно з готових до використання прикладів коду на cURL, JavaScript, Python, PHP та Ruby. Копіюйте, вставляйте та адаптуйте їх до свого стеку, не потрібно з нуля розбиратися з автентифікацією, форматуванням запитів або обробкою помилок.

Справжня підтримка від експертів з логістики

Отримайте допомогу від людей, які розуміють відправлення, а не лише API. Чи то ви усуваєте проблему інтеграції, чи потребуєте поради щодо найкращого способу обробки міжнародних відправлень, наша команда тут, щоб допомогти.

Найпередовіший у світі механізм ціноутворення вантажоперевезень

API ціноутворення вантажоперевезень Cargoson виходить далеко за межі простого пошуку тарифів. Наш механізм може читати, аналізувати та оцифровувати будь-який прайс-лист перевізника незалежно від формату чи структури, що робить його найпотужнішим рішенням для управління тарифами вантажоперевезень у логістичній галузі.

Універсальна підтримка форматів

Наш механізм ціноутворення вантажоперевезень обробляє будь-який формат: структуровані файли Excel, складні PDF, вільний текст або навіть рукописні прайс-листи. Завантажте свої контракти з перевізниками в будь-якому форматі, і наш механізм тарифів автоматично проаналізує правила ціноутворення, доплати та умови.

Пряма інтеграція API перевізника

Для перевізників з сучасними системами (зазвичай глобальні посилкові перевізники та технологічно просунуті вантажні компанії) ми отримуємо тарифи безпосередньо з їхніх API в реальному часі. Це гарантує, що ви завжди отримуєте найактуальніші ціни без ручних оновлень.

Публічні онлайн-ціни

Ще не маєте контракту з перевізником? Без проблем. Cargoson може отримувати публічні онлайн-ціни від перевізників, дозволяючи вам порівнювати варіанти навіть до встановлення офіційних угод.

Запити на spot-тарифи

Для складних відправлень або особливих випадків запитуйте spot-тарифи, де перевізники переглядають ваші конкретні вимоги та надають індивідуальну пропозицію. Все керується через той самий уніфікований API.

API відправлення Logwin Baltics: Спрощена автоматизація логістики

Автоматизуйте свій процес виконання, інтегруючи API відправлення Cargoson з Logwin Baltics та 2000+ перевізниками по всьому світу. Створюйте етикетки відправлення, бронюйте забори та керуйте всіма своїми перевізниками з однієї платформи, зберігаючи свої узгоджені тарифи з кожним постачальником.

Автоматична генерація етикеток

Генеруйте схвалені перевізником етикетки відправлення в одному запиті API. Підтримка кількох форматів етикеток (A4, термопринтер) та автоматична митна документація для міжнародних відправлень означає менше ручної роботи та менше помилок при відправленні.

Порівняння тарифів у реальному часі

Порівнюйте реальні тарифи між Logwin Baltics та іншими вашими активованими перевізниками, щоб вибрати найкращий варіант на основі вартості, швидкості та рівня обслуговування.

Зберігайте свої узгоджені тарифи

Підключіть свій існуючий обліковий запис Logwin Baltics, щоб зберегти свої узгоджені тарифи на відправлення. Cargoson просто надає технічну інтеграцію: ви зберігаєте свої прямі відносини з перевізниками та індивідуальні цінові угоди.

Безпека корпоративного рівня для інтеграції API Logwin Baltics

Інфраструктура API Cargoson відповідає європейським стандартам відповідності, які забезпечують безпечну, готову до аудиту інтеграцію Logwin Baltics для вашого бізнесу:

  • Обробка та зберігання даних відповідно до GDPR по всій Європі
  • Сертифіковане управління інформаційною безпекою ISO 27001
  • Наскрізне шифрування для всіх комунікацій API

Готові інтегрувати відправлення Logwin Baltics у свою платформу?

Забронюйте демо, щоб побачити, як уніфікований API Cargoson може спростити ваші логістичні операції

Забронювати демо

Часті запитання

Cargoson - це система управління транспортом для європейських та північноамериканських виробників. Наше центральне бачення - простота: інтегруйте будь-яких та всіх перевізників і види вантажоперевезень (автомобільні, посилкові, авіа, морські, залізничні) в одне вікно та один API. Чи то ви відправляєте палети по Європі, чи контейнери за океан, керуйте всім з однієї платформи.

Почати просто. Спочатку зареєструйте обліковий запис Cargoson та отримайте свій API ключ. Потім підключіть свій обліковий запис Logwin Baltics на панелі керування Cargoson. Після цього ви можете почати робити запити API, використовуючи нашу документацію та приклади коду. Зазвичай все налаштування займає менше години.

Так, вам знадобиться власний обліковий запис Logwin Baltics для використання послуг Logwin Baltics через Cargoson. Це гарантує, що ви зберігаєте свої узгоджені тарифи та підтримуєте прямі відносини з Logwin Baltics. Cargoson просто надає технічний інтеграційний рівень, який полегшує роботу з Logwin Baltics та іншими перевізниками через один уніфікований API.

Cargoson працює за прозорою моделлю щомісячної підписки без комісій за відправлення або комісійних, ніколи. Ваш план включає доступ до API, документацію, підтримку та автоматичні оновлення, коли перевізники змінюють свої системи. Ви платите Logwin Baltics безпосередньо за відправлення за вашими узгодженими тарифами. Без прихованих витрат, без сюрпризів.

Абсолютно! Це основна перевага використання Cargoson. Після інтеграції нашого API ви можете працювати з Logwin Baltics та 2000+ іншими перевізниками, використовуючи ті самі ендпоінти, автентифікацію та формати даних. Додавайте нових перевізників без написання нового інтеграційного коду, просто активуйте їх на своїй панелі керування Cargoson.

Так! Ми інтегруємо будь-якого перевізника, який вам потрібен, без додаткової плати. Це включено у вашу підписку Cargoson. Просто познайомте нас зі своїми контактами перевізників, і ми займемося технічною інтеграцією. Нові інтеграції додаються щодня на основі запитів клієнтів.

Так, ми можемо налаштувати вебхуки для сповіщення вашої системи на основі подій та тригерів у Cargoson, таких як оновлення статусу відправлення, підтвердження бронювання або зміни у ваших відправленнях. Зв'яжіться з нашою командою підтримки або забронюйте демо, щоб обговорити ваші вимоги до вебхуків та налаштування.

Cargoson може бути надмірним, якщо ви невелика компанія, яка відправляє лише кілька разів на місяць з одним перевізником. Ви, ймовірно, можете добре керувати цими відправленнями без системи управління транспортом. Ми також не підходимо, якщо ви перевізник або експедитор. Cargoson створений спеціально для власників вантажу (BCO), таких як виробники та дистриб'ютори, які володіють товарами, що відправляються. Якщо ви шукаєте систему управління транспортом для управління своїм експедиторським бізнесом або операціями перевізника, ми не призначені для цього випадку використання.

Наш API повертає чіткі повідомлення про помилки з конкретними кодами помилок та описами. Поширені проблеми задокументовані з рішеннями в нашій документації для розробників. Якщо ви застрягли, наша команда підтримки може допомогти усунути проблеми інтеграції.

Ми впроваджуємо розумні обмеження швидкості для забезпечення стабільності системи для всіх клієнтів. Є як довгострокові обмеження швидкості, так і обмеження пікових навантажень, зі значеннями, які повинні бути більш ніж достатніми для більшості підприємств. Якщо вам потрібні вищі ліміти для операцій корпоративного масштабу, зв'яжіться з нами, щоб обговорити індивідуальні обмеження швидкості для вашого облікового запису.

Почніть використовувати API Logwin Baltics

Отримайте свої облікові дані API для початку інтеграції

Отримати API ключ