An unofficial C# client library for the Econt courier API
A clean, strongly-typed C# wrapper around the Econt courier API — so you can integrate Bulgarian delivery services without touching raw HTTP.
EcontAPI Wrapper is an unofficial .NET client library that abstracts the Econt Express JSON/REST API into a clean, strongly-typed C# interface. Instead of manually building HTTP requests and deserializing raw responses, you get a simple EcontClient that handles authentication, endpoint routing, and model mapping for you.
Econt is one of Bulgaria's largest and longest-established courier companies, offering a comprehensive API for e-commerce and logistics integrations — covering offices, addresses, shipment creation, price calculation, and tracking.
The wrapper provides access to the main Econt API service groups:
- Countries — full list of supported countries
- Cities & Quarters — all Bulgarian cities and quarters served by Econt
- Offices — all Econt office locations with addresses and working hours
- Streets — street-level address data for precise delivery addressing
- Post Boxes — available Econt post box locations
- Create & update shipments — generate waybills with sender/receiver details, parcel type, and payment method
- Calculate delivery price — get a price estimate before committing to a shipment
- Track shipments — retrieve the current delivery status and location of any parcel
- Account info — retrieve profile and contract details for the authenticated Econt account
- .NET 5+ SDK
- An Econt account — register at login.econt.com for production, or login-demo.econt.com for testing
Clone the repository and reference the EcontClient project in your solution:
git clone https://github.com/georgidelchev/EcontAPI-Wrapper.gitThen add a project reference in your .csproj:
<ProjectReference Include="..\EcontAPI-Wrapper\EcontClient\EcontClient.csproj" />// Initialise the client — use demo credentials for testing
var client = new EcontClient(
username: "your-econt-username",
password: "your-econt-password",
useDemoEnvironment: true // switch to false for production
);
// Get all Econt offices
var offices = await client.GetOfficesAsync();
// Get cities in Bulgaria
var cities = await client.GetCitiesAsync();
// Calculate a delivery price
var price = await client.CalculateDeliveryPriceAsync(shipmentRequest);
// Create a shipment and get a waybill
var waybill = await client.CreateShipmentAsync(shipmentRequest);
// Track a shipment by waybill number
var tracking = await client.TrackShipmentAsync("1234567890");| Environment | Base URL |
|---|---|
| Demo (testing) | https://demo.econt.com/ee/services |
| Production | https://ee.econt.com/services |
Authentication uses HTTP Basic Auth — your Econt username and password are passed as a Base64-encoded Authorization header on every request.
Demo credentials for quick testing: username
iasp-dev/ password1Asp-dev
EcontAPI-Wrapper/
└── EcontClient/
├── Models/ # Strongly-typed request & response models
├── Services/ # Service classes per API group (offices, shipments…)
└── EcontClient.cs # Main entry point — the public-facing API client
| Component | Technology |
|---|---|
| Language | C# (.NET) |
| HTTP Client | System.Net.Http.HttpClient |
| Serialization | System.Text.Json / Newtonsoft.Json |
| API | Econt Express JSON API v1.0 |
This is an unofficial, community-built wrapper and is not affiliated with or endorsed by Econt Express. The Econt API may change at any time — always refer to the official API documentation for the latest endpoint specifications.
Georgi Delchev
This project is licensed under the MIT License.