Express courier. Direct.
Also overnight.
x25pronto Switzerland takes goods direct to the destination. Small loads go by car. Larger loads go by van or Van XL. Direct, express and overnight trips run Monday to Sunday when a slot is free. Free times are shown in the booking calendar. This keeps the plan clear.
Practical guide: API integration into ERP systems
Technical steps, auth examples and mapping tables to integrate the x25pronto API into your ERP. Includes sample requests and test advice for Swiss locations.
Quick answer
This guide shows how to integrate the x25pronto API into a Swiss ERP. It covers authentication, sample requests, typical address and cost centre mapping tables, and test scenarios for Zurich, Bern and Basel.
When to integrate the API
Integrate the API when you need automated courier bookings, shipment updates or direct cost allocations in your ERP. This removes manual steps between systems like Abacus, SAP Business One or proALPHA and the booking portal.
Architecture overview
Common setup: ERP → adapter/middleware → x25pronto REST API. The middleware transforms ERP fields, validates addresses and stores confirmations. For simple setups the ERP can call the API directly. For reliability use queues, retry logic and structured logging.
Authentication and security
Use token‑based auth (API key or OAuth2). Store tokens in a secret manager, enforce TLS 1.2+, and restrict IP access if possible. Example header: 'Authorization: Bearer <API_TOKEN>'. Rotate keys and keep audit logs for accountability.
Key endpoints and sample requests
Common endpoints: /shipments (create), /shipments/{id} (status), /rates (pricing), /webhooks (register). Example POST /shipments (JSON): { "sender": {"name":"Example AG","street":"Bahnhofstrasse 1","postalCode":"8001","city":"Zurich","country":"CH"}, "recipient": {"name":"Client GmbH","street":"Marktgasse 2","postalCode":"3000","city":"Bern","country":"CH"}, "parcel": {"weightKg":5,"dimensionsCm":{"l":40,"w":30,"h":20}}, "costCenter":"IT-DEV" } Response returns a shipment id and status.
Typical mapping table: Address fields
ERP field → API field - ERP: companyName → API: sender.name - ERP: contactFirstName + contactLastName → API: recipient.name - ERP: street + houseNumber → API: recipient.street - ERP: postalCode → API: recipient.postalCode - ERP: city → API: recipient.city - ERP: countryCode (ISO‑2) → API: recipient.country Validate Swiss postal codes (4 digits) and avoid empty street fields.
Typical mapping table: Cost centres & billing
ERP field → API field - ERP: costCenterId → API: costCenter - ERP: projectCode → API: metadata.project - ERP: internalOrder → API: metadata.order - ERP: chargeType (prepaid/postpaid) → API: billing.type Agree cost centre naming with finance. Use a short, consistent code format like IT-DEV or SALES-ZH.
Frequently asked questions
How do I test the integration before going live?
Use the API sandbox. Run end‑to‑end tests with valid and invalid addresses. Check error codes, retry behaviour and webhook processing. Verify cost centre posting in the ERP.
How to validate Swiss addresses?
Validate postal code (4 digits) and city names. Store street and house number separately if possible. Use the API address validation endpoint or local rules for basic checks.
What if a shipment booking fails?
Log the full API response and error code. Create an automatic ERP ticket for manual review. Repeated failures indicate a mapping or data quality issue that you should fix.
How do I receive status updates via webhooks?
Register an HTTPS endpoint in your ERP or middleware. Confirm verification requests and handle events like 'pickup_confirmed', 'in_transit' and 'delivered'. Secure endpoints with HMAC signatures or IP whitelists.

