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