Документація API Fedex Ottawa
Повний довідник API для інтеграції відправлень Fedex Ottawa. Доступ до бронювання, тарифів, генерації етикеток та відстеження через уніфікований API управління транспортом Cargoson.
Отримати API ключFedex Ottawa та 2 000+ перевізників через один API. Безкоштовний 30-хв дзвінок.
Огляд API Fedex Ottawa
Цей API забезпечує програмний доступ до послуг перевезень Fedex Ottawa через єдину платформу управління транспортом Cargoson. Інтегруйте можливості Fedex Ottawa, включаючи бронювання відправлень, відстеження, цінові пропозиції та генерацію етикеток, у вашу ERP, WMS або будь-яку бізнес-систему через один API — разом із 2 000+ іншими перевізниками.
Можливості API
- Створення та управління бронюваннями відправлень Fedex Ottawa
- Відстеження відправлень та оновлення статусу
- Отримання тарифних пропозицій та часу доставки
- Генерація етикеток відправлення в кількох форматах (PDF, PNG, ZPL)
- Створення етикеток повернення для зворотної логістики
- Запит розташування поштоматів та пунктів видачі
- Перелік доступних послуг перевізника
- Автоматизовані запити на забір кур'єром
Базова URL-адреса та автентифікація
Базова URL-адреса
https://www.cargoson.com/api/v1
Автентифікація
Усі запити повинні включати ваш API ключ та правильний заголовок Accept:
Authorization: Bearer ВАШ_API_КЛЮЧ
Accept: application/vnd.api.v1
API бронювання Fedex Ottawa
Автоматизація CargosonFedex Ottawa не надає API бронювання. Cargoson автоматично надсилає підтвердження бронювання електронною поштою від вашого імені, поки ви все ще використовуєте той самий уніфікований інтерфейс API.
Створюйте відправлення Fedex Ottawa та отримуйте етикетки відправлення, використовуючи ендпоінт Queries. Бронювання надсилаються в систему перевізника в реальному часі, а етикетки генеруються миттєво.
Запит vs пряме бронювання
Ендпоінт Queries підтримує два методи бронювання:
- Режим запиту - Створіть запит на транспортування без вказівки перевізника (поки що). Це дозволяє вам вручну порівняти ціни та час доставки перевізників, запитати нові spot-ціни, внести зміни/оновлення до відправлення та делегувати вибір перевізника іншим, перш ніж зробити остаточний вибір перевізника в Cargoson.
- Пряме бронювання - Вкажіть ID послуги перевізника (з Rate або Services API), щоб забронювати безпосередньо з Fedex Ottawa. Це гарантує, що ваше відправлення використовує саме ту послугу, яку ви обрали.
Щоб забронювати безпосередньо з Fedex Ottawa, завжди вказуйте direct_booking_service_id.
/queries
Створити запит на відправлення або пряме бронювання для Fedex Ottawa. Включіть 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 послуги Fedex Ottawa для прямого бронювання
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"
}
Генерація етикеток
Етикетки відправлення Fedex Ottawa автоматично генеруються при створенні бронювання. Етикетки доступні в кількох форматах для підтримки різних типів принтерів.
Підтримувані формати етикеток
a4 - формат PDF A4 для настільних принтерів (4 етикетки на сторінці)label_printer - формат PDF 4x6 дюймів (~10x15 см) для термопринтерів
Етикетки включені у відповідь на бронювання через поле label_url. Завантажте та роздрукуйте етикетку за наданою URL-адресою після бронювання.
API тарифів Fedex Ottawa (ціноутворення вантажоперевезень)
Механізм CargosonFedex Ottawa не надає нативний API тарифів. Механізм тарифів вантажоперевезень Cargoson розраховує ціни, використовуючи ваші завантажені цінові угоди, надаючи вам той самий досвід API, що й перевізники з нативними API тарифів. Ви можете завантажувати тарифи перевізників у будь-якому форматі (Excel, PDF, навіть рукописні прайс-листи), і ми їх оцифруємо.
Отримуйте тарифи вантажоперевезень Fedex Ottawa в реальному часі перед бронюванням. Rate API повертає доступні послуги, ціни та орієнтовний час доставки.
/freightPrices/list
Отримати тарифні пропозиції від Fedex Ottawa та інших активованих перевізників на вашому обліковому записі.
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": "Fedex Ottawa",
"reg_no": "834029621RC0001",
"id": 5901,
"service": "Main",
"service_id": 85,
"price": "19.13",
"unit": "payable_weight",
"type": "price_list"
},
{
"carrier": "Fedex Ottawa",
"reg_no": "834029621RC0001",
"id": 5901,
"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 відстеження Fedex Ottawa
Автоматизація CargosonFedex Ottawa не надає події відстеження через API. Cargoson надає портал відстеження, де перевізник може вручну оновлювати статус відправлення, надаючи вам та вашим клієнтам послідовний досвід відстеження.
Відстежуйте відправлення Fedex Ottawa, використовуючи довідковий номер Cargoson. Отримуйте поточний статус, оновлення місцезнаходження та орієнтовний час доставки.
/bookings/{reference}
Отримати деталі відстеження для відправлення Fedex Ottawa, використовуючи довідковий номер бронювання 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 етикеток повернення Fedex Ottawa
На базі CargosonFedex Ottawa не підтримує етикетки повернення нативно. Cargoson генерує етикетки повернення та керує процесом зворотної логістики через нашу платформу.
Генеруйте етикетки повернення для відправлень Fedex Ottawa. Етикетки повернення дозволяють клієнтам повертати товари, використовуючи попередньо оплачену доставку.
/bookings/{reference}/return_labels
Створити етикетку повернення для існуючого відправлення Fedex Ottawa.
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, термопринтер)
- Окремий довідковий номер відстеження для повернень
- Безшовна інтеграція з послугами повернення Fedex Ottawa
Запити на кур'єра Fedex Ottawa
Автоматизація CargosonCargoson автоматизує запити на забір кур'єром для відправлень Fedex Ottawa, що робить це одним завданням менше, про яке вам потрібно думати.
Як Cargoson обробляє запити на кур'єра
Багато перевізників вимагають створювати етикетки окремо, а потім вручну запитувати забір кур'єром. Інші не мають окремої системи етикеток плюс виклик кур'єра, і кожне відправлення є повним, окремим відправленням. Ми вважаємо, що має бути єдиний стандарт API перевізників, але наразі кожен перевізник створює свою унікальну систему, що ускладнює користувачам запам'ятовування особливостей та складнощів кожного. Cargoson спрощує ваші виклики кур'єра, розглядаючи кожне відправлення цілісно: запити на кур'єра автоматично керуються як частина процесу бронювання.
Розумна оптимізація забору
Cargoson оптимізує виклики кур'єра для зниження витрат та підвищення ефективності.
- 1. Пакетна консолідація - Кілька відправлень з одного місця групуються в один запит на забір
- 2. Обробка, специфічна для перевізника - Деякі перевізники включають забір у бронювання, інші вимагають окремих запитів. Cargoson автоматично обробляє обидва варіанти для вас
- 3. Регулярні графіки забору - Налаштуйте попередньо заплановані забори в певні інтервали (наприклад, щодня на мій головний склад о 15:00), і Cargoson повністю пропустить окремі виклики кур'єра
Переваги
- Не потрібно відстежувати, які перевізники вимагають окремих запитів на кур'єра
- Автоматична оптимізація запобігає непотрібним викликам забору
- Підтримка регулярних графіків забору
- Спрощений робочий процес відправлення - просто створіть бронювання
Налаштування
Автоматизація забору кур'єром увімкнена за замовчуванням для всіх відправлень Fedex Ottawa. Щоб налаштувати регулярні графіки забору або спеціальні правила оптимізації забору, зв'яжіться з [email protected].
API послуг Fedex Ottawa
Механізм CargosonAPI послуг - це функція, надана Cargoson, яка повертає уніфікований список усіх доступних послуг від Fedex Ottawa та інших перевізників у вашій мережі. Це дозволяє вам динамічно відображати варіанти відправлення вашим клієнтам без жорсткого кодування ID послуг.
Отримайте список доступних послуг відправлення Fedex Ottawa. Використовуйте ID послуг при прямому бронюванні, щоб переконатися, що ви отримуєте саме ту послугу, яку хочете.
/services/list
Повернути список послуг Fedex Ottawa, доступних на обліковому записі вашої компанії.
Example Response
{
"services": [
{
"carrier": {
"id": 5901,
"name": "Fedex Ottawa",
"short_name": "Fedex Ottawa",
"reg_no": "834029621RC0001"
},
"id": 85,
"name": "Main",
"service_type": "road_freight"
},
{
"carrier": {
"id": 5901,
"name": "Fedex Ottawa",
"short_name": "Fedex Ottawa",
"reg_no": "834029621RC0001"
},
"id": 123,
"name": "Express Service",
"service_type": "express"
}
]
}
Використання ID послуг
ID послуг з цього ендпоінту можна використовувати з параметром direct_booking_service_id при створенні бронювань для вибору правильної послуги та надсилання відправлення в систему Fedex Ottawa.
Повні приклади коду
Нижче наведені повні робочі приклади, що показують повний робочий процес: отримання тарифів, вибір послуги, бронювання відправлення та отримання інформації про відстеження.
# Define the service ID you want to use
CARRIER_SERVICE_ID=85
# Step 1: Get freight prices for Fedex Ottawa
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 bookToFedexOttawa() {
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
bookToFedexOttawa();
import requests
API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://www.cargoson.com/api/v1'
CARRIER_SERVICE_ID = 85
def book_to_fedex_ottawa():
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_fedex_ottawa()
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://www.cargoson.com/api/v1';
define('CARRIER_SERVICE_ID', 85);
function bookToFedexOttawa($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
bookToFedexOttawa($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_fedex_ottawa
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_fedex_ottawa
Чому використовувати API Cargoson для інтеграції Fedex Ottawa
Інтеграція безпосередньо з нативним API Fedex Ottawa означає боротьбу з документацією, специфічною для перевізника, обробку унікальних форматів даних та підтримку окремого коду для кожного постачальника. Cargoson пропонує єдиний уніфікований RESTful API, який підтримує Fedex Ottawa та 2000+ перевізників на європейських та північноамериканських ринках, з новими інтеграціями, що додаються щотижня. Ми скорочуємо час розробки з місяців до днів, автоматично обробляємо оновлення перевізників та керуємо регіональними винятками. З Cargoson ви зосереджуєтесь на розвитку свого бізнесу замість управління технічними складнощами перевізників.
Переваги інтеграції Fedex Ottawa через API Cargoson
Один API для всіх перевізників
Замініть десятки окремих інтеграцій перевізників одним підключенням до Fedex Ottawa та 2000+ інших постачальників через API Cargoson. Більше не потрібно підтримувати кілька систем автентифікації, обробляти різні формати даних або оновлювати код, коли перевізники змінюють свої ендпоінти.
Чітка документація та підтримка
Доступ до зрозумілої документації API з робочими прикладами коду, детальними описами параметрів та чітко визначеними ендпоінтами. Наша команда підтримки знає логістичну галузь і може допомогти вам швидко вирішити проблеми інтеграції.
Приклади коду кількома мовами
Почніть негайно з готових до використання прикладів коду на cURL, JavaScript, Python, PHP та Ruby. Копіюйте, вставляйте та адаптуйте їх до свого стеку, не потрібно з нуля розбиратися з автентифікацією, форматуванням запитів або обробкою помилок.
Справжня підтримка від експертів з логістики
Отримайте допомогу від людей, які розуміють відправлення, а не лише API. Чи то ви усуваєте проблему інтеграції, чи потребуєте поради щодо найкращого способу обробки міжнародних відправлень, наша команда тут, щоб допомогти.
Найпередовіший у світі механізм ціноутворення вантажоперевезень
API ціноутворення вантажоперевезень Cargoson виходить далеко за межі простого пошуку тарифів. Наш механізм може читати, аналізувати та оцифровувати будь-який прайс-лист перевізника незалежно від формату чи структури, що робить його найпотужнішим рішенням для управління тарифами вантажоперевезень у логістичній галузі.
Універсальна підтримка форматів
Наш механізм ціноутворення вантажоперевезень обробляє будь-який формат: структуровані файли Excel, складні PDF, вільний текст або навіть рукописні прайс-листи. Завантажте свої контракти з перевізниками в будь-якому форматі, і наш механізм тарифів автоматично проаналізує правила ціноутворення, доплати та умови.
Пряма інтеграція API перевізника
Для перевізників з сучасними системами (зазвичай глобальні посилкові перевізники та технологічно просунуті вантажні компанії) ми отримуємо тарифи безпосередньо з їхніх API в реальному часі. Це гарантує, що ви завжди отримуєте найактуальніші ціни без ручних оновлень.
Публічні онлайн-ціни
Ще не маєте контракту з перевізником? Без проблем. Cargoson може отримувати публічні онлайн-ціни від перевізників, дозволяючи вам порівнювати варіанти навіть до встановлення офіційних угод.
Запити на spot-тарифи
Для складних відправлень або особливих випадків запитуйте spot-тарифи, де перевізники переглядають ваші конкретні вимоги та надають індивідуальну пропозицію. Все керується через той самий уніфікований API.
API відправлення Fedex Ottawa: Спрощена автоматизація логістики
Автоматизуйте свій процес виконання, інтегруючи API відправлення Cargoson з Fedex Ottawa та 2000+ перевізниками по всьому світу. Створюйте етикетки відправлення, бронюйте забори та керуйте всіма своїми перевізниками з однієї платформи, зберігаючи свої узгоджені тарифи з кожним постачальником.
Автоматична генерація етикеток
Генеруйте схвалені перевізником етикетки відправлення в одному запиті API. Підтримка кількох форматів етикеток (A4, термопринтер) та автоматична митна документація для міжнародних відправлень означає менше ручної роботи та менше помилок при відправленні.
Порівняння тарифів у реальному часі
Порівнюйте реальні тарифи між Fedex Ottawa та іншими вашими активованими перевізниками, щоб вибрати найкращий варіант на основі вартості, швидкості та рівня обслуговування.
Зберігайте свої узгоджені тарифи
Підключіть свій існуючий обліковий запис Fedex Ottawa, щоб зберегти свої узгоджені тарифи на відправлення. Cargoson просто надає технічну інтеграцію: ви зберігаєте свої прямі відносини з перевізниками та індивідуальні цінові угоди.
Безпека корпоративного рівня для інтеграції API Fedex Ottawa
Інфраструктура API Cargoson відповідає європейським стандартам відповідності, які забезпечують безпечну, готову до аудиту інтеграцію Fedex Ottawa для вашого бізнесу:
- Обробка та зберігання даних відповідно до GDPR по всій Європі
- Сертифіковане управління інформаційною безпекою ISO 27001
- Наскрізне шифрування для всіх комунікацій API
Готові інтегрувати відправлення Fedex Ottawa у свою платформу?
Незалежно від того, чи розробляєте ви плагін для ERP, будуєте інтеграцію з перевізником або підключаєте перевізників до своїх бізнес-систем — давайте обговоримо, як API для кількох перевізників підходить для вашого рішення.
Замовити безкоштовну консультаціюЗміст
Часті запитання
Почніть використовувати API Fedex Ottawa
Один API для всіх ваших перевізників. Безкоштовний 30-хв дзвінок.