Skip to content
REST API v1.0

API Documentation

Integrate Evropat into your system and automate your shipments

Getting Started

Base URL

https://api.evropat.bg/v1/

Request Format

  • All requests use Content-Type: application/json
  • Responses are always in JSON format
  • Dates are in ISO 8601 format: YYYY-MM-DDTHH:mm:ssZ
  • Prices are in EUR (euro) with 2 decimal places

Authentication

All API requests require an API key passed via Authorization header:

Authorization: Bearer YOUR_API_KEY

Important: Getting API Key

To get an API key, you need to have a contract with Evropat. Contact us at [email protected] or by phone 0700 10 717.

Calculate Price

POST /shipments/calculate

Request Parameters

Parameter Type Required Description
from_city string Yes Sender city
to_city string Yes Receiver city
weight float Yes Weight in kilograms
delivery_type string Yes "office" | "address"
cod_amount float No Cash on delivery amount (EUR)
declared_value float No Declared value (EUR)

Example

curl -X POST https://api.evropat.bg/v1/shipments/calculate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_city": "Sofia",
    "to_city": "Plovdiv",
    "weight": 2.5,
    "delivery_type": "office",
    "cod_amount": 50.00
  }'

Response

{
  "success": true,
  "data": {
    "price": 4.29,
    "price_with_vat": 5.15,
    "price_with_fuel": 6.68,
    "fuel_surcharge": 1.53,
    "cod_fee": 1.00,
    "insurance_fee": 0,
    "currency": "EUR",
    "zone": "G",
    "estimated_delivery": "2026-01-27"
  }
}

Create Shipment

POST /shipments/create

Request Parameters

Parameter Type Description
sender object Sender data (name, phone, city, address)
recipient object Recipient data (name, phone, city, address)
packages array Array of packages (weight, length, width, height)
delivery_type string "office" | "address"
office_id integer Office ID (for office delivery)
cod_amount float Cash on delivery (EUR)
description string Content description

Response

{
  "success": true,
  "data": {
    "tracking_number": "EP1234567890",
    "waybill_url": "https://api.evropat.bg/waybills/EP1234567890.pdf",
    "label_url": "https://api.evropat.bg/labels/EP1234567890.pdf",
    "price": 6.68,
    "currency": "EUR",
    "estimated_delivery": "2026-01-27"
  }
}

Track Shipment

GET /shipments/{`{tracking_number}`}

Example

curl -X GET https://api.evropat.bg/v1/shipments/EP1234567890 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "success": true,
  "data": {
    "tracking_number": "EP1234567890",
    "status": "in_transit",
    "status_label": "In Transit",
    "sender": {
      "city": "Sofia"
    },
    "recipient": {
      "city": "Plovdiv"
    },
    "history": [
      {
        "date": "2026-01-25T10:30:00Z",
        "status": "Accepted at Sofia Center office",
        "location": "Sofia"
      },
      {
        "date": "2026-01-25T18:00:00Z",
        "status": "Sent to destination",
        "location": "Sofia"
      }
    ]
  }
}

Offices

GET /offices

Returns a list of all Evropat offices with addresses, coordinates and working hours.

GET /cities

Returns a list of served settlements with zone information and service schedule.

Webhooks

You can register a webhook URL to receive notifications when shipment status changes.

Events

shipment.created

New shipment created

shipment.picked_up

Shipment picked up

shipment.in_transit

Shipment in transit

shipment.delivered

Shipment delivered

shipment.returned

Shipment returned

cod.transferred

COD transferred

Error Codes

HTTP Code Description
200 Successful request
400 Invalid request parameters
401 Invalid or missing API key
403 Forbidden access to resource
404 Resource not found
429 Rate limit exceeded
500 Internal server error