Swiss Post API-dokumentation
Komplett API-referens för Swiss Post fraktintegration. Få tillgång till bokning, fraktpriser, etikettgenerering och spårning genom Cargosons enhetliga transporthantering-API.
Få din API-nyckelSwiss Post API-översikt
Detta API ger programmatisk åtkomst till Swiss Post frakttjänster genom Cargosons enhetliga transporthanteringsplattform. Integrera Swiss Post funktioner inklusive fraktbokning, spårning, prisofferter och etikettgenerering i dina applikationer.
API-funktioner
- Skapa och hantera Swiss Post fraktbokningar
- Försändelsespårning och statusuppdateringar
- Få fraktprisofferter och transittider
- Generera fraktetiketter i flera format (PDF, PNG, ZPL)
- Skapa returetiketter för returlogistik
- Sök paketautomater och upphämtningsställen
- Lista tillgängliga transportörstjänster
- Automatiserade kurirförfrågningar
Bas-URL & autentisering
Bas-URL
https://www.cargoson.com/api/v1
Autentisering
Alla förfrågningar måste innehålla din API-nyckel och korrekt Accept-header:
Authorization: Bearer DIN_API_NYCKEL
Accept: application/vnd.api.v1
Swiss Post boknings-API
Direkt transportörs-APISkapa Swiss Post försändelser och hämta fraktetiketter med Queries-endpointen. Bokningar skickas till transportörens system i realtid och etiketter genereras omedelbart.
Query vs direkt bokning
Queries-endpointen stöder två bokningsmetoder:
- Query-läge - Skapa en transportförfrågan utan att specificera en transportör (än). Detta gör att du manuellt kan jämföra transportörspriser och leveranstider, begära nya spotpriser, göra justeringar/uppdateringar av försändelsen och delegera transportörsval till andra, innan du gör det slutliga transportörsvalet i Cargoson.
- Direkt bokning - Specificera ett transportörstjänst-ID (från Rate- eller Services-API:et) för att boka direkt med Swiss Post. Detta säkerställer att din försändelse använder exakt den tjänst du valde.
För att boka direkt till Swiss Post, definiera alltid direct_booking_service_id.
/queries
Skapa en försändelseförfrågan eller direkt bokning för Swiss Post. Inkludera direct_booking_service_id för att skapa en omedelbar bokning.
Request Parameters
collection_date
string
required
Upphämtningsdatum i formatet ÅÅÅÅ-MM-DD
collection_country
string
required
Upphämtningslandskod (ISO 3166-1 alpha-2)
collection_postcode
string
required
Upphämtningspostnummer
collection_address_row_1
string
required
Upphämtningsgata
collection_city
string
required
Upphämtningsstad
collection_company_name
string
required
Avsändarföretagsnamn
collection_contact_name
string
required
Avsändarkontaktperson
collection_contact_phone
string
required
Avsändartelefonnummer
delivery_country
string
required
Leveranslandskod
delivery_postcode
string
required
Leveranspostnummer
delivery_address_row_1
string
required
Leveransgata
delivery_city
string
required
Leveransstad
delivery_company_name
string
required
Mottagarföretagsnamn
delivery_contact_name
string
required
Mottagarkontaktperson
delivery_contact_phone
string
required
Mottagartelefonnummer
rows_attributes
array
required
Array av paket/pallar med kvantitet, pakettyp, vikt och beskrivning
options[direct_booking_service_id]
integer
Swiss Post tjänst-ID för direkt bokning
Example: Direct Booking Request
{
"collection_date": "2026-02-15",
"collection_country": "DE",
"collection_postcode": "10115",
"collection_address_row_1": "Hauptstraße 123",
"collection_city": "Berlin",
"collection_company_name": "Demo GmbH",
"collection_contact_name": "Max Mustermann",
"collection_contact_phone": "+4930123456",
"delivery_country": "SE",
"delivery_postcode": "11122",
"delivery_address_row_1": "Drottninggatan 45",
"delivery_city": "Stockholm",
"delivery_company_name": "Demo Sweden AB",
"delivery_contact_name": "Erik Andersson",
"delivery_contact_phone": "+46812345678",
"rows_attributes": [
{
"quantity": 1,
"package_type": "EUR",
"weight": 100.0,
"description": "Goods on EUR pallet"
}
],
"options": {
"direct_booking_service_id": 1234
}
}
Example Response
{
"id": 12345,
"reference": "CG12345",
"status": "booked",
"latest_status": "confirmed",
"tracking_reference": "ABC1234567890",
"tracking_url": "https://tracking.carrier.com/ABC1234567890",
"label_url": "https://www.cargoson.com/labels/abc123.pdf",
"confirmed_at": "2026-02-15T10:30:00Z"
}
Etikettgenerering
Swiss Post fraktetiketter genereras automatiskt när du skapar en bokning. Etiketter finns tillgängliga i flera format för att stödja olika skrivartyper.
Format som stöds
a4 - A4 PDF-format för skrivbordsskrivare (4 etiketter per sida)label_printer - 4x6in (~10x15cm) PDF-format för termoskrivare
Etiketter inkluderas i bokningssvaret via fältet label_url. Ladda ner och skriv ut etiketten från den angivna URL:en efter bokning.
Swiss Post pris-API (fraktprissättning)
Cargoson-motorSwiss Post tillhandahåller inte ett native pris-API. Cargosons fraktprismotor beräknar priser med dina uppladdade prisavtal, vilket ger dig samma API-upplevelse som transportörer med native pris-API:er. Du kan ladda upp transportörspriser i vilket format som helst (Excel, PDF, till och med handskrivna prislistor) och vi digitaliserar dem.
Få realtids Swiss Post fraktpriser innan bokning. Rate-API:et returnerar tillgängliga tjänster, priser och uppskattade leveranstider.
/freightPrices/list
Få fraktprisofferter från Swiss Post och andra aktiverade transportörer på ditt konto.
Request Parameters
collection_date
string
required
Upphämtningsdatum i formatet ÅÅÅÅ-MM-DD
collection_country
string
required
Upphämtningslandskod (ISO 3166-1 alpha-2)
collection_postcode
string
required
Upphämtningspostnummer
delivery_country
string
required
Leveranslandskod
delivery_postcode
string
required
Leveranspostnummer
rows_attributes
array
required
Array av paket/pallar med kvantitet, pakettyp, vikt och beskrivning
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": "Post CH AG",
"reg_no": "CHE-109.030.864",
"id": 3506,
"service": "Main",
"service_id": 85,
"price": "19.13",
"unit": "payable_weight",
"type": "price_list"
},
{
"carrier": "Post CH AG",
"reg_no": "CHE-109.030.864",
"id": 3506,
"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"
}
]
}
}
Swiss Post spårnings-API
Direkt transportörs-APISwiss Post tillhandahåller endast en spårnings-URL, inte strukturerad spårningsdata. Cargoson normaliserar spårningsinformation över alla transportörer, vilket ger dig ett konsekvent API-svarsformat oavsett varje transportörs kapacitet.
Spåra Swiss Post försändelser med Cargoson-referensnumret. Få aktuell status, platsuppdateringar och uppskattad leveranstid.
/bookings/{reference}
Hämta spårningsdetaljer för en Swiss Post försändelse med Cargoson-bokningsreferensen.
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"
}
Swiss Post returetikett-API
Drivs av CargosonSwiss Post stöder inte nativt returetiketter. Cargoson genererar returetiketter och hanterar returlogistikprocessen genom vår plattform.
Generera returetiketter för Swiss Post försändelser. Returetiketter gör det möjligt för kunder att skicka tillbaka varor med förbetald frakt.
/bookings/{reference}/return_labels
Skapa en returetikett för en befintlig Swiss Post försändelse.
Request Parameters
label_format
string
Etikettformat: a4 eller label_printer (standard: a4)
Example Request
{
"label_format": "a4"
}
Example Response
{
"return_label_url": "https://www.cargoson.com/labels/return_abc123.pdf",
"tracking_reference": "RETURN9876543210",
"tracking_url": "https://tracking.carrier.com/RETURN9876543210"
}
Returetikettfunktioner
- Förbetalda returetiketter
- Samma formatalternativ som utgående etiketter (A4, termisk)
- Separat spårningsreferens för returer
- Sömlös integration med Swiss Post returtjänster
Swiss Post kurirförfrågningar
Cargoson-automatiseringCargoson automatiserar kurirförfrågningar för Swiss Post försändelser, vilket gör det till en uppgift mindre att tänka på.
Hur Cargoson hanterar kurirförfrågningar
Många fraktbolag kräver att du skapar etiketter separat och sedan manuellt begär kurirupphämtning. Andra har inte ett separat system för etikett plus kurirsamtal, och varje försändelse är en komplett, separat försändelse. Vi tror att det borde finnas en enda standard för transportörs-API:er, men för närvarande skapar varje transportör sitt eget unika system, vilket gör det svårt för deras användare att komma ihåg varje transportörs egenheter och krångligheter. Cargoson förenklar dina kurirsamtal genom att behandla varje försändelse holistiskt: kurirförfrågningar hanteras automatiskt som en del av bokningsprocessen.
Smart upphämtningsoptimering
Cargoson optimerar kurirsamtal för att minska kostnader och förbättra effektivitet.
- 1. Batchkonsolidering - Flera försändelser från samma plats grupperas till en enda upphämtningsförfrågan
- 2. Transportörsspecifik hantering - Vissa transportörer inkluderar upphämtning i bokningen, andra kräver separata förfrågningar. Cargoson hanterar båda varianterna automatiskt åt dig
- 3. Regelbundna upphämtningsscheman - Konfigurera förplanerade upphämtningar vid specifika intervaller (t.ex. dagligen till mitt huvudlager kl. 15:00) och Cargoson hoppar över enskilda kurirsamtal helt
Fördelar
- Inget behov av att spåra vilka transportörer som kräver separata kurirförfrågningar
- Automatisk optimering förhindrar onödiga upphämtningssamtal
- Stöd för regelbundna upphämtningsscheman
- Förenklat fraktarbetsflöde - skapa bara bokningen
Konfiguration
Automatisering av kurirupphämtning är aktiverad som standard för alla Swiss Post försändelser. För att konfigurera regelbundna upphämtningsscheman eller anpassade optimeringsregler, kontakta [email protected].
Swiss Post tjänste-API
Cargoson-motorServices-API:et är en Cargoson-tillhandahållen funktion som returnerar en enhetlig lista över alla tillgängliga tjänster från Swiss Post och andra transportörer i ditt nätverk. Detta gör att du dynamiskt kan visa fraktalternativ till dina kunder utan att hårdkoda tjänst-ID:n.
Hämta en lista över tillgängliga Swiss Post frakttjänster. Använd tjänst-ID:n vid direktbokningar för att säkerställa att du får exakt den tjänst du vill ha.
/services/list
Returnera lista över Swiss Post tjänster tillgängliga på ditt företagskonto.
Example Response
{
"services": [
{
"carrier": {
"id": 3506,
"name": "Post CH AG",
"short_name": "Swiss Post",
"reg_no": "CHE-109.030.864"
},
"id": 85,
"name": "Main",
"service_type": "road_freight"
},
{
"carrier": {
"id": 3506,
"name": "Post CH AG",
"short_name": "Swiss Post",
"reg_no": "CHE-109.030.864"
},
"id": 123,
"name": "Express Service",
"service_type": "express"
}
]
}
Använda tjänst-ID:n
Tjänst-ID:n från denna endpoint kan användas med parametern direct_booking_service_id när du skapar bokningar för att välja rätt tjänst och skicka försändelsen till Swiss Post systemet.
Kompletta kodexempel
Nedan finns kompletta fungerande exempel som visar hela arbetsflödet: få priser, välj en tjänst, boka försändelse och extrahera spårningsinformation.
# Define the service ID you want to use
CARRIER_SERVICE_ID=85
# Step 1: Get freight prices for Swiss Post
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 bookToSwissPost() {
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
bookToSwissPost();
import requests
API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://www.cargoson.com/api/v1'
CARRIER_SERVICE_ID = 85
def book_to_swiss_post():
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_swiss_post()
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://www.cargoson.com/api/v1';
define('CARRIER_SERVICE_ID', 85);
function bookToSwissPost($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
bookToSwissPost($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_swiss_post
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_swiss_post
Varför använda Cargoson API för Swiss Post integration
Att integrera direkt med Swiss Posts native API innebär att brottas med transportörsspecifik dokumentation, hantera unika dataformat och underhålla separat kod för varje leverantör. Cargoson erbjuder ett enda enhetligt RESTful API som stöder Swiss Post och 2 000+ transportörer över europeiska och nordamerikanska marknader, med nya integrationer som läggs till varje vecka. Vi minskar utvecklingstiden från månader till dagar, hanterar transportörsuppdateringar automatiskt och hanterar regionala undantag. Med Cargoson fokuserar du på att växa ditt företag istället för att hantera transportörers tekniska komplexitet.
Fördelar med att integrera Swiss Post via Cargoson API
Ett API för alla transportörer
Ersätt dussintals separata transportörsintegrationer med en anslutning till Swiss Post och 2 000+ andra leverantörer via Cargoson API. Inget mer underhåll av flera autentiseringssystem, hantering av olika dataformat eller uppdatering av kod när transportörer ändrar sina endpoints.
Tydlig dokumentation och support
Få tillgång till enkel API-dokumentation med fungerande kodexempel, detaljerade parameterbeskrivningar och tydligt definierade endpoints. Vårt supportteam känner till logistikbranschen och kan hjälpa dig lösa integrationsproblem snabbt.
Kodexempel på flera språk
Kom igång omedelbart med färdiga kodexempel i cURL, JavaScript, Python, PHP och Ruby. Kopiera, klistra in och anpassa dem till din stack, inget behov av att lista ut autentisering, förfrågningsformatering eller felhantering från grunden.
Riktig support från logistikexperter
Få hjälp från personer som förstår frakt, inte bara API:er. Oavsett om du felsöker ett integrationsproblem eller behöver råd om det bästa sättet att hantera internationella försändelser, är vårt team här för att hjälpa.
Världens mest avancerade fraktprismotor
Cargosons fraktpris-API går långt bortom enkla prisförfrågningar. Vår motor kan läsa, analysera och digitalisera vilken transportörsprislista som helst oavsett format eller struktur, vilket gör den till den mest kraftfulla fraktprishanteringslösningen i logistikbranschen.
Universellt formatstöd
Vår fraktprismotor hanterar vilket format som helst: strukturerade Excel-filer, komplexa PDF:er, fritext eller till och med handskrivna prislistor. Ladda upp dina transportörskontrakt i vilket format som helst, och vår fraktprismotor kommer att analysera prisreglerna, tillägg och villkor automatiskt.
Direkt transportörs-API-integration
För transportörer med moderna system (vanligtvis globala pakettransportörer och teknikframåt fraktföretag) hämtar vi priser direkt från deras API:er i realtid. Detta säkerställer att du alltid får den mest aktuella prissättningen utan manuella uppdateringar.
Offentliga onlinepriser
Har du inte ett kontrakt med en transportör än? Inga problem. Cargoson kan hämta offentliga onlinepriser från transportörer, vilket gör att du kan jämföra alternativ även innan du etablerar formella avtal.
Spotprisförfrågningar
För komplexa försändelser eller specialfall, begär spotpriser där transportörer granskar dina specifika krav och ger en anpassad offert. Allt hanteras genom samma enhetliga API.
Swiss Post frakt-API: Förenklad logistikautomatisering
Automatisera din fullgörandeprocess genom att integrera Cargosons frakt-API med Swiss Post och 2 000+ transportörer världen över. Skapa fraktetiketter, boka upphämtningar och hantera alla dina transportörer från en plattform samtidigt som du behåller dina förhandlade priser med varje leverantör.
Automatiserad etikettgenerering
Generera transportörsgodkända fraktetiketter i en enda API-förfrågan. Stöd för flera etikettformat (A4, termoskrivare) och automatisk tulldokumentation för internationella försändelser innebär mindre manuellt arbete och färre fraktfel.
Realtidsprisjämförelse
Jämför livepriser över Swiss Post och dina andra aktiverade transportörer för att välja det bästa alternativet baserat på kostnad, hastighet och servicenivå.
Behåll dina förhandlade priser
Anslut ditt befintliga Swiss Post konto för att behålla dina förhandlade fraktpriser. Cargoson tillhandahåller helt enkelt den tekniska integrationen: du behåller dina direkta transportörsrelationer och anpassade prisavtal.
Säkerhet på företagsnivå för Swiss Post API-integration
Cargosons API-infrastruktur uppfyller europeiska efterlevnadsstandarder, vilket säkerställer säker, revisionsklar Swiss Post integration för ditt företag:
- GDPR-kompatibel datahantering och lagring över hela Europa
- ISO 27001-certifierad informationssäkerhetshantering
- End-to-end-kryptering för all API-kommunikation
Redo att integrera Swiss Post frakt i din plattform?
Boka en demo för att se hur Cargosons enhetliga API kan förenkla dina logistikoperationer
Boka en demoInnehållsförteckning
Vanliga frågor
Börja använda Swiss Post API
Få dina API-uppgifter för att börja integrera